3 数据中台建设方法论
3.1 数字化战略
3.1.1 数字化战略的价值
数字化战略的核心是对客户价值、数据价值驱动的“前台-中台-后台”能力的抽象和平台化建设,尤其对中台能力的标准化、数字化、平台化、服务化的抽象和建设。
- 中台能力的标准化意味着可复制
- 中台能力的数字化意味着数据是血液,数据的汇集、流动、聚合意味着数据价值的整合和实现
- 中台能力的平台化意味着共享和效率
- 中台能力的服务化意味着互动、共享和规模化
3.1.2 战略和执行双轮驱动
(1)战略驱动
- 战略意图是战略思考的起点。要想确定战略意图,确定清洗的战略远景、明确的战略目标是战略规划的第一步。
- 战略思考要和业务紧密结合,利用创新的思维方式,获得更多灵感,设计全新的、合理的业务行动蓝图,促进企业的发展和战略意图的实现。
- 企业变革,组织先行。
(2)执行驱动
- 好的执行必须做到根据确定的战略意图、战略目标、组织设计和业务行动蓝图的设计,确定任务的分解和规划,病让上下缪力同心,携手完成规划。
- 企业要按照战略部署确定组织变革目标,有效地组织和人才建设的落地。
- 在有了得力的组织和优秀的人才队伍后,下一步要根据企业规划的行动设计,进行任务分解病制定项目事历,通过强大的执行力有效地推动企业蓝图的实现和落地。
(3)3个工具
- 通过市场洞察,企业可有效地了解市场机遇和挑战,洞悉行业发展趋势,清楚竞争对手的过去、现在和未来。
- 创新是突破禁锢,打破思维束缚的利器。
- 根因分析是指导企业弥补差距的重要举措。
3.1.3 数据中台战略制定
- 建议企业整体组织遵循“大中台、小前台”的组织形式,中台组织遵循双中台驱动,即业务中台和数据中台驱动。建议前台按照特种部门模式,构建尖兵组织。
- 中台建设是一把手工程,需要企业自上而下推动
- 数据中台最终落地效果与各层员工的能力、思维方式和支持力度密切相关,其中大数据思维变革尤其重要。
3.2 数据中台整体框架
3.2.1 统一数据基础设施平台
- 数据存储平台:用于数据的保存、增、删、查找等需求。数据库一般分为关系型数据库(oracle、mysql)和非关系型数据库(Hbase、MongoDB)。非关系型数据库种类众多,如内存数据库(Redis)、列存储数据库(Hbase)、半结构化数据库(MongoDB)、图数据库(Neo4j)、时序数据库(InfluxDB)、文件系统(HDFS)等
- 数据计算平台:主要分为离线计算平台(如Hive、Spark)、实时计算平台(Flink)、流式计算平台(Storm和Spark Streaming),主要用于对复杂逻辑的计算。
- 数据查询平台:主要用于数据标签的高性能查询,常用的数据查询引擎有Impala、Elasticsearch、Soir等
3.2.2 数据接入和汇聚平台
数据接入和汇聚平台是数据中台的起点,用于接入各个数据源的数据,然后通过统一的标准化体系实现数据的统一集中存储和汇聚,为上层数据模型夯实数据基础。数据接入和汇聚平台需要配套的工具,比如数据爬虫、数据同步、数据迁移等。
3.2.3 统一数据模型平台
统一数据模型平台保障了数据的标准化和统一规范,沉淀了业务共同的数据维度和指标,实现了数据分层建模。数据建模一般将数据资产进行分层,如源数据层、中间层、汇总层、标签层和应用层。好处是让数据的血缘关系和结构清晰,减少重复开发。
3.2.4 统一ID和标签平台
统一ID和标签平台解决各种业务实体ID不统一问题和标签体系不完备的问题。在确定业务实体ID统一后,就需要围绕该业务实体,构建数据集市,实现基于该业务实体的数据资产的价值。
3.2.5 数据开发和运维平台
数据开发和运维平台主要是一个工具抽象和建设平台,用于构建系列工具提高数据开发和运维的效率与自动化水平。常见的工具有数据爬虫、数据同步、数据迁移、数据开发、数据ETL、监控工具、调度工具、数据运维等。
3.2.6 数据智能平台
数据智能平台承接数据模型输出的数据标签,利用大数据和算法提供分析、分类、排序、聚类、预测、推荐、匹配、决策支持、感知、理解、互动、学习等智能,支持业务的智能化需求。
3.2.7 数据管理平台
数据管理平台的核心能力是让企业有哪些数据资产、数据资产的存储情况、数据资产之间的关系和血缘均清晰可见,让数据资产符合质量管理规范,让数据资产的应用符合流程要求和安全规范,保障数据资产低冗余、高复用。
- 数据标准管理:制定数据中台各层数据接入、存储、处理、汇聚、分类、编码、交换、迁移、建模、应用的统一管理规则,实现数据应用全流程有法可依和整齐划一。
- 元数据管理:主要功能有数据血缘分析、下游影响分析、从源表到目标表的数据结构检查、指标一致性分析等。元数据管理的一般流程为梳理和调研、定义元数据、采集元数据、元数据管理和监控、元数据分析、元数据管理优化。
- 主数据管理:用户描述企业核心业务实体的数据标签。主数据管理的一般流程为现状梳理和调研、识别主数据、建立组织保障、建立管理体系和规范、试用、推广和迭代。
- 数据质量管理:数据质量管理贯穿数据中台全流程。数据质量管理一般流程为现状梳理和调研、制定质量评价标准、确定治理规则、数据质量分析、建设质量监控和预警体系、优化和迭代。
- 数据生命周期管理:数据生命周期可分为创建/接入、处理、存储、汇聚、使用、共享/复用、重构、归档、销毁。核心价值为:降低存储成本、提高数据使用效率、促进数据资产复用、促进数据模型迭代,高效响应客户的动态需求。
- 数据安全管理:数据安全涉及数据中台各个层级,如基础设施平台安全、数据接入安全、数据建模安全、数据应用安全、访问安全、数据开发和运营工具安全、数据服务安全、客户隐私保护、数据合规等。从数据资产应用角度考量,数据安全着重强调数据的合规、分级、脱敏、授权、加密、安全审计、监控和预警,以及访问控制。
3.2.8 数据服务平台
数据服务平台将公共数据功能抽象并封装为数据API,实现了数据即服务(Daas),高效地响应了业务需求。数据服务平台的价值主要有:
- 有效地解决数据烟囱问题
- 实现数据高可用性、高复用性,提高数据的使用效率
- 统一维护,降低运维成本
- 统一实现数据服务的数据线上化和数据化,不留下任何“数据孤岛”,便于优化数据服务的体验。
3.3 数据中台的8大设计准则
3.3.1 有数能用
有数能用重点解决数据采集、获取、接入等问题,遵循以下原则:
- 采集和接入的数据字段的长度、精度、类型、编码、格式等应符合要求。
- 对采集和接入的数据应进行初步的数据检验,要保障数据质量,如空值率、数据重复情况、数据完整情况、数据条数、乱码情况校验等。
- 必须保留接入数据的元数据详尽信息,如数据字典、数据来源、接入方式等。
- 数据接入的接口符合接口规范,如数据安全、数据隐私、传输延时等。
- 满足接入数据及时性和稳定性的要求。
3.3.2 让数据可用
让数据可用着重解决数据标准化、数据清洗和规整,以及数据质量相关问题,统一数据标准、消除歧义,提高数据质量。应遵循以下原则:
- 符合命名规范
- 符合企业对数据准确性、完整性、一致性、有效性、唯一性、及时性、稳定性等数据质量管理标准的要求
- 符合企业元数据管理规范的要求。
3.3.3 让数据好用
让数据好用解决数据模型抽象和数据平台效率等问题,让数据血缘关系清晰,支持离线和实时计算,让数据成为资产。遵循以下原则:
- 符合字段、表、程序等命名规范
- 符合企业对数据准确性、完整性、一致性、有效性、唯一性、及时性、稳定性等数据质量管理标准要求
- 遵循数据清洗、转化和数据校验规则。eg:身份证号处理、字段合并、空值处理、脏数据处理、重复数据处理等。
- 数据分层逻辑清洗,屏蔽底层复杂业务逻辑,避免直接操作底层的事实表。
- 遵循隐私数据加密处理和数据授权管理规则。
- 减少数据获取时间,提高使用效率
- 提高数据仓库使用效率
3.3.4 让数据易用
让数据易用解决数据操作工具化、可视化等问题,提供便捷的开发环境,让数据更有穿透力、更直接地呈现数据价值,让数据很容易被人使用,降低数据使用门槛。遵循以下原则:
- 配套的数据开发、运维、管理工具齐全和好用
- 数据可视化工具齐全、好用。eg:BI工具、自动取数工具、自助分析工具等
- 数据文档清洗、完备、易用。
3.3.5 让数据放心用
让数据放心使用解决数据安全、客户隐私保护和数据合规等问你他,遵循以下规则:
- 数据来源合规合法
- 符合数据安全和隐私保护规则
- 数据接口安全、可靠
3.3.6 让数据更智能
让数据更智能解决数据价值分析、挖掘、提炼和萃取等问题,遵循以下原则:
- 做好智能的抽象、分类和封装,提高模型复用性
- 提高算法和模型效率,降低延迟,提高使用效率
- 提高模型建设、评估、测试、应用、迭代流程的可视化negligible和自动化水平。
3.3.7 让数据服务化
让数据服务化解决数据能力抽象、封装、共享和服务化问题,实现数据服务线上化、模块化、产品化和共享化,支持基于用户需求的解耦和洞察,自动化组装数据服务来满足客户需求,实现从需求到响应的全流程自动化和智能化。遵循以下原则:
- 满足数据服务接口规范
- 提高数据抽象设计和聚合能力,增强数据服务复用性
- 满足数据服务的双向性:主动推送和被调用
- 遵循数据服务高可用性和高稳定性原则。
3.3.8 让数据可控
让数据可控解决数据管理和数据监控体系问题,遵循以下原则:
- 数据标准化规范
- 数据质量管理规范
- 数据生命周期管理规范
- 数据安全管理规范
3.4 数据中台行动攻略
3.4.1 “九看”方法论
- 看趋势:通过行业调研,了解数据中台的前世今生,洞悉其发展趋势,找到行业标杆,找到行业发展机会,对数据中台未来发展方向做出预判,迅速制定发展策略。
- 看客户:以客户为中心,了解客户痛点,充分调研客户需求,挖掘并洞察客户需求。
- 看对手:调研市场上的竞品情况,充分了解对手的过去、现状和未来的发展轨迹,分析对手的优势和劣势,找到行业的机会和挑战,取长补短,达到目标。
- 看机会:仔细分析,找到机会,立即行动,抓住机遇,赶超行业。
- 看自己:核心原则是继续发扬和扩大优势,逐步减少劣势。
- 看差距:一个为机会差距,企业要详细分析与对手相比,错过了哪些市场机会导致发展的差距;另一个业绩差距,看自己的业绩和目标业绩差距,找到影响业绩差距的关键因素,逐一解决。
- 看根因:面对差距,挖掘根因
- 看行动:知行合一,强化执行力建设
- 看复盘:及时复盘,洞悉产品偏差原因,有效地保障项目进度并提升项目完成质量。
3.4.2 数据中台MVP(Minimum Viable Product,最小化可行产品)建设路径
需要从数据中台MVP入手,先把框架搭建起来,然后逐步向框架中填充扎实的内容,初步形成业务认可的数据中台,最后通过反复的迭代反向驱动业务升级,数据中台建设分为7个阶段:
- 自上而下制定数据中台战略意图、战略目标、行动设计蓝图、并确定相匹配的组织架构规划。
- MVP建设包括标准化体系建设;最小基础设施建设(包括ETL、数据仓库、数据计算平台和数据分析等工具)、组织建设、最小人才梯队建设
- 熟悉业务、梳理业务流程、找到业务痛点
- 根据业务痛点,数据中台团队启动几个中小数据项目并让其快速产生价值,宣导大数据思维方式、锻炼队伍、强化信任。
- 宣导大数据思维,构建数据文化,引发思维变革,夯实群众基础。
- 抓住核心痛点,攻坚克难,实现数据价值
- 重新抽象公共数据服务,进一步提高效率。
3.5 数据中台开源解决方案
3.5.1 数据存储
互联网行业大数据的主流存储框架是基于Hadoop的分布式文件系统HDFS。由于其具有高容错性和适合批处理数据特点,适合部署在低廉的PC服务器上存储海量数据,数据存储性价比高。
3.5.2 离线计算
在HDFS基础上,Hadoop生态又开发了离线数据仓库计算引擎Hive。Hive基于MapReduce技术支持分布式批处理计算,同时支持以SQL操作的方式对存储在HDFS上的数据进行“类数据库”的操作、计算和统计分析。
由于基于MapReduce技术涉及磁盘间高频的I/O操作,所以Hive的计算效率低,时效很长。主流的离线计算框架采用Hive+Spark组合方式。Spark优势是计算速度快,缺点是容易出现内存泄漏和不通,从而导致计算缓慢或任务失败。在海量数据场景中,出于稳定的要求,Spark一般用于处理数据仓库上层查询、计算和分析操作,而底层的操作用Hive完成。
3.5.3 实时计算
Spark体系更加成熟、易用性较好,如果对于数据延迟要求是秒级,那么Spark更容易上手且能满足性能要求。Flink 1.0之后的版本,强化流批一体数据仓库,高度兼容Hive,其实实时处理能力和设计理念要由于Spark,成为实时数据仓库计算引擎的热门选择。
3.5.4 查询引擎
查询引擎可分为SQL交互式查询引擎和NoSQL交互式查询引擎。HBase、Redis、MongoDB都属于NoSQL交互式查询引擎。
(1)SQL交互式查询引擎
Impala和Presto基于MPP架构,通过分布式引擎提高查询效率。ClickHouse、Kylin是目前主流的联机分析处理(OLAP)计算和查询引擎。
- Kylin以数据立方体模型形式缓存,以便加快聚合操作和查询速度,特别适合对海量数据的OLAP场景。
- ClickHouse适合海量数据大宽表的灵活和随机查询、过滤和聚合计算,写入和查询性能很好。
- Presto有Fackbook开源,支持基于内存的并行计算,支持多个外部数据源和跨数据源的级联查询,对单表的简单查询和多表关联方面性能较好,擅长进行实时数据分析。在处理海量数据时,Presto对内存容量要求高,多个大表关联容易出现内存溢出。
- Impala由Cloudera退出,是一个SQL on Hadoop的查询工具,也基于内存进行并行计算,目标是提供HDFS、HBase数据源复杂的高性能交互式查询。Impala的单表和多表关联性能和Presto相近,支持窗口函数、增量统计、多用户高并发查询,但数据源的丰富程度不如Presto。Impala对内存容量要求高,多个大表关联容易出现内存不足。
(2)NoSQL交互式查询引擎
- HBase是基于key-value原则的列示查询引擎,适用于频繁进行插入操作且查询字段较多的场景。HBase的列示扩展能力强,理论上硬盘有多大,HBase的存储能力就有多大。HBase不适用于大量udpate操作场景。HBase主要缺点是update操作性较低。
- Redis是内存数据库。Redis的原理是基于内存进行计算和查询。Redis的存储容量与内存容量有关,支持的数据类型比较丰富,有一定的持久化能力,适用于高频update操作场景,读写速度非常快。切点是内存容量有限,价格高,一般用于存储非常有价值且需要高频读写的数据。
- MongoDB主要以JSON数据串格式存储数据,适用于表结构变化大的海量数据查询和聚合计算的场景,这是区别于其他数据库的重要特色。
3.5.5 数据采集工具
StreamSets同时支持结构化和非结构化数据采集。可通过可视化界面的拖、拽等操作实现数据采集和传输,支持多种数据源,组件丰富,功能强大,简单易用,且内置监控组件,可实时监控数据传输情况。
在结构化数据采集方面,Sqoop的综合性能更好,社区更活跃,插件更丰富,使用更广泛。
在非结构化数据采集方面,Logstash更轻量,使用更简单,插件丰富,对技术要求不高,运维比较简单。Flume框架更复杂,偏重于数据传输过程中的安全,不会出现丢包的情况,整体配置更复杂,入门难度较高,运维难度更高。
3.5.6 数据仓库
主流的数据仓库分为离线数据仓库和实时数据仓库,目前行业的离线数据仓库普遍采用Hive+Spark的综合丰安,实时数据仓库当前主流的方式是HDFS+Flink+Kafka
3.5.7 可视化自助数据分析
推荐ClickHouse+Kylin+Superset的统一解决方案。与计算的OLAP使用Kylin引擎,及时查询的计算使用ClickHouse。
3.5.8 规则引擎
规则引擎音看过用场景有风险管理、动态定价、精准营销、监控预警等。开源工具Drools结合二次开发搭建规则引擎,其有点事语法规则简单、支持动态规则配置、社区热度高、网络落地案例丰富、功能丰富且不断升级迭代,缺点是相对较重、应用门槛较高、聚合计算效率低等。对于实时规则应用场景,建议使用流式计算引擎计算复杂的聚合规则,而简单的规则计算使用Drools内核。
3.5.9 机器学习引擎
智能化的真谛是使用机器学习算法、AI算法和其他算法不同程度地实现机器代替人工。各种开发的算法包多,当建模数据行数在千万级别时,常用Anaconda包和XGBoost包。当建模数据行数在亿级别时,常用Spark和MLlib。
3.5.10 元数据管理
Atlas和Hadoop无缝连接,能有效地支持元数据管理、数据资产分类、元数据搜索、血缘关系可视化和数据治理。Altas支持对元数据添加标签,然后通过标签对数据资产进行分门别类管理,并基于标签进行统一权限控制和数据资产的安全管理。Atlas哈克补货各种元数据信息并支持查看元数据和血缘的可视化,便于及时发现数据的变化,快速定位数据问题。
3.5.11 工作流调度和监控
行业常用的开源工作流调度和监控工具主要是Oozie和Azkaban
- Oozie的工作流靠捕捉和监控更加细粒度的MapReduce批处理任务执行级别信息;
- Azkaban工作流运行仅靠捕捉和监控较粗粒度的操作进行级别的信息。
这会导致出现失败或断电后,Azkaban需要重新执行工作流,而Oozie可基于失败的工作流重新执行。不过Azkaban这个功能可通过二次开发进行优化。Azkaban的优势是有完善的权限控制,支持对工作流的读写进行权限控制。Azkaban是一个轻量级的应用,聚焦批量工作量的调度和架空,简单易用,更开放、支持二次开发。