近几年,汽车行业全面拥抱电气化和数字化,一方面有行业先行者和政策法规的激励作用,另外一方面随着无线网络升级换代以及云计算技术越发成熟,车机端到企业端能够更加实时稳定传输丰富数据。如何利用好这些数据,为生产、营销决策提供支持是各大车企都迫切关心的问题。大数据分析对于车企的价值也更加凸显。
对企业来说如何搭建一个可应对未来数据量几何级增长的数据分析平台?是选在在本地搭建还是云上?在数据湖上如何构建?Kyligence 团队很幸运参与到一家世界领先的车企数字化转型的实际项目中,今天特别邀请到这个项目的负责同事与大家分享 Kyligence 在数据湖上搭建大数据分析平台方面的一些思考。
1. 背景


2. 架构挑战
原始数据被大量存储:车联网可以产生大量的电气设备、驾驶过程、人机交互、地理位置数据。企业积累的原始数据集包含的数据种类丰富度(数据广度)、数据积累的时间长度(数据深度)、数据细粒度和产生频率(数据密度)决定其可能具有的价值高低。很多企业会追求积累更加广泛、深厚、密集的原始数据集。但由于起初利用数据的能力非常有限,原始数据转换成高价值数据的速度相比数据产生的速度是非常缓慢的,导致原始数据越积越多。
高价值数据由热转冷:从原始数据抽丝剥茧得到的高价值数据随着时间流逝产生的问题是,其数据价值对当前和未来的业务贡献度普遍会降低,且越来越少。因此数据被提及或使用的频率会逐渐降低,数据由热转冷,偶尔会被用到的冷数据越积越多,新的高价值数据还在不断涌入,存储开销越来越大。
首先,原始数据集所具有的业务含义会导致不同数据集需要采用的安全保护策略有显著差异;
其次,原始数据来源和其结构的多样化产生了对原始数据存储、处理方式的多样化要求。数据系统会对结构化、半结构化和非结构化数据采用不同的存储形式,而且在对这些数据进行离线或实时处理使用的技术栈也多有不同;
另外,数据系统作为一个形式上的整体,实际由数据采集、存储计算、模型构建、数据展现这些基本能力组成,更进一步还要具有数据治理、任务调度监控、资源动态分配、服务组件运行状态监控和告警等保障平台运营的能力。
因此数据系统在提供众多复杂能力的同时,为了其每一项服务或功能能够应对来自不同场景、不同角色用户对其接入安全性、数据安全性的考验,平台需要在所有层面实行安全机制,有严格的身份验证机制,能够对用户行为进行追溯审计,对数据的访问范围进行安全管控。
3. 解决方案

云上数据湖在IaaS方面的优势:
近乎无限的数据存储能力和强大的容灾能力:虽然本地部署集群利用HDFS能够做到近乎无限的且较为可靠的数据存储,但云存储在可靠和无限存储的同时能够提供强大的同城、异地容灾能力
较低的存储成本:对数据进行冷热度划分,将冷数据置于归档存储中,而高度结构化且经常访问的数据存放在高性能对象存储中
计算与存储分离:通过避免计算和存储资源高耦合部署的方式来避免一旦扩展存储就必须扩展计算资源,造成资源的浪费
按需使用资源:通过实时监控数据平台对底层存储和计算资源的需求情况,为其动态申请或释放存储和计算资源,降低成本,提高IT基础设施投资回报率
云上数据湖在PaaS和SaaS方面的优势:
托管的大数据基础服务能力:例如,通过使用托管的(Managed Bigdata Platform Service)Hadoop、Spark、Hive、Flink、HBase、Kafka等开源生态存储和计算服务,能够使云数据湖快速并持续稳定地支持离线批处理、在线流处理、机器学习等场景,具备构建数据仓库的能力。
丰富的数据应用能力:例如,分别一键部署Marketplace中的Kyligence Cloud和Tableau Server服务,通过二者的能力结合使企业快速在数据湖之上获得数据仓库多维分析及数据可视化展现能力。
云上数据湖利用云平台管理套件中的监控工具、网络管理、安全管理等服务的优势:
资源快速安装和变更能力:能够对基础设施、应用程序进行代码化,对平台快速创建或编辑,使IT基础设施能够快速响应业务实际需求
完善的资源访问策略及权限精细化控制能力:能够对IaaS、PaaS、SaaS资源访问策略和资源间共享策略进行精细化权限控制
创建或修改虚拟网络及管理网络安全策略的能力:通过配置子网、路由表、安全组及其规则、VPN等来实现安全且灵活的网络策略
监控资源和服务情况:通过在云监控模块中配置策略来对运行中的资源和服务异常情况进行记录或告警
4. 最佳实践

4.2.1 数据集成
关系型数据库的镜像库:包括带时间戳、有主键不带时间戳、无主键不带时间戳的数据。
在关系数据库对接过程中,会根据数据库类型、数据源质量、数据实时性要求、数据总量和变化情况等要素来形成专项的技术方案。一些特殊场景需要客户购买额外的专项定制服务或者直接采购商业化工具。此外,对于AWS RDS的MySQL实例,Maxwell's daemon这样的同步工具也很适用。
源系统导出的文件形式的离线数据:比如预先定义交换协议的文件(包含数据内容和描述信息)、Parquet格式的文件、系统生成的CSV格式文件等。
Toolkit在这里会创建一个Spark运行环境,根据预先定义的规则校验数据。校验通过后将数据内容转换成Parquet格式文件,生成的元数据的可以转换成Hive元数据并自动注册。
源系统通过消息队列提供的实时数据:包括Kafka、Kinesis数据源等。
对外部系统提供的Kafka数据集成方法是,将消费者程序注册运行在AWS ECS中,消费程序解析后的数据立即写入Kinesis,通过Kinesis Firehose把数据给到S3存储归档。此时EMR中运行的Spark Streaming或者Flink程序可以直接读取Kinesis Stream中的数据进行流处理。
这样设计的好处在于,当外部系统提供的某一类型数据的源头是多个Kafka集群时,由ECS中的consumer程序作为缓冲统一收集数据,会减少后端侧重业务逻辑处理的实时程序实现和运维的复杂度。
API数据源:通过AWS Lambda实现对API的调用,将获取到的数据按照规则组装并形成Parquet格式文件写入S3中存储。
使用AWS S3将数据分层存储,是为了更好的组织、管理我们的数据资产,让我们的数据体系更有序,使得数据有清晰的结构、减少重复的开发、提供统一的数据口径,复杂的问题简单化(拆解任务,每一层处理特定的问题):
原始数据集(Raw Data):所有对象数据,包括视频、音频等二进制数据
有业务价值的数据(Golden Warehouse Data):离线或实时计算结果集
直接面向分析的数据(OLAP Cube Data):Kyligence Enterprise维度建模结果集
针对部分业务价值高、或者重要度高的数据采用了版本控制进行保护。

使用AWS S3 Glacier,存储价值密度低和Golden Data中的冷数据,相当一部分Raw Data和历史久远的Golden Warehouse Data中的明细数据通过数据生命周期管理机制会被识别成冷数据,将冷数据归档可以显著降低数据存储的成本。
使用AWS RDS,存储应用程序的元数据(metadata)
批量数据处理
使用Kettle作为ETL工具,使用Hive SQL,以Hive Job的形式提交到EMR中进行计算
直接向EMR集群提交Spark Job。其中对于Spark SQL类型的任务,通过定制Toolkit支持申请一次资源执行一套脚本
流式数据处理
可以将Spark Streaming或Flink作为流处理的实现框架,建议所有外部流统一进入Kinesis,流处理程序会直接消费Kinesis Stream中的数据
保障网络的安全
保障云资源的安全
保障PaaS服务的安全(例如保障EMR中众多应用)
保障有Web服务的应用的安全
保障数据的安全
数据在集成过程中的安全
数据存储后日常运维过程中的安全
发现数据和探索数据时的安全
数据在开发和建模过程的安全
数据被下游系统或业务用户使用时的安全
熟悉客户现有的信息安全尤其是数据安全相关规定和流程
熟悉客户现有的IT流程系统中有关数据安全相关的功能

数据集成、数据治理、权限管理、数据开发评审是数据湖良好运营的基础
平台外部人员仅可以通过外部程序、工具以及特定的通道访问数据湖的功能及数据
平台外部程序或者工具通过双重验证的方式、经加密协议的方式、跳板的方式访问数据湖平台的功能数据
数据开发团队作为平台外部人员能够将数据湖作为数据基础设施使用,可以进行数据处理、建模,但开发方式及过程管理必须遵循数据湖规定和标准
平台外部产生的程序在平台中安装部署需要遵循DevOps流程
在基于AWS构建云数据湖过程中,我们在VPC、Subnet总体框架下,按照角色划分时得到的实体关系,配置Security Group、ACL规则控制网络策略,并使用IAM管理对云资源的访问。
使用AD进行用户和角色管理。打通外部AD和内部AD,按照角色划分得到的实体关系,在内部AD中划分角色和组,作为管理应用权限和数据权限的基础。
启用安全模式机制管理PaaS服务的安全,例如启用EMR的Kerberos模式
使用Ranger等三方工具,通过Ranger来进行Hive、S3访问时的数据权限控制
采用资源编排工具Terraform,将基础设施所有的操作和配置脚本化,使得复杂的云基础设施部署简单化
良好的平台运营监控,通过AWS提供的监控组件、客户购买的第三方工具以及任务调度工具,我们能够实现对以下资源的监控和告警:
基础资源的运营监控
数据应用的运营监控
日常数据处理程序的运营监控
协助客户将云上数据湖运营融入日常IT流程并符合相关规范,包括敏捷开发和DevOps自动化流程
项目价值
关于作者



点击“阅读原文” 了解车企如何利用数字变现




