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の方が柔軟性と性能に優れています。

IT

Posted by arkgame