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 はデータの2次元表現です。

  • 見た目・使い勝手はテーブルに近い
  • 多くのデータツールで同様の概念
    • 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 の基本概念

Ayo berlatih!

Databricks の基本概念

Preparing Video For Download...