Databricks 的資料工程基礎

Databricks 概念

Kevin Barlow

Data Practitioner

獎章式架構

獎章式架構示意圖

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. 受管資料表(Managed tables)
    • 預設類型
    • 由 Unity Catalog 管理儲存
    • Databricks 代管
  2. 外部資料表(External tables)
    • 儲存在其他位置
    • 設定 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 概念

一起來練習吧!

Databricks 概念

Preparing Video For Download...