Azure Data Factory データフロー と Databricks の違い
ADF Data FlowはADFのGUI画面でデータ加工を行う機能です。
例えば
SQL Server ↓ ADF Data Flow ↓ Filter ↓ Derived Column ↓ Join ↓ ADLS Gen2
画面上で
- Filter
- Join
- Aggregate
- Sort
- Derived Column
を設定できます。
プログラムを書かなくても開発可能です。
メリット
- ローコード開発
- GUIで実装可能
- 開発が早い
- 運用が簡単
デメリット 複雑な処理が苦手
機械学習 自然言語解析 大量データ変換 複雑なロジック
DatabricksはSparkベースの分散処理基盤です。
df = spark.read.csv()
df = df.filter(
col("status") == "ACTIVE"
)
df = df.groupBy(
"department"
).count()
メリット
大規模データ向け
数GB
↓
数TB
↓
数PB
でも処理可能
Databricksを使う理由
データ基盤では
データ取り込み ↓ データ加工 ↓ DWH格納
ADFだけの場合
ADF ↓ Filter ↓ Join ↓ DWH
小規模ならOK
Azureデータ基盤
よくある構成
Oracle
SAP
CSV
API
↓
ADF
↓
ADLS Gen2
↓
Databricks
(PySpark)
↓
Synapse DWH
↓
Power BI
Azure Data Factoryは主にデータ連携やオーケストレーションに利用し、Azure Data Lake Storage Gen2をデータ蓄積基盤として使用しました。大量データの加工処理についてはDatabricks上でPySparkを利用して実装し、加工後のデータをSynapseやSQL DWHへロードしていました。ADF Data Flowでも加工は可能ですが、複雑なロジックや大量データ処理ではDatabricksの方が柔軟性と性能に優れています。