พื้นฐาน Data Engineering ใน Databricks

แนวคิด Databricks

Kevin Barlow

Data Practitioner

Medallion Architecture

ไดอะแกรม Medallion Architecture

แนวคิด Databricks

การอ่านข้อมูล

Spark เป็น framework ที่ยืดหยุ่นสูง รองรับแหล่งข้อมูลและประเภทข้อมูลได้หลากหลาย

แหล่งข้อมูลและประเภทที่พบบ่อย:

  • Delta tables
  • รูปแบบไฟล์ (CSV, JSON, Parquet, XML)
  • ฐานข้อมูล (MySQL, Postgres, EDW)
  • Streaming data
  • รูปภาพ / วิดีโอ

แหล่งข้อมูล - รูปแบบไฟล์

แหล่งข้อมูล - ฐานข้อมูล

แหล่งข้อมูล - รูปแบบใหม่

แนวคิด Databricks

การอ่านข้อมูล

Spark เป็น framework ที่ยืดหยุ่นสูง รองรับแหล่งข้อมูลและประเภทข้อมูลได้หลากหลาย

แหล่งข้อมูลและประเภทที่พบบ่อย:

  • Delta tables
  • รูปแบบไฟล์ (CSV, JSON, Parquet, XML)
  • ฐานข้อมูล (MySQL, Postgres, EDW)
  • Streaming data
  • รูปภาพ / วิดีโอ
#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 table

Delta table มอบคุณสมบัติคล้ายตารางให้กับรูปแบบไฟล์แบบเปิด

  • ใช้งานได้เหมือนตารางทั่วไปเมื่ออ่านข้อมูล
  • เข้าถึงไฟล์ต้นฉบับได้ (Parquet และ JSON)

โครงสร้าง Delta

แนวคิด Databricks

อธิบายโครงสร้าง Delta Lake

การ์ดสูตรอาหาร - รูปอาหาร

การ์ดสูตรอาหาร - ส่วนผสมและขั้นตอน

แนวคิด Databricks

DataFrames

DataFrames คือการแสดงข้อมูลในรูปแบบสองมิติ

  • มีรูปลักษณ์และการใช้งานคล้ายตาราง
  • แนวคิดเดียวกันนี้ใช้ในเครื่องมือข้อมูลหลายประเภท
    • Spark (ค่าเริ่มต้น), pandas, dplyr, SQL queries
  • เป็นโครงสร้างพื้นฐานของกระบวนการข้อมูลส่วนใหญ่
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...