容错能力:对于数据中台这样复杂的系统,我们必须假设所有组件都有可能失败或出错。系统必须具备极强的容错性以及在发生大多数错误时自动恢复的能力。
数据安全:数据越来越成为一个公司的核心价值,数据中台是公司数据处理和能力共享的核心组件,我们要假设所有的规则都有人违背,一定会有人试图违规访问数据。数据中台应该能让每个用户都放心使用系统,而不用担心会使系统意外崩溃。
不要重复造轮子:应该尽量避免重复开发系统功能组件,系统中的数据和能力要能高效安全地在各个部门之间共享。这意味着每个用户在使用数据中台的时候,都能够对系统中的可用数据和能力有个全局视图。
兼顾灵活性和易用性:作为数据中台,如果把所有组件都做得傻瓜化,虽然对于新手来说很容易上手,但是在功能和效率上会有一定限制;如果提供很多灵活的选项,则新手可能就会淹没在复杂的系统配置中。必须在二者之间找到一个比较好的平衡。
数据中台架构要搭建一个企业级的数据中台,是一个及其庞大的一个工程,涉及到很多的方面,我们先看一个数据中台的架构图,当然数据中台的架构在每个企业都是不一样的,要结合自己公司的业务场景才是符合公司的数据中台架构,下图只是数据中台架构图的一个例子。
计算存储平台:为数据中台提供计算和存储,存储可以存储结构化,半结构化,非结构化数据,计算有实时计算、离线计算,交互式计算,图计算等
数据集成开发平台:数据集成开发平台能最高效地使用底层的组件和数据,提供从源数据到数据能力的转换。数据集成平台是数据中台数据接入的入口。数据中台本身几乎不产生数据,所有数据来自于业务系统、日志、文件、网络等,这些数据分散在不同的网络环境和存储平台中,难以利用,很难产生业务价值。数据集成是数据中台必须提供的核心工具,把各种异构网络、异构数据源的数据方便地采集到数据中台中进行集中存储,为后续的加工建模做准备。数据集成方式一般有数据库同步、埋点、网络爬虫、消息队列等;从汇聚的时效性来分,有离线批量汇聚和实时采集,也有增量同步和全量同步。在数据集成的过程中一般会用到datax,flume,sqoop,canal等工具。
数据基础能力平台:常用的大数据平台组件、数据仓库、数据湖的工具、ETL工具、数据可视化工具等。通过数据集成模块汇聚到中台的数据没有经过处理,基本是按照数据的原始状态堆砌在一起的,这样业务还是很难使用。数据开发是一整套数据加工以及加工过程管控的工具,有经验的数据开发、算法建模人员利用数据加工模块提供的功能,可以快速把数据加工成对业务有价值的形式,提供给业务使用。数据开发模块主要面向开发人员、分析人员,提供离线、实时、算法开发工具,以及任务的管理、代码发布、运维、监控、告警等一系列集成工具,方便使用,提升效率
数据体系:有了数据集成、数据开发模块,中台已经具备传统数据仓库(后面简称:数仓)平台的基本能力,可以做数据的汇聚以及各种数据开发,就可以建立企业的数据体系。数据体系是中台的血肉,开发、管理、使用的都是数据。大数据时代,数据量大,增长快,业务对数据的依赖也会越来越高,必须考虑数据的一致性和可复用性,垂直的、烟囱式的数据和数据服务的建设方式注定不能长久存在。不同的企业因业务不同导致数据不同,数据建设的内容也不同,但是建设方法可以相似,数据要统一建设,建议数据按照贴源数据、统一数仓、标签数据、应用数据的标准统一建设,数据体系建设最终呈现的结果是一套完整、规范、标准、准确的数据体系,可以方便支撑数据应用。
数据资产管理:通过数据体系建立起来的数据资产较为偏技术,业务人员比较难理解。资产管理是以企业全员更好理解的方式,把企业的数据资产展现给企业全员(当然要考虑权限和安全管控),数据资产管理包括对数据资产目录、元数据、数据质量、数据血缘、数据生命周期等进行管理和展示,以一种更直观的方式展现企业的数据资产,提升企业的数据意识。