Amazon DataZone のデータリネージュのサポート - Amazon DataZone

Amazon DataZone のデータリネージュのサポート

Amazon DataZone のデータリネージュは、OpenLineage 互換機能であり、OpenLineage 対応システムまたは API を介してリネージュイベントをキャプチャして視覚化し、データオリジンを追跡し、変化を追跡して、組織間のデータ消費を表示できます。これにより、データアセットを包括的に表示して、アセットのオリジンとその接続チェーンを確認できます。リネージュデータには、カタログ化されたアセットと、それらのアセットのサブスクライバーに関する情報などの、Amazon DataZone のビジネスデータカタログ内のアクティビティに関する情報と、API を使用してプログラムでキャプチャされたビジネスデータカタログ外で発生するアクティビティに関する情報が含まれます。

Amazon DataZone に追加されると、AWS Glue および Amazon Redshift データベースから自動的にキャプチャされるようにリネージュを設定できます。さらに、AWS Glue (v5.0 以降) コンソールまたはノートブックで実行される Spark ETL ジョブは、Amazon DataZone ドメインにリネージュイベントを送信するように設定できます。

Amazon DataZone では、ドメイン管理者はデータレイクとデータウェアハウスの組み込みブループリントをセットアップしながらリネージュを設定できます。これにより、これらのリソースから作成されたすべてのデータソース実行がリネージュの自動キャプチャで有効になります。

Amazon DataZone の OpenLineage 互換 API を使用すると、ドメイン管理者とデータプロデューサーは、Amazon S3、AWS Glue、その他のサービスの変化など、Amazon DataZone で利用できる以上のリネージュイベントをキャプチャして保存できます。これにより、データコンシューマーに包括的なビューが提供され、アセットのオリジンの信頼性を高めることができます。一方、データプロデューサーは、アセットの使用状況を理解することで、アセットの変化の影響を評価できます。さらに、Amazon DataZone バージョンは各イベントを使用してリネージュを実行し、ユーザーが任意の時点でリネージュを視覚化したり、アセットまたはジョブの履歴全体の変化を比較したりできます。この履歴のリネージュにより、データアセットの整合性のトラブルシューティング、監査、確認に不可欠な、データの進化方法をより深く理解できます。

データリネージュを使用すると、Amazon DataZone で以下を実行できます。

  • データの出所を理解する: データの出所を理解することで、データオリジン、依存関係、変化を明確に理解し、データへの信頼性を向上させることができます。この透明性は、自信を持ってデータに基づくの意思決定を行うのに役立ちます。

  • データパイプラインへの変更の影響を理解する: データパイプラインに変更を加えると、リネージュを使用して、影響を受けるすべてのダウンストリームコンシューマーを特定できます。これにより、重要なデータフローを中断することなく変更が行われます。

  • データ品質問題の根本原因を特定する: ダウンストリームレポートでデータ品質の問題が検出された場合、リネージュの中でも特に列レベルのリネージュを使用してデータをトレースし (列レベルで)、問題を特定してソースに戻すことができます。これにより、データエンジニアは問題を特定して修正できます。

  • データガバナンスとコンプライアンスの向上: 列レベルのリネージュを使用して、データガバナンスとプライバシー規制へのコンプライアンスを示すことができます。例えば、列レベルのリネージュを使用して、機密データ (PII など) の保存場所とダウンストリームアクティビティでの処理方法を表示できます。

Amazon DataZone のリネージュノードのタイプ

Amazon DataZone では、データリネージュ情報はテーブルとビューを表すノードに表示されます。例えば、データポータルの左上で選択されたプロジェクトなど、プロジェクトのコンテキストに応じて、プロデューサーはインベントリアセットと公開アセットの両方を表示できますが、コンシューマーは公開アセットのみを表示できます。アセットの詳細ページでリネージュタブを初めて開くと、カタログ化されたデータセットノードがリネージュグラフのリネージュノードをアップストリームまたはダウンストリームに移動する出発点になります。

Amazon DataZone でサポートされているデータリネージュノードのタイプを次に示します。

  • データセットノード - このノードタイプには、特定のデータアセットに関するデータリネージュ情報が含まれます。

    • Amazon DataZone カタログで公開された AWS Glue または Amazon Redshift アセットに関する情報を含むデータセットノードは、自動的に生成され、ノード内の対応する AWS Glue または Amazon Redshift アイコンが含まれます。

    • Amazon DataZone カタログで公開されていないアセットに関する情報を含むデータセットノードは、ドメイン管理者 (プロデューサー) によって手動で作成され、ノード内のデフォルトのカスタムアセットアイコンで表されます。

  • ジョブ (実行) ノード - このノードタイプには、特定のジョブの最新実行と実行の詳細など、ジョブの詳細が表示されます。このノードはジョブの複数の実行もキャプチャし、ノードの詳細の [履歴] タブで表示できます。ノードアイコンを選択すると、ノードの詳細を表示できます。

リネージュノードの主要な属性

リネージュノードの sourceIdentifier 属性は、データセットで発生するイベントを表します。リネージュノードの sourceIdentifier は、データセットの識別子 (テーブル/ビューなど) です。リネージュノードでの一意性の適用に使用されます。例えば、同じ sourceIdentifier を持つ 2 つのリネージュノードを使用することはできません。以下は、さまざまなタイプのノードの sourceIdentifier 値の例です。

  • それぞれのデータセットタイプを持つデータセットノードの場合:

    • アセット: amazon.datazone.asset/<assetId>

    • リスト (公開されたアセット): amazon.datazone.listing/<listingId>

    • AWS Glue テーブル: arn:aws:glue:<region>:<account-id>:table/<database>/<table-name>

    • Amazon Redshift table/view: arn:aws:<redshift/redshift-serverless>:<region>:<account-id>:<table-type(table/view etc)>/<clusterIdentifier/workgroupName>/<database>/<schema>/<table-name>

    • オープンリネージュ実行イベントを使用してインポートされた他のタイプのデータセットノードでは、入力/出力データセットの <namespace>/<name> がノードの sourceIdentifier として使用されます。

  • ジョブの場合:

    • オープンリネージュ実行イベントを使用してインポートされたジョブノードの場合、<jobs_namespace>.<job_name> が sourceIdentifier として使用されます。

  • ジョブ実行の場合:

    • オープンリネージュ実行イベントを使用してインポートされたジョブ実行ノードの場合、<jobs_namespace>.<job_name>/<run_id> が sourceIdentifier として使用されます。

createAsset API を使用して作成されたアセットの場合、アセットをアップストリームリソースにマッピングできるようにするには、createAssetRevision API を使用して sourceIdentifier を更新する必要があります。

データリネージュの視覚化

Amazon DataZone のアセット詳細ページでは、データリネージュをグラフィカルに表現できるため、アップストリームまたはダウンストリームのデータ関係を簡単に視覚化できます。アセットの詳細ページには、グラフを操作するための以下の機能があります。

  • 列レベルのリネージュ: データセットノードで使用可能な場合は、列レベルのリネージュを拡張します。これにより、ソース列の情報が利用可能な場合、アップストリームまたはダウンストリームのデータセットノードとの関係が自動的に表示されます。

  • 列検索: 列数のデフォルト表示が 10 の場合。列が 10 列を超える場合、ページ分割がアクティブになり、残りの列に移動できます。特定の列をすばやく表示するには、検索した列のみを一覧表示するデータセットノードで検索できます。

  • データセットノードのみを表示: データセットリネージュノードのみを表示し、ジョブノードを除外するように切り替える場合は、グラフビューワーの左上にあるオープンビューコントロールアイコンを選択し、[データセットノードのみを表示] オプションに切り替えることができます。これにより、すべてのジョブノードがグラフから削除され、データセットノードのみを表示できます。データセットノードのみの表示がオンになっている場合、グラフをアップストリームまたはダウンストリームに拡張することはできません。

  • 詳細ペイン: 各リネージュノードの詳細がキャプチャされ、選択時に表示されます。

    • データセットノードには詳細ペインがあり、特定のタイムスタンプでそのノードについてキャプチャされたすべての詳細が表示されます。すべてのデータセットノードには、リネージュ情報、スキーマ、履歴タブの 3 つのタブがあります。履歴タブには、そのノードでキャプチャされたリネージュイベントのさまざまなバージョンが一覧表示されます。API からキャプチャされたすべての詳細は、メタデータフォームまたは JSON ビューワーを使用して表示されます。

    • ジョブノードには、ジョブ情報、履歴などのタブでジョブの詳細を表示する詳細ペインがあります。詳細ペインは、ジョブ実行の一環としてキャプチャされたクエリまたは式もキャプチャします。履歴タブには、そのジョブでキャプチャされたジョブ実行イベントのさまざまなバージョンが一覧表示されます。API からキャプチャされたすべての詳細は、メタデータフォームまたは JSON ビューワーを使用して表示されます。

  • バージョンタブ: Amazon DataZone データリネージュのすべてのリネージュノードにバージョニングがあります。すべてのデータセットノードまたはジョブノードについて、バージョンが履歴としてキャプチャされるため、異なるバージョン間を移動して、時間とともに何が変更されたかを特定できます。各バージョンでは、リネージュページに新しいタブが開き、比較やコントラストに役立ちます。

Amazon DataZone のデータリネージュ認証

書き込みアクセス許可 - リネージュデータを Amazon DataZone に公開するには、PostLineageEvent API の ALLOW アクションを含むアクセス許可ポリシーを持つ IAM ロールが必要です。この IAM 認証は API ゲートウェイレイヤーで行われます。

読み取りアクセス許可 - GetLineageNodeListLineageNodeHistory の 2 つのオペレーションがあります。これらは AmazonDataZoneDomainExecutionRolePolicy マネージドポリシーに含まれているため、Amazon DataZone ドメインのすべてのユーザーがこれらを呼び出してデータリネージュグラフをトラバースできます。

Amazon DataZone でのデータリネージュのサンプルエクスペリエンス

データリネージュのサンプルエクスペリエンスを使用して、データリネージュグラフのアップストリームまたはダウンストリームのトラバース、バージョンと列レベルリネージュの探索など、Amazon DataZone のデータリネージュを参照して理解できます。

Amazon DataZone でデータリネージュのサンプルエクスペリエンスを試すには、以下の手順を実行します。

  1. Amazon DataZone データポータル URL に移動し、シングルサインオン (SSO) または AWS 認証情報を使用してサインインします。Amazon DataZone 管理者の場合は、https://console.aws.amazon.com/datazone で Amazon DataZone コンソールに移動し、ドメインが作成された AWS アカウントでサインインすると、[データポータルを開く] を選択できます。

  2. 使用可能なデータアセットを選択して、アセットの詳細ページを開きます。

  3. アセットの詳細ページで、[リネージュ] タブを選択し、情報アイコンにマウスカーソルを合わせ、[サンプルリネージュを試す] を選択します。

  4. データリネージュポップアップウィンドウで、[データリネージュのガイド付きツアーを開始] を選択します。

    この時点で、リネージュ情報のすべてのスペースを提供する全画面タブが表示されます。サンプルデータリネージュグラフは、最初は、アップストリームとダウンストリームの両端に 1 深度のベースノードで表示されます。グラフはアップストリームまたはダウンストリームに展開できます。列情報は、リネージュがノードをどのように流れるかを選択して確認することもできます。

マネジメントコンソールでデータリネージュを有効にする

デフォルトデータレイクとデフォルトデータウェアハウスのブループリントの設定の一環として、データリネージュを有効にできます。

デフォルトデータレイクのブループリントのデータリネージュを有効にするには、次の手順を実行します。

  1. https://console.aws.amazon.com/datazone で Amazon DataZone コンソールに移動し、アカウントの認証情報を使用してサインインします。

  2. [ドメインを表示] を選択し、DefaultDataLake ブループリントのデータリネージュを有効にするドメインを選択します。

  3. ドメインの詳細ページで、[ブループリント] タブに移動します。

  4. DefaultDataLake ブループリントの詳細ページで、[リージョン] タブを選択します。

  5. DefaultDataLake ブループリントのリージョンの追加の一環として、データリネージュを有効にできます。したがって、リージョンが既に追加されているが、そのリージョンのデータリネージュ機能が有効になっていない場合 ([データリネージュのインポート] 列に [なし] が表示される場合) は、まずこのリージョンを削除する必要があります。データリネージュを有効にするには、[リージョンの追加] を選択し、追加するリージョンを選択し、[リージョンの追加] ポップアップウィンドウで [データリネージュのインポートを有効化] チェックボックスをオンにします。

DefaultDataWarehouse ブループリントのデータリネージュを有効にするには、次の手順を実行します。

  1. https://console.aws.amazon.com/datazone で Amazon DataZone コンソールに移動し、アカウントの認証情報を使用してサインインします。

  2. [ドメインを表示] を選択し、DefaultDataWarehouse ブループリントのデータリネージュを有効にするドメインを選択します。

  3. ドメインの詳細ページで、[ブループリント] タブに移動します。

  4. DefaultDataWarehouse ブループリントの詳細ページで、[パラメータセット] タブを選択します。

  5. DefaultDataWarehouse ブループリントのパラメータセットの追加の一環として、データリネージュを有効にできます。これを行うには、[パラメータセットを作成] を選択します。

  6. [パラメータセットを作成] ページで、以下を指定し、[パラメータセットを作成] を選択します。

    • パラメータセットの名前。

    • パラメータセットの説明。

    • 環境を作成する AWS リージョン。

    • Amazon DataZone がこれらのパラメータを使用して Amazon Redshift クラスターまたはサーバーレスワークグループへの接続を確立するかどうかを指定します。

    • AWS シークレットを指定します。

    • 環境の作成時に使用するクラスターまたはサーバーレスワークグループを指定します。

    • 環境の作成時に使用する (指定したクラスターまたはワークグループ内にある) データベースの名前を指定します。

    • [データリネージュをインポート] で、[データリネージュのインポートを有効化] をオンにします。

Amazon DataZone データリネージュのプログラムによる使用

Amazon DataZone でデータリネージュ機能を使用するには、次の API を呼び出します。

AWS Glue カタログのリネージュを自動化する

AWS Glue データベースとテーブルが Amazon DataZone カタログに追加されると、データソース実行を使用してそれらのテーブルのリネージュ抽出が自動化されます。このソースでは、リネージュの自動化が適用されている方法は限られています。

  • ブループリント設定 - ブループリントを設定する管理者は、リネージュを自動的にキャプチャするようにブループリントを設定できます。これにより、管理者はデータプロデューサーがデータをカタログ化するのではなく、リネージュのキャプチャにとって重要なデータソースを定義できます。詳細については、「マネジメントコンソールでデータリネージュを有効にする」を参照してください。

  • データソース設定 - データプロデューサーは、AWS Glue データベースのデータソース実行を設定する際に、データ品質と共にビューを表示し、そのデータソースの自動データリネージュについて通知します。

    • リネージュ設定は、[データソース定義] タブで表示できます。データプロデューサーはこの値を編集できません。

    • データソース実行のリネージュコレクションは、リネージュを構築するためにテーブルメタデータから情報を取得します。AWSGlue クローラーはさまざまなタイプのソースをサポートし、データソースの実行の一部としてリネージュがキャプチャされるソースには、Amazon S3、DynamoDB、カタログ、Delta Lake、Iceberg テーブル、Amazon S3 に保存されている Hudi テーブルが含まれます。JDBC および DocumentDB または MongoDB は現在、ソースとしてサポートされていません。

    • 制限 - テーブルの数が 100 を超える場合、リネージュの実行は 100 個のテーブルの後に失敗します。実行時に 100 を超えるテーブルを取り込むように AWS Glue クローラーが設定されていないことを確認します。

  • AWS Glue (v5.0) 設定 - AWS Glue Studio で Glue AWS ジョブを実行するときに、ジョブがリネージュイベントを Amazon DataZone ドメインに直接送信するようにデータリネージュを設定できます。

    1. AWS Glue コンソール (https://console.aws.amazon.com/gluestudio) に移動し、アカウントの認証情報を使用してサインインします。

    2. [ETL ジョブ] を選択し、新しいジョブを作成するか、既存のジョブのいずれかをクリックします。

    3. [ジョブの詳細] (ETL フロージョブを含む) タブに移動し、下にスクロールして [リネージュイベントの生成] セクションに移動します。

    4. チェックボックスをオンにしてリネージュイベントの送信を有効にして展開し、Amazon DataZone ドメイン ID を入力する入力フィールドを表示します。

  • AWS Glue (V5.0) ノートブック設定 - ノートブックでは、%%configure マジックを追加することで Spark 実行のコレクションを自動化できます。この設定は、Amazon DataZone ドメインにイベントを送信します。

    %%configure --name project.spark -f { "--conf":"spark.extraListeners=io.openlineage.spark.agent.OpenLineageSparkListener --conf spark.openlineage.transport.type=amazon_datazone_api --conf spark.openlineage.transport.domainId={DOMAIN_ID} --conf spark.glue.accountId={ACCOUNT_ID} --conf spark.openlineage.facets.custom_environment_variables=[AWS_DEFAULT_REGION;GLUE_VERSION;GLUE_COMMAND_CRITERIA;GLUE_PYTHON_VERSION; --conf spark.glue.JOB_NAME={JOB_NAME}" }

    デフォルトのパラメータは以下のとおりです。

    • spark.extraListeners=io.openlineage.spark.agent.OpenLineageSparkListener - OpenLineageSparkListener が作成され、Spark のリスナーバスに登録されます

    • spark.openlineage.transport.type=amazon_datazone_api - これは、DataZone API トランスポートを使用して DataZone の PostLineageEvent API にリネージュイベントを出力するように OpenLineage プラグインに指示する OpenLineage 仕様です。詳細については、「https://openlineage.io/docs/integrations/spark/configuration/spark_conf」を参照してください。

    • spark.openlineage.transport.domainId={DOMAIN_ID} - このパラメータは、API トランスポートがリネージュイベントを送信する先のドメインを確立します。

    • spark.openlineage.facets.custom_environment_variables [AWS_DEFAULT_REGION;GLUE_VERSION;GLUE_COMMAND_CRITERIA;GLUE_PYTHON_VERSION;] - Glue インタラクティブセッションが入力する次の環境変数 (AWS_DEFAULT_REGION、GLUE_VERSION、GLUE_COMMAND_CRITERIA、および GLUE_PYTHON_VERSION) が LineageEvent に追加されます

    • spark.glue.accountId=<ACCOUNT_ID> - メタデータが存在する Glue データカタログのアカウント ID。このアカウント ID は、リネージュイベントで Glue ARN を構築するために使用されます。

    • spark.glue.JOB_NAME - リネージュイベントのジョブ名。ノートブックのジョブ名は spark.glue.JOB_NAME: ${projectId}.${pathToNotebook} として設定できます。

  • AWS Glue から Amazon DataZone への通信を設定するパラメータを設定する

    パラメータキー: --conf

    パラメータ値:

    spark.extraListeners=io.openlineage.spark.agent.OpenLineageSparkListener --conf spark.openlineage.transport.type=amazon_datazone_api --conf spark.openlineage.transport.domainId=<DOMAIN_ID> --conf spark.openlineage.facets.custom_environment_variables=[AWS_DEFAULT_REGION;GLUE_VERSION;GLUE_COMMAND_CRITERIA;GLUE_PYTHON_VERSION;] --conf spark.glue.accountId=<ACCOUNT_ID> (replace <DOMAIN_ID> and <ACCOUNT_ID> with the right values)

    ノートブックには、さらに次のパラメータを追加します。

    --conf spark.glue.JobName=<SessionId> --conf spark.glue.JobRunId=<SessionId or NONE?> replace <SessionId> and <SessionId> with the right values

Amazon Redshift からリネージュを自動化する

管理者が設定したデータウェアハウスのブループリントを使用して Amazon Redshift サービスからリネージュをキャプチャすると、リネージュは Amazon DataZone によって自動的にキャプチャされます。リネージュ実行は、特定のデータベースに対して実行されたクエリをキャプチャし、Amazon DataZone に保存されてデータプロデューサーまたはデータコンシューマーが特定のアセットに移動するときに表示されるリネージュイベントを生成します。

リネージュは、次の設定を使用して自動化できます。

  • ブループリント設定: ブループリントを設定する管理者は、リネージュを自動的にキャプチャするようにブループリントを設定できます。これにより、管理者はデータプロデューサーがデータをカタログ化するのではなく、リネージュのキャプチャにとって重要なデータソースを定義できます。セットアップするには、「マネジメントコンソールでデータリネージュを有効にする」を参照してください。

  • データソース設定: データプロデューサーは、Amazon Redshift データベースのデータソース実行を設定する際に、そのデータソースの自動データリネージュ設定が表示されます。

    リネージュ設定は、[データソース定義] タブで表示できます。データプロデューサーはこの値を編集できません。