AI智能总结
Delta Lake在BI+AI产品中的实践 演讲人:李迪砺—观远数据—研发主管 总结和展望 观远数据分析产品简介 Delta Lake的应用实践 观远数据分析产品简介 公司介绍 成立于2016年,总部位于杭州 •愿景:让业务用起来让决策更智能 •客户:联合利华、LVMH、招商银行、安踏、华润集团、扬子江药业、元气森林、小红书、蜜雪冰城等500+行业领先客户,分布在零售、消费、金融、高科技、制造、互联网等行业。 数据分析产品简介 •数据接入•自助取数•智能ETL•可视化分析•数据大屏•数据门户•复杂报表•移动轻应用•表单填报•增强分析•数据解释•数据应用 客户案例 某头部银行: •4万+月活跃用户•查询性能9分位保持在3~5秒•单日50万+spark任务•1万8千核的超大集群 Delta Lake的应用实践 Delta Lake的应用实践 •数据湖架构介绍•Delta Lake的重要特性,以及如何应用•性能优化 数据湖架构 数据分析平台架构 Delta Lake的重要特性 •ACID•全量/增量更新•Schema管理•多引擎支持(Spark,机器学习,Java等)•数据版本支持•分区•存算分离,支持多种存储方案(HDFS,S3,NAS等)•流/批一体 Delta Lake表结构 •_delta_log元数据目录•json:单次commit日志•checkpoint.parquet:合并的commit日志•分区/数据文件•层次组织 ACID •原子性•Delta log控制提交原子性 •一致性•乐观并发控制•3阶段机制(读取–写入–验证和提交) •隔离级别•默认write serializable •持久性•底层存储服务保证(HDFS,S3,NAS等) 并发控制 •业务上如何减少并发错误的影响 全量/增量更新 •全量覆盖(overwrite)•全量覆盖,初次加载或者重建表 •增量更新(merge)•基于时间或者其他属性的增量更新 •追加新数据(append)•已有数据不会发生变化 数据接入方式 •JDBC方式 •对接方便,较为通用 Hive表的优化 •客户案例 •Jdbc方式将Hive表转化为Delta Lake比较慢,如何优化?•Hive表如何和Delta Lake表进行ETL? •高效加载和处理方式 •通过spark直接加载hive表•需要处理hive表schema变更(refresh table) Schema管理 •schema增强(schema enforcement)•默认情况下,不允许追加schema不匹配的数据 •schema进化(schema evolution)•mergeSchema=true •什么时候使用schema evolution•表结构发生变更,不想重写整个表 多引擎支持 •Spark–核心处理引擎 •大规模集群•高效任务处理•活跃的社区•良好的适配性•秒级响应•高并发 多引擎支持 •delta-rs–算法实验 •通过Rust来实现与Delta交互的API,上层实现Python的API•读取性能对比:小数据集上,性能是Spark的30多倍;千万行级别数据,delta-rs仍然优势明显•缺点:对写入支持不完善;存在bug •Standalone Reader–Java库 •读取快照数据,和schema信息•缺点:欠缺维护,存在bug;不支持sql查询,写入 时间旅行 •算法实验中的场景 •如何使用历史数据进行重复实验? 分区 •算法实验中的场景 •如何通过分区提升算法实验的效率 •分区字段选择 •一般是date类型;需要检查值的分布 •对于大表使用,每个分区数据至少1GB 流式写入 性能优化 •小文件合并(compaction)•大量小文件->少量大文件 •定时清理(vacuum)•结合时间旅行的版本使用情况 •仅读取需要的列 总结和展望 总结和展望 •新的特性(Z-Order、DML增强等)•更加云原生,融合多引擎(Databricks,Clickhouse等)•更加开放,提供SQL查询服务•基于Catalog的数据资产管理•持续回馈开源社区•多位Spark Contributor,Delta LakeContributor、delta-rsContributor 感谢您的观看 演讲人:李迪砺—观远数据—研发主管