Databricks 的数据工程基础

Databricks 概念

Kevin Barlow

Data Practitioner

奖章架构(Medallion)

奖章架构图

Databricks 概念

读取数据

Spark 是高度灵活的框架,可读取多种数据源/类型。

常见数据源与类型:

  • Delta 表
  • 文件格式(CSV、JSON、Parquet、XML)
  • 数据库(MySQL、Postgres、EDW)
  • 流式数据
  • 图像/视频

数据源——文件格式

数据源——数据库

数据源——新格式

Databricks 概念

读取数据

Spark 是高度灵活的框架,可读取多种数据源/类型。

常见数据源与类型:

  • Delta 表
  • 文件格式(CSV、JSON、Parquet、XML)
  • 数据库(MySQL、Postgres、EDW)
  • 流式数据
  • 图像/视频
#Delta table
spark.read.table()
#CSV files
spark.read.format('csv').load('*.csv')
#Postgres table
spark.read.format("jdbc")
  .option("driver", driver)
  .option("url", url)
  .option("dbtable", table)
  .option("user", user)
  .option("password", password)
  .load()
Databricks 概念

Delta 表结构

Delta 表为开放文件格式提供类表特性。

  • 读取时像表一样
  • 可访问底层文件(Parquet 和 JSON)

Delta 结构

Databricks 概念

解释 Delta Lake 结构

菜谱卡片——食物图片

菜谱卡片——食材与步骤

Databricks 概念

DataFrame

DataFrame 是二维的数据表示。

  • 外观与表类似
  • 许多数据工具中的通用概念
    • Spark(默认)、pandas、dplyr、SQL 查询
  • 多数数据流程的基础构件
id customerName bookTitle
1 John Data Guide to Spark
2 Sally Bricks SQL for Data Engineering
3 Adam Delta Keeping Data Clean
df = (spark.read
  .format("csv")
  .option("header", "true")
  .option("inferSchema", "true")
  .load("/data.csv"))
Databricks 概念

写入数据

Databricks 中的表类型

  1. 托管表
    • 默认类型
    • 由 Unity Catalog 存储
    • 由 Databricks 托管
  2. 外部表
    • 存储在其他位置
    • 需要设置 LOCATION
    • 由客户管理
df.write.saveAsTable(table_name)

CREATE TABLE table_name 
USING delta 
AS ...
df.write
  .location('').saveAsTable(table_name)

CREATE TABLE table_name 
USING delta 
LOCATION "<path>" 
AS ...
Databricks 概念

Vamos praticar!

Databricks 概念

Preparing Video For Download...