4.2 数据管理及应用阶段
这个阶段的企业一般会开始数据湖和数据仓库的建设,并涉及数据治理与管理、数据安全与权限管理等。
4.2.1 数据湖/数据仓库建设
企业开始将数据简单地导入Hadoop,然后运行一些查询。在这个时候,一般会开始数据湖和数据仓库的建设,也会逐渐重视元数据的管理、数据建模的管理。这时一般会有比较懂业务的人员参与到数据仓库的建设中,以确保所有业务相关的数据能够完整地导入数据仓库相应的模型中,如果有缺失的信息,可能还要进行新的数据埋点或者业务系统改造。
数据湖和数据仓库建设是数据中台建设的核心工作之一,负责整体的业务数据建模并将原始数据转换成数据应用可以直接使用的数据。图3-1所示的数据仓库架构其实在20世纪90年代就已经很成熟,数据中台建设在这一阶段主要提出了类似于OneID和OneModel这样针对数据治理和建模的要求。
这一阶段的主要工作包括:
·顶层业务架构的梳理,业务域和数据域的划分;
·数据规范的确定;
·业务流程的梳理及面向业务流程的数据建模;
·数据导入、数据清洗、数据治理、数据转换;
·主题的分析及实现,数据集市的建立。
这些工作内容将在第10章中详细介绍。
4.2.2 数据管理
一个企业级的大数据系统不仅要处理与标准操作系统类似的硬件和软件故障问题,还要处理与数据相关的问题,这就是数据管理需要做的工作。一个真正数据驱动的IT系统需要确保数据完整、正确、准时,并为数据进化做好准备。那么我们需要完成以下工作(见图4-3)。
·我们需要确保在数据流水线的任何步骤中数据都不会丢失,因此需要监控每个程序正在处理的数据量,以便尽快检测到所有异常。
·我们需要有对数据质量进行测试,以便在数据中出现任何意外值时,接收到告警信息。
·我们需要监控应用程序的运行时间,以便每个数据源都有一个预定义的ETA(预期完成时间),并且会对延迟的数据源发出警报。
·我们需要管理数据血缘关系,以便了解每个数据源的生成方式,在出现问题时,知道哪些数据和结果会受到影响。
·系统应自动处理合法的元数据变更,并应立即发现和报告非法元数据变更。
·我们需要对应用程序进行版本控制并将其与数据相关联,以便在程序更改时,知道如何对相关数据进行相应的更改。
图4-3 数据管理
此外,在此阶段,我们可能需要为数据科学家提供单独的测试环境来测试其代码,并提供各种便捷和安全的工具,让他们能快速验证自己的想法,并能方便地发布到生产环境。
4.2.3 数据安全
在实现面向客户产品的数据驱动后,企业管理层依靠实时的业务数据分析报告来做出重大决策。数据资产安全将变得非常重要,我们必须确定只有合适的人员才能访问数据,并且数据系统应该拥有完善的身份验证和授权方案。
一个简单的例子是Hadoop的Kerberos身份验证。如果没有使用Kerberos集成运行Hadoop,那么拥有root访问权限的任何人都可以模拟Hadoop集群的root用户并访问所有数据。其他工具如Kafka和Spark也需要Kerberos进行身份验证。由于使用Kerberos设置这些系统非常复杂(通常只有商业版本提供支持),我们看到的很多系统都选择忽略Kerberos集成。
除了身份验证问题,以下是企业在此时还需要处理的一些问题(见图4-4)。
·数据审计:系统必须审计系统中的所有操作,例如谁访问了系统中的什么内容。
·多租户:系统必须支持多个用户和组共享同一个集群,具有资源隔离和访问控制功能,能够安全地处理和分享他们的数据。
·端到端安全:系统中的所有工具都必须实施正确的安全措施,例如所有Hadoop相关组件的Kerberos集成、所有网络流量的HTTPS/SSL。
·单点登录:系统中的所有用户在所有工具中都应具有单一身份,这对于实施安全策略非常重要。
图4-4 数据安全阶段
由于大多数开源工具没有在其免费版本中提供这些功能,因此许多项目在安全问题上采用“撞大运”的方法并不奇怪。安全的价值对于不同的项目来说并不相同,但我们必须意识到其中潜在的问题并采取适当的应对方法。