次の方法で共有


エアフローから 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
  • スノーフレーク

次のエアフロー メタデータが一緒にキャプチャされます。

  • エアフロー ワークスペース
  • エアフロー DAG
  • エアフロー タスク

イベント ベースの方法で DAG が正常に実行されると、系列が Microsoft Purview に収集されます。

既知の制限

  • 列レベルの系列は現在サポートされていません。 データ資産のスキーマがキャプチャされます。
  • タスクでデータベース ビューが参照されている場合、現在はテーブル資産としてキャプチャされます。
  • すべてのメタデータが Microsoft Purview ルート コレクションに取り込まれます。 データ マップに既に存在する資産は、構成されたコレクションに保持されます。

Microsoft Purview にエアフロー系列を取り込む方法

前提条件として、実行中のエアフロー インスタンスが必要です。

エアフローから Microsoft Purview への系列を取得するには、次の作業を行う必要があります。

  1. Azure Event Hubs を設定する
  2. Microsoft Purview にメッセージを発行するように Event Hubs を構成する
  3. OpenLineage を使用してエアフローを構成する
  4. エアフロー ジョブを実行し、アセット/系列を表示する

Azure Event Hubs を設定する

Azure Event Hubs を、エアフローの OpenLineage によって追跡されるメタデータと系列のレシーバーとして設定します。

  1. Azure Event Hubs 名前空間を作成します

  2. イベント ハブを作成します。 イベント ハブに "microsoft_internal_openlineage" という名前を付けます。

    Azure Event Hubs で新しいイベント ハブを作成するスクリーンショット

  3. "microsoft_internal_openlineage" イベント ハブ - アクセス制御 (IAM) ->>ロールの割り当ての追加に移動し、Microsoft Purview アカウントのマネージド ID に "Azure Event Hubs Data Receiver" ロールを割り当てます。 詳細な手順については、「 Azure portal を使用して Azure ロールを割り当てる」を参照してください。

Microsoft Purview にメッセージを発行するように Event Hubs を構成する

Microsoft Purview では、独自の Event Hubs との間でのイベントの使用とプッシュがサポートされています。 このドキュメントに従って、Microsoft Purview の Event Hubs を構成します。 Atlas Kafka トピック メッセージを送受信するように Microsoft Purview で Event Hubs を構成します。

まとめると、以下のようになります。

  • Microsoft Purview アカウントの> [マネージド リソース] タブに移動し、マネージド Event Hubs 名前空間を無効にします。

  • [Kafka 構成] タブ ->+ [構成の追加] ->Hook 構成に移動し、名前を入力して、前の手順で作成した Event Hubs 名前空間と Event Hubs を選択します。

    Microsoft Purview にメッセージを発行するように Event Hubs を構成するスクリーンショット

OpenLineage を使用してエアフローを構成する

インストール:

最新の 'openlineage-airflow' ライブラリをダウンロードしてインストールするには、実行中のエアフロー インスタンスの 'requirements.txt' ファイルを次のように更新します。

openlineage-airflow

注:

エアフローバージョンとオープンラインエアフローバージョンは一致する必要があります。 たとえば、エアフロー 2.7.1 を使用する場合は、openlineage-airflow バージョン 1.1.0 または 1.2.0 を使用できます。 この Web サイトでは、一致するバージョンを表示できます。

構成:

次に、OpenLineage がイベントを送信するターゲットとして Azure Event Hubs インスタンスを構成します。

  1. エアフロー ルート パスの下に '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 つのプレース ホルダーを値に置き換えます。

    • Event Hubs 名前空間から を {EVENTHUB_SERVER} 取得する ->Host 名:

      Event Hubs 名前空間からホスト名を取得するのスクリーンショット

    • Event Hubs 名前空間から を{PASSWORD}取得する ->共有アクセス ポリシー ->接続文字列 - 主キーまたは接続文字列 - セカンダリ キー:

      Get イベント ハブ接続文字列キーのスクリーンショット

  2. エアフロー サーバーを再起動します。

エアフロー ジョブを実行し、アセット/系列を表示する

エアフロー ジョブを実行し、Microsoft Purview ガバナンス ポータルに移動して、資産を参照/検索/表示できるようになりました。 資産は、DAG の実行が成功した直後に表示されます。

エアフロー アセットを参照する:

ソースの種類別にデータ カタログを参照するのスクリーンショット

詳細を表示するフロー ソースの参照のスクリーンショット

系列を使用して、エアフロー タスクアセットの詳細を表示します。

エアフロー タスクアセットのエアフロー系列の詳細を表示するスクリーンショット

トラブルシューティングのヒント

エアフロー ジョブを実行しても、対応する資産/系列が Microsoft Purview に表示されない場合:

  • お使いのエアフローのユース ケースが Microsoft Purview でサポートされているかどうかを確認します。 サポートされている機能のセクションを参照してください。
  • Event Hubs インスタンスに移動して、受信要求とメッセージがある場合にチェックします。 ない場合は、エアフローで OpenLineage 構成をダブルチェックします。

次の手順