T112019-数据智能技术峰会-为数据赋能-敏捷高效的数据处理29页_4mb
报告摘要
为数据赋能总结
核心内容
本文档主要探讨了如何通过数据处理和查询引擎的优化,实现数据的敏捷高效处理。重点介绍了数据处理流程、元数据系统、数据变换、索引服务以及查询引擎的设计与实现。
主要观点
- 数据处理流程:ETL(Extract, Transform, Load)与 ELT(Extract, Load, Transform)是两种不同的数据处理方式,ETL 通常在数据清洗和聚合后加载到特定存储,而 ELT 利用存储的计算能力进行数据变换。
- 数据处理工具:存在多种 ETL 工具如 PDI(Kettle)、Blend Data Integration、Oracle Data Integration、DataX 等,但缺乏统一标准,导致功能重复开发。
- 元数据系统:元数据是数据处理和查询的关键,它定义了数据的结构、来源、存储方式等,是实现系统复用和外部接口的基础。元数据驱动可以提高系统的灵活性和可维护性。
- 数据变换:数据变换是数据处理的核心,尤其在机器学习中扮演重要角色(如特征工程)。其设计应注重语义抽象和通用特性,以减少维护成本。
- 索引服务:索引是数据查找和定位的关键,支持多种数据结构如 B+树、跳表、倒排索引等。通过 Bitmap 实现的索引支持精准的排重统计和集合运算,提升查询效率。
- 查询引擎:查询引擎旨在解耦物理存储和业务逻辑,支持多种数据源和查询类型(如 SQL、select、groupby、topN、timeSeries 等)。通过逻辑计划和物理计划的转换,实现统一的查询接口。
关键信息
数据处理流程
- ETL:从多种数据源提取数据,进行清理、聚合、派生后加载到特定存储。
- ELT:利用存储的计算能力进行数据变换。
元数据系统
- 元数据定义:元数据是定义数据的数据,是实现系统复用的关键。
- 元数据规范:包括数据源、分区定义、数据集、模式、数据处理过程、算子、多维模型、实体关系模型等。
- 实现方式:采用 JSON 格式定义元数据,支持多种存储方式如 MySQL、SQLite、Derby 等,检索使用 ES,通知使用 MQ。
数据变换
- 语义抽象:通过 DAG(有向无环图)和 BPMN(业务流程模型与符号法)实现数据处理过程的语义抽象。
- 算子库:支持多种语言实现的算子库,如 Java、R、Python 等。
- 编译器:编译器负责将逻辑计划转化为物理计划,支持日志、审计、计量、安全等功能。
索引服务
- 索引类型:包括 B+树、跳表、倒排索引等,支持多种数据结构。
- Bitmap 索引:用于存储用户行为,支持精准的排重统计和集合运算。
- 二级索引:按时间粒度分层的多叉树结构,以 bitmap 实现的倒排索引。
- 维护方式:包括合并、删除、导出等操作,采用金字塔模型进行管理。
查询引擎
- 设计思路:统一的查询接口为 SQL,支持多种数据源和查询类型,通过逻辑计划和物理计划的转换实现查询优化。
- 实现方式:使用 Apache Calcite 作为核心,支持多种适配器如 Druid、CarbonData、Kudu 等。
- 查询实例:展示了一个使用 SQL 查询的示例,涉及多个数据源和复杂的查询逻辑。
总结
文档强调了元数据在数据处理和查询中的重要性,提出了通过语义抽象、编译器和索引服务等手段实现数据处理的敏捷高效。同时,通过统一的查询接口和逻辑计划优化,提高了查询的灵活性和性能。整体架构设计注重解耦和扩展性,支持多种数据源和存储方式,以适应不同的业务需求。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载