應(yīng)用場(chǎng)景
阿里云開源大數(shù)據(jù)平臺(tái)E-MapReduce(簡(jiǎn)稱EMR)具有廣泛的應(yīng)用場(chǎng)景。本文為您介紹EMR的主要應(yīng)用場(chǎng)景。
數(shù)據(jù)湖場(chǎng)景
DataLake集群類型提供了數(shù)據(jù)湖分析場(chǎng)景所需的服務(wù)和相關(guān)湖格式,包括Hadoop、OSS-HDFS、Hive、Spark、Presto等。通過選擇OSS-HDFS,集群的YARN服務(wù)不再依賴集群本地的HDFS,也不需要使用Core節(jié)點(diǎn)組,從而提高了集群的彈性和靈活性。此外,您還可以選擇數(shù)據(jù)湖構(gòu)建DLF作為數(shù)據(jù)目錄服務(wù),DLF可以提供統(tǒng)一的元數(shù)據(jù)服務(wù),并支持湖上數(shù)據(jù)的管理,通過DLF可以簡(jiǎn)化和加速湖上數(shù)據(jù)的治理過程。
在數(shù)據(jù)湖場(chǎng)景下,通過采集程序,將用戶的埋點(diǎn)日志近實(shí)時(shí)寫入到OSS-HDFS,并使用Sqoop定時(shí)將業(yè)務(wù)數(shù)據(jù)庫的數(shù)據(jù)同步到OSS-HDFS。在EMR集群中,利用Hive和Spark對(duì)原始數(shù)據(jù)進(jìn)行清洗和加工,提取業(yè)務(wù)所需的指標(biāo),例如日活躍用戶、用戶留存、某SKU的新增訂單等。白天可以通過彈性伸縮機(jī)制,只保留部分節(jié)點(diǎn)。同時(shí),可以啟動(dòng)一個(gè)包含Trino或Presto的環(huán)境,以滿足白天數(shù)據(jù)分析師或運(yùn)營團(tuán)隊(duì)對(duì)數(shù)據(jù)的查詢需求。
數(shù)據(jù)分析場(chǎng)景
OLAP集群類型提供了StarRocks、Doris、ClickHouse等服務(wù)。這些服務(wù)都具有高效的數(shù)據(jù)壓縮、列式存儲(chǔ)和并行查詢等特性,使其在大數(shù)據(jù)分析場(chǎng)景中表現(xiàn)出色。可以用于用戶畫像、人群圈選、BI報(bào)表和業(yè)務(wù)分析等一系列的業(yè)務(wù)場(chǎng)景。
實(shí)時(shí)數(shù)據(jù)分析場(chǎng)景解決方案
步驟如下:
實(shí)時(shí)攝入:通過直接讀取Kafka數(shù)據(jù)來實(shí)現(xiàn)。提供了Flink-Connector來支持Flink數(shù)據(jù)流的直接寫入,并保證了exactly-once語義。此外,還支持Flink CDC來捕捉TP數(shù)據(jù)更新,并實(shí)時(shí)地將結(jié)果更新到StarRocks中。
數(shù)據(jù)分析:實(shí)現(xiàn)了實(shí)時(shí)數(shù)據(jù)分析生成的數(shù)據(jù)可以直接用于Serving,從而實(shí)現(xiàn)了實(shí)時(shí)和離線數(shù)據(jù)的統(tǒng)一融合。
實(shí)時(shí)數(shù)據(jù)建模:提供了實(shí)時(shí)數(shù)據(jù)建模聚合表,以支持實(shí)時(shí)聚合能力。強(qiáng)大的引擎和優(yōu)化器保證了數(shù)據(jù)庫在實(shí)時(shí)數(shù)據(jù)建模時(shí)的高效性。
實(shí)時(shí)更新:采用了delete-and-insert的實(shí)時(shí)更新策略,且在讀取時(shí)無需進(jìn)行主鍵合并,相較于采用了merge-on-read(unique)的合并策略,性能提升了3~15倍。
湖倉分析場(chǎng)景解決方案
查詢層:復(fù)用了當(dāng)前StarRocks的CBO和查詢引擎能力,使得查詢計(jì)算性能達(dá)到了Trino的3~5倍。
元數(shù)據(jù)管理:
支持Multi-Catalog管理,無縫對(duì)接HMS,同時(shí)支持自定義Catalog,便于和云廠商的DLF對(duì)接。
支持通用的Parquet、ORC、CSV等標(biāo)準(zhǔn)格式,實(shí)現(xiàn)了延遲物化和小文件合并讀寫。
支持多種數(shù)據(jù)湖格式,例如Hudi、Iceberg、DeltaLake和Paimon。
步驟如下:
實(shí)時(shí)攝入:屏蔽了底層數(shù)據(jù)源的細(xì)節(jié),支持異構(gòu)數(shù)據(jù)源數(shù)據(jù)聯(lián)合分析,同時(shí)支持實(shí)時(shí)和離線數(shù)據(jù)的聯(lián)合分析。
查詢加速:采用了就近計(jì)算策略,例如表達(dá)式下推和聚合下推,以及分布式讀取/數(shù)據(jù)源針對(duì)性優(yōu)化策略。支持向量化解釋ORC、Parquet格式,字典過濾、延遲物化等技術(shù)。
測(cè)試結(jié)果:進(jìn)行了TPC-H和Hive查詢等測(cè)試,與Presto(OR)相比,在同等條件下,性能提升了3~5倍以上,并且僅使用Presto資源的1/3即可獲得相同的性能體驗(yàn)。
實(shí)時(shí)數(shù)據(jù)流場(chǎng)景
DataFlow集群類型提供了Flink、Kafka、Paimon等服務(wù),主要用于解決實(shí)時(shí)計(jì)算端到端的各類問題,廣泛應(yīng)用于實(shí)時(shí)數(shù)據(jù)ETL和日志采集分析等場(chǎng)景。
通過采集程序?qū)I(yè)務(wù)數(shù)據(jù)、日志和埋點(diǎn)數(shù)據(jù)等投遞到EMR Kafka,利用Flink的實(shí)時(shí)計(jì)算功能將數(shù)據(jù)寫入不同的分析系統(tǒng),例如EMR StarRocks、EMR Hbase和阿里云的實(shí)時(shí)數(shù)倉Hologres,以提供實(shí)時(shí)分析、點(diǎn)查調(diào)用和BI報(bào)表分析等操作。
數(shù)據(jù)服務(wù)場(chǎng)景
DataServing集群類型提供了HBase、Phoenix和OSS-HDFS等的服務(wù)。通過選擇HBase和OSS-HDFS,您可以將HBase的數(shù)據(jù)存儲(chǔ)到湖上,并根據(jù)您的選擇將HBase的WAL日志繼續(xù)寫入集群本地HDFS或OSS-HDFS。采用這種計(jì)算與存儲(chǔ)分離的架構(gòu),可以減輕集群上的存儲(chǔ)壓力。一旦您的數(shù)據(jù)保存到湖上,恢復(fù)HBase集群將變得更加容易。
在數(shù)倉場(chǎng)景下,經(jīng)過ETL計(jì)算,可以獲取指定用戶的標(biāo)簽信息,包括興趣標(biāo)簽、興趣話題、搜索關(guān)鍵詞等,除了基本信息。通過編寫程序,將每日新增或修改的用戶信息寫入EMR HBase集群。利用該集群提供的用戶畫像數(shù)據(jù),可以建立圈選服務(wù),并根據(jù)業(yè)務(wù)促銷情況,有選擇性地投放廣告給一定范圍的用戶。同時(shí),由于數(shù)據(jù)基于湖存儲(chǔ)OSS-HDFS,可以創(chuàng)建一個(gè)新的EMR HBase集群,將其指向與主集群相同的HFile路徑,以作為只讀集群,從而分擔(dān)主集群的讀寫壓力。