Azure Data Factory and Azure Databricks Best Practices - Microsoft Community Hubの翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
この記事はDatabricksのソリューションアーキテクトLeo Furlongによって執筆されました。
Azure Data Factory (ADF)、Synapse pipelines、Azure Databricksは、Azure Data Lake Storage Gen2 (ADLS Gen2)上のレイクハウス構築の堅牢な組み合わせとなります。ADFは100以上の様々なデータソースからAzureクラウドにネイティブにデータを取り込む機能を提供します。また、プロダクションでの構築、設定、デプロイ、モニタリングを容易に行える、グラフィカルなデータオーケストレーション、モニタリング機能も提供します。
Azure Databricksは、シンプルでオープンなレイクハウスですべてのデータをMicrosoft Azureを通じて利用できるDatabricksのデータ & AIサービスであり、レイクハウス上でのデータエンジニアリング、リアルタイムストリーミングアプリケーション、データサイエンスと機械学習、アドホックやBIのクエリーを含むすべての分析、AIワークロードを統合します。ユーザーは、データを整形、整理し、機械学習モデルを構築、トレーニングし、モデル推論を実行し、リアルタイムでレイクハウスにデータをストリームするために、柔軟でスケーラブルなETL/ELTパイプラインを構築するために、Azure DatabricksノートブックやDelta Live Tablesパイプラインを活用します。
ADFはAzure Databricksリンクサービスを通じて、Azure Databricksとネイティブにインテグレーションされており、企業が様々なデータソースからデータを取り込んで、レイクハウスでデータを整理するスケーラブルなデータオーケストレーションを構築するために、ノートブック、JAR、Pythonコードを実行することができます。
以下のリストでは、ADFとAzure Databricksを活用する際の5つのキーとなるプラクティスを一覧しています。
1. メタデータドリブンの取り込みパターン
ADFは、企業がメタデータから読み込むことができるダイナミックパイプライン、コピーアクティビティ、ノートブックアクティビティを作成するためのメタデータドリブンのデータ取り込み機能を作成するために活用することができ、全く新しく開発することなしに、データソースやテーブル/ディレクトリからレイクハウスに読み込みを行うADFコードを生成することができます。
2. ADLSランディングゾーン、Auto Loader、Delta Lakeへの直接のADFの取り込み
ADLSにデータを取り込むためにADFとAzure Databricksを活用し、レイクハウスでデータを整形、整理するためのAzure Databricksノートブックを実行するためのベストプラクティスが2つあります。
a. Auto Loaderによる取り込み
ADFコピーアクティビティは、CSV、JSON、Avro、Parquet、画像ファイルフォーマットを用いて様々なデータソースからデータを取り込み、ADLS Gen2のランディングゾーンにデータを配置巣します。そして、ADFはAuto Loaderを用いてAzure Databricksでパイプラインを実行するためのノートブックアクティビティを実行します。Auto Loaderは、バッチあるいはストリーミングパイプラインを用いて、ADLS Gen2のランディングゾーンを読み取る能力を提供し、以下のメリットをもたらします:
- ADLS Gen2にデータが到着すると、インクリメンタルかつ効率的に新規データファイルを処理
- ファイルディスカバリーモードを用いて取り込まれた/処理されたファイルの記録を保持
- データ変更によるスキーマ推定とスキーマ進化のサポート
b. Delta Lakeへの直接の取り込み
ADFのコピーアクティビティは、様々なデータソースからデータを取り込み、ADF Delta Lakeコネクターを用いて、ADLS Gen2のデータを自動でDelta Lakeフォーマットに変換します。そして、ADFはAzure Databricksのパイプラインを実行するノートブックアクティビティを実行します。
Delta Lakeのメリットに馴染みがないのであれば、このブログ記事をチェックしてください。
3. Azure Databricksジョブの実行
あまり知られていない機能ですが、ネイティブのADFウェブアクティビティとAzure Databricks Jobs APIを用いて、Azure DatabricksジョブとADFでのDatabricks Delta Live Tablesパイプラインの実行は非常に簡単です。Azure Databricksジョブを実行することで、クラスター再利用、パラメーター指定、リペアとリラン、Delta Live TablesパイプラインのようなAzure Databricksの最新ジョブ機能を活用することができます。
4. プール + ジョブクラスター
ADFでは、ADFパイプラインのノートブックアクティビティの実行のためのジョブクラスターを作成するためにAzure Databricksプールを活用することができます。プールによって、データエンジニアはジョブクラスターの起動時間関するレーテンシーを犠牲することなしに、Azure Databricksでall-purposeクラスターではなくジョブクラスターを活用できるようになります。Azure Databricksプールは、アイドル状態ですぐに利用できるインスタンスを維持することで、クラスターの起動時間、オートスケーリングの時間を削減します。Azure Databricksプールは、以下のメリットを提供します: 完全なワークロードの分離、価格削減、ジョブDBUレートでの秒単位の課金、ジョブ終了時の自動停止、耐障害性、迅速なジョブクラスターの生成。ADFはAzure Databricksにリンクされたサービスの設定を通じて、Azure Databricksプールを活用することができます。さらに、使用するプールは、リンクサービスのパラメーターとエクスプレッションでパラメータ化することができます。
5. ADFマネージドアイデンティティの認証
ADFは、マネージドアイデンティティ認証やパーソナルアクセストークン(PAT)を用いてAzure Databricksに対する認証を行うことができますが、マネージドアイデンティティを使用することがベストプラクティスとなります。ADFのAzure Databricksの認証に、システム管理によるマネージドアイデンティティを用いることで、よりセキュアな認証技術を提供し、データエンジニアやクラウド管理者によるパーソナルアクセストークンの管理の負荷を排除することができます。