官术网_书友最值得收藏!

2.3 數(shù)據(jù)采集流程

數(shù)據(jù)采集工作一般是由數(shù)據(jù)開發(fā)工程師承擔(dān)的。本節(jié)筆者介紹一下用戶行為數(shù)據(jù)采集、業(yè)務(wù)數(shù)據(jù)采集的流程,讓大家了解數(shù)據(jù)開發(fā)工程師是如何工作的,這樣才能更好地與他們合作。

一個典型的用戶行為數(shù)據(jù)采集流程,如圖2-5所示。

圖2-5 用戶行為數(shù)據(jù)采集流程

第一步,前端工程師通過異步HTTP接口的形式將埋點數(shù)據(jù)發(fā)送到Ngnix服務(wù)器,通過Ngnix做負(fù)載均衡將日志文件采集并存儲起來。

第二步,通過如Flume之類的日志采集工具將埋點日志文件以消息的形式發(fā)送到Kafka集群。

第三步,數(shù)據(jù)中臺通過訂閱Kafka集群的日志消息將日志文件存儲在數(shù)據(jù)中臺。

一個典型的業(yè)務(wù)數(shù)據(jù)采集流程,如圖2-6所示。

圖2-6 數(shù)據(jù)中臺業(yè)務(wù)數(shù)據(jù)采集流程

(1)業(yè)務(wù)數(shù)據(jù)庫產(chǎn)生的業(yè)務(wù)數(shù)據(jù)一般存儲在關(guān)系型數(shù)據(jù)庫(如MySQL、Oracle等)中,存儲的過程會產(chǎn)生Binlog日志文件。Binlog是一種二進制格式的文件,用于記錄用戶對數(shù)據(jù)庫更新的SQL語句信息,例如更改數(shù)據(jù)庫表和更改內(nèi)容的SQL語句都會被記錄到Binlog里,但是對庫表等內(nèi)容的查詢不會被記錄。

(2)Kafka MySQL CDC Connect讀取了業(yè)務(wù)數(shù)據(jù)的Binlog文件后,通過CDC(Change Data Capture,意為“變動數(shù)據(jù)捕獲”,是增量抽取數(shù)據(jù)解決方案之一,能夠幫助識別從上次提取之后發(fā)生變化的數(shù)據(jù))的方式將業(yè)務(wù)庫變動數(shù)據(jù)記錄到Kafka等下游來消費。

(3)可以通過Python語言在Kafka消費基礎(chǔ)上做一個調(diào)用,將生產(chǎn)者產(chǎn)生的數(shù)據(jù)消費到Hbase。這樣當(dāng)MySQL中有相應(yīng)操作時,Hbase便會同步。

主站蜘蛛池模板: 湖南省| 柘城县| 沅江市| 买车| 乾安县| 崇仁县| 海阳市| 明溪县| 大石桥市| 岫岩| 天等县| 南召县| 乐平市| 明光市| 达尔| 三穗县| 宜城市| 武川县| 大姚县| 云浮市| 中山市| 漠河县| 衡南县| 无极县| 祁门县| 舞钢市| 遵义市| 哈密市| 繁峙县| 连江县| 沙河市| 山西省| 泗水县| 道孚县| 通江县| 上林县| 湄潭县| 米易县| 荆门市| 无锡市| 东乌珠穆沁旗|