数据存储
现状的样子:
公司的各种需求如对数据分类、数据质量、数据合规性、数据的可观察性、数据操作,这些需求都将数据各自存入了各自的系统,导致数据是碎片化的、重复的、不一致的。因此,需要一个统一的数据平台,即数据的数据平台来管理——元数据管理平台。
期望的样子:
- online dbs
- mysql mongo postgreSQL
- 数据湖data lake
- hudi
- 数据仓库data warehouse
- 各种来源的数据存储库。有当前数据,也有历史数据,基于这些数据对数据进行分析。
- ETL
- extract提取-transform转换-load加载
- 从数据源做数据提取,将原始数据按照需求进行转换,最终将转换后的数据存入目标系统
- ML
- machine learn
元数据管理
背景
公司数据越来越多,怎么应用这些数据?这些都是些什么数据?数据流转是怎么样的?
- 数据科学家正在筛选数据列时,思索着:“这些数据意味着什么?我能如何利用它们构建我的下一个预测模型?”
- 架构师全神贯注于数据流动,思考着:“我们的数据管道每天是如何运作的?我们又该如何保持它们更新、稳定运行?”
- 分析师深入挖掘数据,追求制定有意义的见解。他们想知道:“我们该如何解读这些数据以做出明智的决策?”
- 首席执行官以更宏观的视角关注:“我们的销售轨迹如何?明年的增长可能会呈现何种态势?”
提供的功能
将公司的数据生态中来自不同来源的元数据进行统一的管理。
数据发现
比如想查某个数据,可以方便的根据关键字搜索。比如订单相关的数据,可以通过order关键字进行搜索。还可以查找某个所有者的所有数据。
数据血缘
可以方便的看到一个数据来自哪里,最终流向了哪里。
数据可靠性
可以看到某个表某个字段是不是另一个表的外键之类的信息,也可以看到该字段有多少数据量(多少行数),监控数据是否完整、新鲜。
元数据版本控制
可以方便的知道元数据的变更情况:比如谁在何时修改了数据结构(增加、减少字段)。元数据管理平台可以对这些变更做版本控制。
连接性
可以方便无缝连接数据库、数据湖、流式数据(kafka)、仪表板(kibana)、机器学习等。
datahub
datahub是一个由linkedin(kafka的贡献者)开源的数据目录系统,支持数据发现、数据治理、数据观察。
- 提供数据搜索(基于业务属性对公司数据资产进行搜索)、数据血缘(端到端【数据的开始端和结束端】的数据旅程)。
- 元数据变更事件通知,比如是谁在什么时间做了数据变更,并分析对上下游的影响。
- 可以方便对数据集进行权限管理,比如这个数据集属于哪些用户,哪些用户组。
- 提供了域、标签、词汇术语表。
- 域一般是数据所属的组织架构,比如属于哪个部门、哪个团队
- 标签。可以对数据集进行打标签,方便查询
- 词汇术语表。对数据集的各个字段含义进行解释说明
名词解释
hudi
- Apache Hudi(Hadoop Upserts Deletes and Incrementals),可以高效的进行数据更新、删除和插入功能,不仅仅适用于批处理,而且适用于实时计算
- 传统的数据仓库存储系统仅支持追加写入。
- hudi支持查询加速
- 方便与flink、hive进行集成
- hudi的工作模式:
- Copy-on-Write (COW):在写入时,创建副本,在副本中写入,写入后将原始的替换。适合读多写少的场景
- Merge-on-Read (MOR):在写入时,写入到增量文件中,在查询时,从基础数据文件和增量文件中进行合并查询。适用于读写混合的场景。
hive
hive相当于是对hadoop进行查询的工具。提供了类似的SQL语句。可以方便对hadoop集群数据进行查询操作。
dm
data mining数据挖掘。
作用
- 查看所有数据集、数据集的描述、所有者等其他信息
- 对数据表的字段进行描述(如术语解释),方便使用数据的业务方快速了解数据集。并对数据集进行分类(如通过tag的方式)。