大數據平臺建設有其天生的複雜性,每一年都在推陳出新,從WareHouse、DataLake到LakeHouse,各種各樣的Batch、Stream、MPP、Machine Learning、Neural Network計算引擎,對應解決的場景和組合的方式非常個性化,建設過程會遇到包括技術層面、組織層... ...
問題與挑戰
背景
大數據技術棧
-
系統平臺 (Hadoop、CDH、HDP)
-
雲平臺 (AWS、GCP、Microsoft Azure)
-
監控管理 (CM、Hue、Ambari、Dr.Elephant、Ganglia、Zabbix、Eagle、Prometheus)
-
文件系統 (HDFS、GPFS、Ceph、GlusterFS、Swift 、BeeGFS、Alluxio、JindoFS)
-
資源調度 (K8S、YARN、Mesos、Standlone)
-
協調框架 (ZooKeeper 、Etcd、Consul)
-
數據存儲 (HBase、Cassandra、ScyllaDB 、MongoDB、Accumulo、Redis 、Ignite、Geode、CouchDB、Kudu)
-
行列存儲 (Parquet、ORC、Arrow、CarbonData、Avro)
-
數據湖 (IceBerg、Hudi、DeltaLake)
-
數據處理 (MaxCompute、Hive、MapReduce、Spark、Flink、Storm、Tez、Samza、Apex、Beam、Heron)
-
OLAP (Hologres、StarRocks、GreenPlum、Trino/Presto、Kylin、Impala、Druid、ElasticSearch、HAWQ、Lucene、Solr、 Phoenix)
-
數據採集 (Flume、Filebeat、Logstash、Chukwa)
-
數據交換 (Sqoop 、Kettle、DataX 、NiFi)
-
消息系統 (Pulsar、Kafka、RocketMQ、ActiveMQ、RabbitMQ)
-
任務調度 (Azkaban、Oozie、Airflow、Contab、DolphinScheduler)
-
數據安全 (Ranger、Sentry、Atlas)
-
數據血緣 (OpenLineage、Egeria、Marquez、DataHub)
-
機器學習 (Pai、Mahout、MADlib、Spark ML、TensorFlow、Keras、MxNet)
-
Iceberg+S3+Starrocks+Flink
-
HDFS+Alluxio+Spark+Trino
-
HDFS+Hive+GreenPlum
-
Minio+LakeFS+Marquez+Trino


Data Fabric/Data Mesh解決的問題
-
技術問題:大數據建設架構層出不窮,一直有“Next-Generation”的新產品與組件出現,持續建設導致技術架構多樣化,數據存算分散成為常態。(比如某運營商客戶同時運維N個小的業務域集群,總部和各省區域集群,數據處理ETL過程冗長,管理運維成本高)
-
組織問題:單一數據團隊架構帶來的數據工程需求壓力,持續積累汪洋大海一樣的數據目錄帶來高額的分析探查成本。缺少統一的血緣和業務知識導致的數據分析運營困難。而數據價值的挖掘存在知識壁壘,數據分析需求由單一數據部門來響應成為瓶頸,溝通成本高,錶面在中台內開發但依然垂直建設煙囪的局面,未來面臨一次又一次的重構。
概念分析
Data Fabric
概念
-
定位:解決分散的數據平臺,從技術和產品角度打造元數據驅動的統一的Virtual Layer,屏蔽底層各種數據集成、湖、倉、MPP資料庫的差異。數據的讀寫和計算在各種底層的Warehouse中往來,在統一的自服務平臺中編排和計算。
-
技術要素:數據集成、服務集成、統一的語義(跨引擎)、主動元數據、知識圖譜(元數據圖結構)、智能數據目錄。主動適配各種大數據產品,避免廢棄重建,增加了一個虛擬層。在虛擬層中自動進行必要的ETL、計算下推、數據目錄智能推薦、數據虛擬化、聯邦計算等過程,使開發人員和數據分析對於底層差異無感。
-
不涉及組織變化:數據分析可以由維護數據平臺的人來統一管理和保障也可以跨組織協同。對組織架構無干涉。
Tech stack
Data Fabric Architecture
Data Mesh
概念
-
面向領域的分散式數據權責劃分和架構設計;
-
數據作為產品;Data as Product;
-
自服務的平臺技術架構;
-
跨域聯合計算。
治理級別
-
Level 0: No Data Analytics
-
Level 1: Operational Database Queries
-
Level 2: Analyze Own Data
-
Level 3: Analyze Cross-domain Data
-
Level 4: Publish Data as a Product
Tech stack
-
DataWorks and MaxCompute
-
AWS S3 and Athena
-
Azure Synapse Analytics
-
dbt and Snowflake
-
Databricks
-
MinIO and Trino and LakeFS
總結
二者的相同與不同
-
共同:Self-Serve Data Platform, No ETL,立足於解決數據現狀分散的問題。是一種架構框架,而不是某款產品。
-
不同:Mesh偏向方法論,分散式的敏捷數據開發,類比微服務的Service Mesh。Fabric偏向構建虛擬的單體技術架構。

什麼情況應該避免用DataMesh
-
小團隊,數據規模和數據域都比較少 -
高內聚的單體平臺(比如SAP、DataPhin)滿足需求 -
實效性要求高(網格化的數據通過CDC類實時的集成和計算也可以保證低延時)
Gartner怎麼看
技術分析
還需要哪些輪子
-
統一的數據集成、服務集成
-
統一的語義表達
-
主動元數據+知識圖譜(元數據圖結構、血緣),基於元數據的推薦等擴展能力
-
統一數據目錄、統一的Table行列存儲結構、統一緩存
-
跨域聯邦計算、自動計算下推。
Catalogue

-
Impl:具體Catalog的實現類,影響URL和IO的配置
-
Url: Catalog的存儲地址,可以是S3、HDFS,根據Impl的定義有差異
-
IO: Catalog具體的IO讀寫實現,比如S3的Catalog存儲既可以選擇用Hadoop-S3去讀寫,也可以直接使用S3FileIO Client讀寫,或者通過Restful API
-
Warehouse:實際數據的存儲地址,可以是HDFS、S3或其他分散式存儲

@Override
public Database getDB(String dbName) throws InterruptedException, TException {
org.apache.hadoop.hive.metastore.api.Database db = clients.run(client -> client.getDatabase(dbName));
if (db == null || db.getName() == null) {
throw new TException("Hive db " + dbName + " doesn't exist");
}
return convertToSRDatabase(dbName);
}
Data Format

Data Lineage | Data Discovery

-
Cli Wrapper:對於Python開發的客戶端,代碼可以重新封裝,替換原預設的命令行腳本,在提交過程解析任務執行的代碼,分析血緣並轉發給後端;
-
java agent:適用於Java開發的submit job 過程,侵入Jvm載入位元組碼的過程,分析代碼中的血緣並轉發給LIneage Backend遠程地址;
-
event listener:對於支持Extra Listener擴展的計算框架,提供定製化的Listener配置,運行時過程中手機元數據信息轉發給後端;
統一的開發IDE與語義
還有Semantics、Orchestration、Active MetaData、FederatedCompute等等
與大數據技術服務的關係

-
大數據異構平臺的遷移(解決從A到B的問題):幫助客戶實現快速低成本數據、任務和調度統一遷移到雲上阿裡雲大數據產品。搬站服務和工具的一些設計與輕量級的Data fabric關聯較大,比如數據遷移依賴MaxCompute的湖倉一體(Inside Hadoop方案)加速客戶的數據遷移過程。內部抽象統一的血緣分析和調度的標準化轉換屏蔽了客戶各種Script、調度DAG的差異。
-
湖倉、流批架構規劃服務(解決A與B共存演進問題):部分客戶提到希望可以提供持續演進的規劃,中間態多產品共存,比如通過擴展MaxCompute的標準插件實現與開源大數據引擎的聯合分析,或者基於HDFS聯邦新老集群共存,在在某些架構咨詢項目,設計統一的數據湖元數據中心組件實現存儲計算結構平滑擴容。
-
數據生產運營優化(數據價值與生產平衡問題):結合data fabric架構思想設計統一的全鏈路的數據血緣幫助客戶做全面的存儲、槽位、Quota等資源分析和優化。對於客戶當前已經有多平臺共存、雲邊端協同等場景的大數據架構設計場景,基於data mesh的理論框架,實現數據敏捷分析、快速體現數據業務化價值。
搬站工作台

大數據生產運營優化

參考資料:
https://www.datamesh-architecture.com/
https://www.datanami.com/2021/10/25/data-mesh-vs-data-fabric-understanding-the-differences/
https://www.starrocks.io/
https://iceberg.apache.org/
https://openlineage.io/
https://www.gartner.com/doc/reprints?id=1-2B6AXOGW&ct=220920&st=sb
https://arrow.apache.org/
https://www.starrocks.io/
https://www.getdbt.com/
https://datahubproject.io/
作者|
本文來自博客園,作者:古道輕風,轉載請註明原文鏈接:https://www.cnblogs.com/88223100/p/DataFabric_VS_DataMesh.html