- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 视频嵌入链接 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
Lakehouse With Delta Lake Introduction
刘林宏-Databricks 软件工程师
展开查看详情
1 .
2 .How to Build A Lakehouse Platform Linhong Liu (linhong.liu at databricks.com) Software Engineer at Databricks
3 .What is Databricks? Databricks’ vision is to enable data-driven innovation to all enterprises
4 .开源项目 Over 30 million monthly downloads
5 .行业合作 医疗保健和生命科学 制造业和汽车行业 媒体和娱乐 金融服务 公共部门 零售和包装消费品 能源和公用事业 数字原生
6 .Lakehouse One platform to unify all your data, analytics, and AI workloads
7 .现今的数据系统过于复杂 Unstructured Semi- structured Structure d Data Lake
8 .现今的数据系统过于复杂 Data Machine Science Learning Unstructured Semi- structured Structure d Data Lake
9 .现今的数据系统过于复杂 Data Machine Science Learning BI Data Warehouse Unstructured Semi- structured Structure BI d Data Warehouse Data Lake BI Data Warehouse
10 .现今的数据系统过于复杂 Data Machine Science Learning BI Data Warehouse Unstructured Semi- structured Structure BI d Data Warehouse Data Lake BI Data Warehouse
11 . Pros Pros 支持 ML 场景 强大的 BI 支持 Data 完全开放数据格 数据管控能力强 Data 式和生态 Lake Cons Warehouse Cons ML 场景支持不 对BI系统的支持 足 不足 专有系统,专有 维护和数据管控 数据格式 过于复杂 → 数据 沼泽 只支持 SQL 接口
12 . Lakehouse One platform to unify all your data, analytics, and AI workloads BI & SQL Real-time Data Data Science Applications & ML Data Management & Governance Open Data Lake
13 .Delta Lake Delta Lake is the key enabler of lakehouse
14 .数据湖 OR 数据沼泽 RELIABILITY & QUALITY PERFORMANCE & LATENCY GOVERNANCE
15 .Delta Lake 如何解决数据湖的问题 RELIABILITY & QUALITY ACID transactions PERFORMANCE & Advanced indexing & caching LATENCY GOVERNANCE Table ACL
16 .Delta Lake 发展历史 ●非Spark引擎支持 ●支持Hive metastore ●开源Delta Lake ●增强并发能力 ●支持SQL DML ●ACID事务 ●增强文件压缩 ●自动生成Presto/Athena manifest ●Schema管理 ●可扩展的元数据处理 ●增强insert-only merge性能 ●表历史留存时间控制 ●Delta表转换SQL ●支持用户自定义Delta表元数据 ●版本控制 ●试验性支持Snowflake/Redshift ●支持Azure Data Lake Storage Gen2 ●批流一体 Spectrum 2019/04 (0.1) 2019/09 (0.4) 2019/12 (0.5) 2020/04 (0.6) 2020/06 (0.7) 2021/02 (0.8) ●Scala/Java APIs: DML命令 ●支持Merge中的Schema自动更新 ●支持Merge中nested column的Schema自动更新 ●Scala/Java APIs: 查询历史 ●Merge中的自动重分区 ●MERGE/UPDATE中引用nested struct columns ●Scala/Java APIs: 旧文件清理 ●增强非insert merge性能 ●Delta表constraint检查 ●Python DML APIs ●支持从任意文件系统中读取Delta表 ●支持从表的某个版本开始流式输出 ●in-place Delta表转换 ●VACUUM语句并行删除
17 .Delta Lake 1.0 Generated 多Cluster写入 Cloud解耦 Columns Spark 3.1 支持 PyPI Delta Release Standalone
18 . 问题: 按日期分区 id eventTime event_date 1 2021-05-24 2021-05-24 09:00:00.000 .. ... ... Generated Columns
19 . 问题: 按日期分区 方案?: 增加一个日期列 id eventTime eventDate 1 2021-05-24 2021-05-24 09:00:00.000 .. ... ... Generated Columns
20 . 问题: 按日期分区 方案?: 增加一个日期列 id eventTime eventDate ● 需要手动创建一列 1 2021-05-24 2021-05-24 09:00:00.000 ● 需要手动添加查询条件 .. ... ... ● 一旦忘记,很容易出错 Generated Columns
21 . 问题: 按日期分区 更好的方案: 使用 generated columns id eventTime eventDate ● 自动生成数据 1 2021-05-24 2021-05-24 09:00:00.000 ● 自动添加查询条件 .. ... ... ● 标准 SQL 语法可以支持 Generated Lakehouse Columns
22 . 问题: 按日期分区 更好的方案: 使用 generated columns id eventTime eventDate CREATE TABLE events( 1 2021-05-24 2021-05-24 id bigint, 09:00:00.000 eventTime timestamp, .. ... ... eventDate GENERATED ALWAYS AS ( Generated CAST(eventTime AS DATE) ) Columns ) USING delta PARTITIONED BY (eventDate)
23 . Standalone Delta Standalone
24 . pip install delta-spark Installs the Delta Lake that works with Apache Spark pip install deltalake >>> from deltalake import DeltaTable PyPI >>> dt = DeltaTable("$/delta/data/") >>> dt.version() Release 3 >>> dt.files() ['part-00000-...-ff32ddab96d2-c000.snappy.parquet', 'part-00000-...-d46c948aa415-c000.snappy.parquet', 'part-00001-...-7eb62007a15c-c000.snappy.parquet']
25 .Unity Catalog Simplified governance for data and AI
26 . 基于数据湖上的数据管控难以实施 Structured Semi-structured Cloud 1 Unstructured Streaming
27 . 基于数据湖上的数据管控难以实施 Structured Cloud 2 Semi-structured Cloud 1 Unstructured Cloud 3 Streaming
28 .问题变得越来越“大” 公司内部和公司之间需要一种方式可以共享及管控各种各样的数据产品 Files Dashboards Models Tables
29 .Databricks Unity Catalog 统一的管理接口 基于SQL标准的统一的 与现有Catalog集成 安全模型