Talkingdata--T112019-数据智能技术峰会-为数据赋能-敏捷高效的数据处理_29页_4mb
报告摘要
数据赋能总结
核心内容
数据赋能是通过高效的数据处理与查询技术,提升数据的使用价值和业务洞察力。TalkingData 在此过程中面临多个挑战,并通过构建元数据系统、数据变换工具、索引服务和查询引擎等解决方案,实现了数据处理的敏捷性和高效性。
主要观点
- 数据处理流程:数据处理通常包括提取(ETL)、转换(Data Wrangling)和加载(Load)三个阶段。随着技术发展,ETL 转向 ELT,利用存储的计算能力进行数据变换。
- 元数据的重要性:元数据是定义数据的数据,是实现系统复用和数据边界的关键。通过元数据驱动,可以统一数据源、目的地、数据结构和流程管理。
- 数据变换的复杂性:数据处理是机器学习的基础,但其技术并不深奥,却最耗费人力,尤其是维护工作。TalkingData 通过语义抽象和编译器实现统一的数据处理逻辑。
- 索引服务的作用:索引是数据查找和定位的关键,支持多种索引类型(如 B+树、跳表、倒排索引),并可进行集合运算(Intersect, Union, Except)。索引服务还支持生成、存储、查询和维护。
- 查询引擎的优化:查询引擎通过统一的 SQL 接口,解耦物理存储与业务逻辑,支持异构数据源的查询。通过逻辑计划优化和物理计划转化,提升查询性能。
关键信息
数据处理流程
- ETL:从多种数据源提取数据,进行清理、聚合、派生后加载到特定存储。
- ELT:利用存储的计算能力进行数据变换,简化数据处理流程。
元数据系统
- 元数据定义:元数据是数据的数据,用于描述数据源、数据集、模式、数据处理过程等。
- 元数据规范:包括数据源(Data Source)、数据集(Data Set)、模式(Schema)、数据处理过程(Recipe)等。
- 实现方式:使用 JSON 格式定义元数据,存储在 MySQL、SQLite、Derby 等数据库中,支持通过 Elasticsearch 进行检索。
数据变换解决方案
- 语义抽象:使用 BPMN、DAG、Sequence 等方式描述数据处理逻辑。
- 编译器:支持逻辑计划(DAG)、配置文件、算子库等多种语言实现,具备通用特性(如日志、审计、计量、安全)。
- 算子定义:包括条件(Condition)、算子(Operator)、参数(Parameter)、返回值(ReturnAs)等。
索引服务
- 索引类型:支持 B+树、跳表、倒排索引等。
- 索引功能:可以用于精准排重统计、集合运算等。
- 实现方式:使用 Bitmap 技术,支持按时间粒度分层的多叉树结构,实现二级索引。
- 维护方式:包括合并、删除、导出等操作,采用金字塔模型进行管理。
- 时序索引:以时间作为 Offset,压缩存储事件序列,支持有序漏斗分析。
查询引擎
- 解决的问题:ETL->ELT、异构数据查询、不同 DSL 支持、查询优化。
- 设计思路:统一 SQL 接口,通过逻辑计划优化和物理计划转化实现查询。
- 实现方式:基于 Apache Calcite,支持 Druid、CarbonData、Kudu 等数据源的 Adapter。
- 查询实例:展示如何通过 SQL 查询结合多个数据源,实现复杂的数据分析。
增强与优化
- 性能优化:通过缓存 SQL 和 DSL 提升查询性能,避免性能降低 10%-30% 的问题。
- 避免优化陷阱:支持绕过优化和翻译,提升灵活性和效率。
总结
TalkingData 通过构建元数据系统、数据变换工具、索引服务和查询引擎,实现了数据处理的敏捷性和高效性。这些系统不仅解决了数据处理中的沟通成本高、技术栈纷杂、缺乏统一标准等问题,还提升了数据查询和分析的能力,为业务决策提供了强有力的数据支持。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载