从零到一建设数据中台 - 功能组织与实现技术
一、数据中台功能架构
- 目录管理
通过盘点和梳理业务数据,编制、发布数据目录,规划和指导数据的接入、管理、治理、开发、共享等。
- 数据集成
为大数据平台提供基础支撑性服务,提供多种数据接入工具,实现结构化和非结构化的数据的汇聚接入,并支持数据的预处理,为大数据平台提供原始数据支撑。
- 数据资产管理
通过管理数据标准、元数据、主数据、数据资源等,提高数据资产的价值。
- 数据治理
规范数据的生成以及使用,发现并持续改善数据质量。数据治理主要涉及两个大的功能:
数据质量(DQC
):在Hadoop, Spark, Storm
等分布式系统中,提供了一整套统一的流程来定义和检测数据集的质量并及时报告问题。
元数据管理:元数据管理核心在更好的维护数据血缘关系,能够支持表级别、字段级别数据血缘关系。为后续的数据发现、数据追朔、标签体系构建、数据资产运营等提供支撑。
- 数据开发
提供大数据开发、分析、挖掘等功能。非专业的业务人员也可以利用图形化的IDE进行数据分析。
- 数据分析
提供从基本数据查询统计、数据交叉汇总、自由挖掘钻取分析、多维数据分析等多层次的数据分析功能。
- 数据共享
实现不同部门、不同格式数据的共享交换,以及异构系统之间、新老系统之间的信息的透明交换。
- 数据安全
提升一系列安全工具,包括数据加密、数据脱敏、数据备份、日志审计等。
二、数据中台分层架构
数据源层
- 结构化数据:
异构数据库中的结构化数据(关系型数据库、非关系型数据库,Kafka
、RabbitMQ
等消息队列中的数据、其他业务系统中数据库数据、Elasticsearch
中的数据)
- 非结构化数据:
包括图片、声音、视频等,这类数据通常无法直接知道它的内容,数据库通常将它保存在一个BLOB
字段中。一般的做法是,建立一个包含三个字段的表(编号 number
、内容描述 varchar(1024)
、内容 blob
)。引用通过编号,检索通过内容描述。
- 半结构化数据:
半结构化数据具有一定的结构性,但是结构变化很大。因为我们要了解数据的细节所以不能将数据简单的组织成一个文件按照非结构化数据处理,由于结构变化很大也不能够简单的建立一个表和他对应。其存储方式有两种:一种是化解为结构化数据,另一种是用XML
格式来组织并保存到CLOB
字段中。
数据获取层(数据采集层)
数据获取层的主要作用是实现多源异构数据的采集、聚合、传输及预处理,集成多种数据采集工具。
- Sqoop是一款开源工具
主要用于在Hadoop(Hive)
与传统的数据库(mysql
、postgresql
...)间进行数据传递。它可以将一个关系型数据库(MySQL
,Oracle
,Postgres
等)中的数据导入到Hadoop
的HDFS
中,也可以将HDFS
的数据导进到关系型数据库中。
- Flume是一个分布式的海量日志采集、聚合和传输系统
Flume
支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume
提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
- 消息队列(MQ)是一种应用程序对应用程序的通信方法
应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信。
- Kettle是一款开源ETL工具
可以跨平台上运行,绿色无需安装,数据抽取高效稳定。中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。kettle
四大家族:
Chef
:工作(job),设计工具 (GUI方式);Kitchen
:工作(job)执行器 (命令行方式);Spoon
:转换(transform),设计工具 (GUI方式)Pan
:转换(transform)执行器 (命令行方式)
数据存储层
- 关系数据库:
Mpp
(大规模并行处理)技术是基于关系数据库的成熟技术,伴随着分布式与并行数据库技术的发展而来。
- 非关系数据库:
NoSQL
用以解决大规模数据集合多重数据种类问题。分为四大类:键值(Key-Value
)存储数据库(如Redis
),列存储数据库(如HBase
),文档型数据库(SequoiaDB
),图形(Graph
)数据库(如Neo4J
)。
- 分布式文件存储:
HDFS
是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。它具有高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征,为海量数据提供了不怕故障的存储,为超大数据集(Large Data Set
)的应用处理带来了很多便利。FastDFS
是一个开源的轻量级分布式文件系统。功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。
- 全文索引:
Solr
是以Lucene
搜索库为核心,提供全文索引和搜索的开源工具,提供REST
的HTTP/XML
和JSON
的API
。ES(ElasticSearch)
是一个基于Lucene
的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web
接口。
数据处理层
- 离线数据处理:
大数据离线处理一般使用 HDFS
或MPP
存储数据,使用MapReduce
、Spark
微批处理、Flink
流批处理,计算完成的数据如需数据仓库的存储,直接存入 Hive(或ClickHouse)
, 然后从Hive(或ClickHouse)
进行展现。
- 实时数据处理:
是指计算机对现场数据在其发生的实际时间内进行收集和处理的过程,主要技术实现有:Storm
、 Spark Streaming
、Flink
流式处理。