从零构建数据中台平台
Overview
数据中台平台从技术角度,需要支持以下维度的功能:
- IAAS(CDH)
- 数据同步
- 数据开发
- 数据开发IDE
- 工作流调度引擎
- 数据运维
- 数据治理
- 数据质量
- 元数据管理
- 数据安全
- 平台权限
- DevOps
- 监控报警
- 数据服务
- BI可视化展示
后续会使用社区开源系统从零构建数据中台平台,帮助传统企业以及中小型互联网公司更好的数字化转型。
IAAS
底层引擎支撑
- 离线开发
- CDH(Hadoop发行版,包括Hive、Spark、HDFS、YARN、MR、ZK等基础组件)
- 实时开发
- Flink
- 数据源:Kafka、关系型数据库(主要是Mysql)
- 目标源:Kafka、Hbase、ES
数据同步
数据同步核心解决的问题是,把传统关系型的全量数据以及增量数据同步到Hadoop Hive库中或者是Kafka中,以便于根据离线或实时数仓场景做具体的使用。目前针对离线以及实时数仓场景,数据同步主要有如下两个比较稳定的插件:
- DataX(离线场景)
- Flume(实时场景)
如果能够做到把DataX和Flume做整合,给上层提供统一的数据同步接口会更好。
数据开发
这块涉及两个重要环节。数据开发IDE、工作流调度引擎。
数据开发IDE
- 支持各种脚本、SQL IDE功能。
工作流调度引擎
可选的引擎主要有如下四种:
- Easy Scheduler
- Azkaban
- Oozie
- Airflow
数据运维
能够支持对数据开发运行的任务实例进行:
- 大盘metrics展示
- 补数据
- 重跑任务上下游
- 基线报警&报警配置
数据治理
数据治理主要涉及两个大的功能:
- 数据质量(DQC)
- 元数据管理
数据质量(DQC)
DQC这块开源比较好的选择是eBay开源的Griffin。
数据质量在数据科学领域是至关重要的。在大数据时代,企业决策调整,商机发现等越来越依赖于大数据的数据分析和数据挖掘,而数据质量的保证是所有一切数据分析和数据挖掘的基础。
Apache Griffin是一个应用于分布式数据系统中的开源数据质量解决方案。在Hadoop, Spark, Storm等分布式系统中,提供了一整套统一的流程来定义和检测数据集的质量并及时报告问题
元数据管理
这块可选的有三种:
- WhereHows
- Data-Hub
- Atalas
初定Atalas,具体的对比可以参考后续markdown文档。
元数据管理核心在更好的维护数据血缘关系,能够支持表级别、字段级别血缘关系。便于更好的数据监控、问题追朔、成本分析,为后续的问题排查、减少数据污染、数据成本分析&优化、数据资产运营等提供支撑。
数据安全
数据安全涉及几大类:
- 底层Hadoop层面存储、计算能力的数据安全,这块可以用apache的Kerberos或者Ranger解决。
- 组件之间通信协议数据安全:
- 工作流调度Master与Slave之间通信协议(主要是HTTP)数据的加密,以及安全认证。这个主要是混合部署模式下非常有价值和必要。
- 数据服务对外暴露API需要有访问安全控制,以及根据用户需要对数据进行加密。
平台权限
多用户&多租户资源隔离
Kerberos或Ranger只解决Hadoop层面多用户的隔离。但是对于数据中台平台,目标的对象不仅仅是Hadoop的存储、计算能力,而是数据开发(包括实时和离线开发)这个重要环节。所以的DQC、元数据管理、数据安全都是在努力为它服务。
一个公司,拥抱数据中台,就自然而然意味着数据中台平台是整个公司数字化转型的基础设施。
就自然而然会使得如下职责人员在同一个平台协作:
- 数仓开发(实时、离线)
- 大数据运维(主要是涉及数据运维,以及数仓项目多环境发布)
- 数据分析
- BI
- 业务方(主要是使用数据服务提供的API接口)
- 运营(主要是使用HQL、Adhoc场景取数,以及使用BI报表)
所以,使得多租户权限控制和隔离非常重要。
多租户隔离需要做到几点:
- 数据源使用权限的严格限定;
- 开发任务访问、执行权限的严格限定;
- 数据服务对外暴露API权限的严格限定
DevOps
数据中台平台在DevOps场景,主要是多环境支持的需求。这个其实前期可以做的比较弱,后期可以慢慢加强。
核心解决问题是多套环境以及规范测试开发、上线流程。
严格意义上,一个完整的上线规范包括:测试 -> 预发 -> 生产,这套流程是需要在我们的数据中台平台上完成的。我们平台需要有套机制帮助用户更好的:
- 规范流程
- 提供预发、生产变更机制
- 提供预发、生产回滚机制
- 多线下版本维护
- 细粒度权限控制
- 监控&报警支持
通用监控报警服务
需要有套完整的监控报警服务,能够根据自定义上报上的数据或者是采集的数据,根据配置的阈值以及规则进行有效的报警,并对报警的情况进行监控。
数据服务
数据服务主要解决问题是:把底层关系型数据库的数据API化,使得上层的应用能够更好的使用数据中台平台开发好的数据。
这块涉及两个问题要解决:
- SQL Proxy:具体选型待定
- API官网:具体选型待定
BI可视化
BI可视化解决问题是把底层各种关系型数据库数据、多维聚合数据图表化展示。
主要支持数据源
- 传统关系型数据库
- Kylin等多维离线聚合OLAP引擎
- Hbase等NoSQL场景
- ES
丰富图表类型支持
要求尽量支持如下图表类型:
- 表格
- 柱状图
- 饼图
- KPI
- 漏斗图
- 桑基图
- 雷达图
- 气泡图
- 对比图
- 标签云
- 热点图
- 关系图