這篇文章給大家介紹基于ClickHouse的用戶行為大數(shù)據(jù)架構是怎樣的,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創(chuàng)新互聯(lián)網(wǎng)站建設服務商,為中小企業(yè)提供網(wǎng)站建設、做網(wǎng)站服務,網(wǎng)站設計,網(wǎng)站運營等一站式綜合服務型公司,專業(yè)打造企業(yè)形象網(wǎng)站,讓您在眾多競爭對手中脫穎而出創(chuàng)新互聯(lián)。
SDK埋點采集行為數(shù)據(jù)來源終端包括iOS、安卓、Web、H5、微信小程序等。不同終端SDK采用對應平臺和主流語言的SDK,埋點采集到的數(shù)據(jù)通過JSON數(shù)據(jù)以HTTP POST方式提交到服務端API。
服務端API由數(shù)據(jù)接入系統(tǒng)組成,采用Nginx來接收通過 API 發(fā)送的數(shù)據(jù),并且將之寫到日志文件上。使用Nginx實現(xiàn)高可靠性與高可擴展性。
對于Nginx打印到文件的日志,會由Flume的 Source 模塊來實時讀取Nginx日志,并由Channel模塊進行數(shù)據(jù)處理,最終通過Sink模塊將處理結果發(fā)布到 Kafka中。
Kafka是一個廣泛使用的高可用的分布式消息隊列,作為數(shù)據(jù)接入與數(shù)據(jù)處理兩個流程之間的緩沖,同時也作為近期數(shù)據(jù)的一個備份。
在Flume處理時,根據(jù)版本號識別到是測試數(shù)據(jù),會寫入kafka的測試分支,此分支會將行為日志的JSON數(shù)據(jù)寫入MySQL,為開發(fā)人員提供埋點開發(fā)調試過程中的確認。對線上業(yè)務沒有影響。
在Flume識別到生產數(shù)據(jù),會寫入kafka的生產分支。后端由Flink將Kafka中數(shù)據(jù)進行必要的ETL與實時維度join操作,形成規(guī)范的明細數(shù)據(jù),并寫回Kafka以便下游與其他業(yè)務使用。再通過Flink將明細數(shù)據(jù)分別寫入ClickHouse和Hive打成大寬表,前者作為查詢與分析的核心,后者作為備份和數(shù)據(jù)質量保證。
關于基于ClickHouse的用戶行為大數(shù)據(jù)架構是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。