エアフローから Microsoft Purview への系列を取得する方法 (プレビュー)
エアフロー は、データ パイプラインの作成と管理に使用できるオープンソースのワークフロー自動化およびスケジューリング プラットフォームです。 Microsoft Purview では、データ系列の収集と分析のためのオープン フレームワークである OpenLineage と統合することで、エアフロー系列の収集がサポートされています。 エアフローが OpenLineage でどのように動作するかについては、 こちらをご覧ください。
エアフローで OpenLineage を有効にすると、DAG の実行時にジョブとデータセットに関するメタデータと系列が自動的に追跡されます。 情報は、構成したAzure Event Hubsに送信されます。 Microsoft Purview はイベントをサブスクライブし、それらを解析してデータ マップに取り込みます。
重要
この機能は現在プレビューの段階です。 Microsoft Azure プレビューの補足使用条件には、ベータ版、プレビュー版、または一般公開されていない Azure 機能に適用される追加の法的条件が含まれています。
サポートされているエアフロー バージョンは、1.10 以降と 2.0 から 2.7 です。
Microsoft Purview では、次の種類のデータ ソースがエアフローで使用される場合に、メタデータと系列の収集がサポートされます。
- Amazon RDS for PostgreSQL
- Azure Database for PostgreSQL
- Google BigQuery
- PostgreSQL
- Snowflake
次のエアフロー メタデータが一緒にキャプチャされます。
- エアフロー ワークスペース
- エアフロー DAG
- エアフロー タスク
イベント ベースの方法で DAG が正常に実行されると、系列が Microsoft Purview に収集されます。
- 列レベルの系列は現在サポートされていません。 データ資産のスキーマがキャプチャされます。
- タスクでデータベース ビューが参照されている場合、現在はテーブル資産としてキャプチャされます。
- すべてのメタデータが Microsoft Purview ルート コレクションに取り込まれます。 データ マップに既に存在する資産は、構成されたコレクションに保持されます。
前提条件として、実行中のエアフロー インスタンスが必要です。
エアフローから Microsoft Purview への系列を取得するには、次の作業を行う必要があります。
- Azure Event Hubsを設定する
- Microsoft Purview にメッセージを発行するように Event Hubs を構成する
- OpenLineage を使用してエアフローを構成する
- エアフロー ジョブを実行し、アセット/系列を表示する
Azure Event Hubsを、エアフローの OpenLineage によって追跡されるメタデータと系列のレシーバーとして設定します。
イベント ハブを作成します。 イベント ハブに "microsoft_internal_openlineage" という名前を付けます。
"microsoft_internal_openlineage" イベント ハブ ->Access control (IAM) ->ロールの割り当てを追加し、Microsoft Purview アカウントのマネージド ID に "Azure Event Hubs Data Receiver" ロールを割り当てます。 詳細な手順については、「Azure portalを使用して Azure ロールを割り当てる」を参照してください。
Microsoft Purview では、独自の Event Hubs との間でのイベントの使用とプッシュがサポートされています。 このドキュメントに従って、Microsoft Purview の Event Hubs を構成します。 Atlas Kafka トピック メッセージを送受信するように Microsoft Purview で Event Hubs を構成します。
まとめると、以下のようになります。
Microsoft Purview アカウントの [マネージド リソース] タブ> 移動し、マネージド Event Hubs 名前空間を無効にします。
[Kafka 構成] タブ ->+ [構成の追加] ->Hook 構成に移動し、名前を入力して、前の手順で作成した Event Hubs 名前空間と Event Hubs を選択します。
取り付け:
最新の 'openlineage-airflow' ライブラリをダウンロードしてインストールするには、実行中のエアフロー インスタンスの 'requirements.txt' ファイルを次のように更新します。
openlineage-airflow
注意
エアフローバージョンとオープンラインエアフローバージョンは一致する必要があります。 たとえば、エアフロー 2.7.1 を使用する場合は、openlineage-airflow バージョン 1.1.0 または 1.2.0 を使用できます。 この Web サイトでは、一致するバージョンを表示できます。
構成:
次に、OpenLineage がイベントを送信するターゲットとして、Azure Event Hubs インスタンスを構成します。
エアフロー ルート パスの下に 'openlineage.yml' ファイルを作成します。 ファイルの内容は次のとおりです。
transport: type: "kafka" config: bootstrap.servers: "{EVENTHUB_SERVER}:9093" security.protocol: "SASL_SSL" sasl.mechanism: "PLAIN" sasl.username: "$ConnectionString" sasl.password: "{PASSWORD}" client.id: "airflow-client" topic: "microsoft_internal_openlineage" flash: True
2 つのプレース ホルダーを値に置き換えます。
エアフロー サーバーを再起動します。
エアフロー ジョブを実行し、Microsoft Purview ガバナンス ポータルに移動して、資産を参照/検索/表示できるようになりました。 資産は、DAG の実行が成功した直後に表示されます。
エアフロー アセットを参照する:
系列を使用して、エアフロー タスクアセットの詳細を表示します。
エアフロー ジョブを実行しても、対応する資産/系列が Microsoft Purview に表示されない場合:
- お使いのエアフローのユース ケースが Microsoft Purview でサポートされているかどうかを確認します。 サポートされている機能のセクションを参照してください。
- Event Hubs インスタンスに移動して、受信要求とメッセージがある場合にチェックします。 ない場合は、エアフローで OpenLineage 構成をダブルチェックします。