CDGC(Cloud Data Governance & Data Catalog)でリネージュを作成してみた
投稿者:泉 亮太郎
こんにちは!
NI+C DataOpsチームの泉です。
データを管理するにあたりデータがどのような流れで処理されているのか、その流れの全体像を把握するのに苦労していませんか?
データの起源や流れを追うことで、データの信頼性を判断するための重要な指標となる”リネージュ”という概念があります。
Informatica社のCloud Data Governance & Data Catalog(以下、CDGCとします)では使用する各コンポーネント(Amazon S3やBigQuery等)のメタデータを取得(スキャン)することで簡単にリネージュを作成することができます。
そこで本TechBlogでは実際にCDGCを利用してリネージュを作成していきます。
■リネージュのイメージ
リネージュとは日本語で「血統」「系統」「血筋」などの意味を持ちます。
血統と聞くと皆さんは以下のような血統図をイメージされる方が多いのではないでしょうか。
血統図ではジェイクの一番古い祖先はチャーリーとベルで最終的にデイジーとトビーが結婚して生まれてきたことを確認することができます。
CDGCのリネージュも同じようにデータの起源や流れ、およびそのデータがどのような処理が行われたかを追跡することができ、データの信頼性やデータの流れの全体像を把握することで効率的な管理を行うことができます。
■CDGCのデータ遷移図
今回はまず始めにInformatica社のETLサービスであるCloud Data Integration(以下、CDIとします)を利用してAmazon S3に格納しているデータを抽出・結合し、BigQueryに格納するフローを作成します。
その後CDGCでAmazon S3 ・CDI・BigQueryのスキーマ情報やテーブル情報などのシステムメタデータ情報を取得(スキャン)し、リネージュを作成します。
なお、CDIとCDGCはランタイム環境であるSecureAgentにて実行され、本BlogではSecureAgentはGoogle Compute Engineにインストールしております。
SecureAgentについては別Blogでご紹介しておりますのでこちらをご参照ください。
■事前準備(Amazon S3側)
あらかじめ用意していたS3のバケット/フォルダ配下にデータソースとして使用するEmployee.csvとDepartment.csvを格納します。
格納しているcsvファイルのデータ内容は以下の通りとなります。
※データを結合する際にはdepartment_idをキーに結合します。
♦Employee.csv
id | name | phone_number | address | department_id |
1 | 山田太郎 | 012-3456-789 | 東京 | 1 |
2 | 田中花子 | 123-4567-890 | 千葉 | 3 |
3 | 佐藤健太 | 234-5678-901 | 東京 | 2 |
4 | 鈴木真理子 | 345-6789-012 | 埼玉 | 2 |
5 | 高橋一也 | 456-7890-123 | 神奈川 | 4 |
♦Department.csv
department_id | department | manager |
1 | 営業 | 伊藤直樹 |
2 | SE | 木村美奈子 |
3 | マーケティング | 渡辺健太郎 |
4 | 人事 | 中田真理子 |
■事前準備(BigQuery側)
BigQueryにETLジョブの出力先となるテーブル(employee_department_mapping)を作成しておきます。
テーブルの情報は以下の通りになります。
♦employee_department_mapping
フィールド名 | タイプ | モード |
id | string | nullable |
name | string | nullable |
phone_number | string | nullable |
address | string | nullable |
department | string | nullable |
manager | string | nullable |
■事前準備(CDIによるETLジョブ作成)
1.接続定義の作成
CDIでETLジョブを作成する前にデータの入力元となるAmazon S3と出力先となるBigQueryの接続定義をあらかじめ作成している必要があります。
接続定義についてはマイサービスの管理者にある接続から作成することができます。
今回はS3とBQの接続定義の設定方法は割愛させていただきますが、興味のある方はInformatica社のサイトにあるAmazon S3 V2接続プロパティとGoogle BigQuery V2接続のプロパティをご参照ください。
2.マッピングの作成
接続定義を作成したら実際にCDIのマッピング機能でETLジョブを作成します。
実際に作成したマッピング(mp_nic01)は以下の通りになります。
※マッピングについては別のBlogでご紹介しておりますのでこちらをご参照ください。
3.マッピングタスクの作成
リネージュはマッピングタスクに紐づけられるのでマッピングタスクを作成して先ほど作成したマッピングを関連付けます。
実際に作成したマッピングタスク(mt_nic01)は以下の通りになります。
マッピングタスクを作成したら実際に実行してみます。
実行結果からジョブが正常に実行されたことが確認できましたので、実際にBigQuery側でデータが格納されていることも確認してみます。
問題なくemployee_department_mappingテーブルにデータが格納されていますね。
前準備が長くなりましたが、ここから実際にCDGCを使用してリネージュを作成していきます。
■データカタログ作成
まずは最初にAmazon S3,BigQuery,CDIのメタデータを取得し、それぞれのデータカタログを作成します。
データカタログとは、メタデータを一元的に収集、整理、管理するツールであり、データの検索性・アクセス性・理解を促進する役割を果たします。
♦Amazon S3のデータカタログ作成
1.マイサービスからメタデータコマンドセンターにアクセスします。
2.ホーム画面左上にある新規をクリックします。
3.事前定義されたカタログソース一覧からAmazon S3を選択し、右下の作成をクリックします。
4.データカタログの名前と事前に作成していたAmazon S3の接続定義を指定します。
5.ランタイム環境とフィルタの設定を行い右上の保存をクリックします。
※フィルタ条件を設定することでAmazon S3の特定のフォルダやファイルを指定することも可能です。
※ユーザーの関連付けやスケジュールの設定も可能です。
6.実行をクリックします。
7.ステータスが成功になったことが確認できましたら、Amazon S3のデータカタログ作成は完了です。
♦Big Queryのデータカタログ作成
”Amazon S3のカタログ作成”同様の手順でBigQueryのメタデータを取得し、データカタログを作成します。
なお、BigQueryではフィルターを使用してemployee_department_mappingテーブルを指定してみます。
♦CDIのデータカタログ作成
続いてCDIのメタデータを取得し、データカタログを作成します。
CDIでは接続情報としてIDMC(旧IICS)のURL(フォーマットは「 http(s)://<IICS_Base_URL>/identity-service/home」)とユーザーID・パスワードを指定する必要が有ります。
※IDMC(旧IICS)については、弊社ホームページでご紹介しておりますのでこちらをご参照ください。
■接続の割り当て
メタデータを取得してデータカタログの作成が完了しましたので、続いてはCDIのデータカタログに対してAmazon S3とBigQueryのデータカタログを割り当てます。
♦CDIのデータカタログにAmazon S3のデータカタログをマッピング
1.監視ページの接続割り当て一覧から今回作成したCDIのデータカタログを選択し、右上のAssignをクリックします。
2.カタログソース一覧から作成したAmazon S3のデータカタログを指定し、右下のAssignをクリックします。
3.割り当てが正常に実行され、CDIのデータカタログにAmazon S3のデータカタログがマッピングされていることが確認できます。
♦CDIのデータカタログにBigQueryのデータカタログをマッピング
先ほどと同様の手順を行い、CDIのデータカタログにBigQueryのデータカタログをマッピングします。
■リネージュの確認
接続の割り当てが完了しましたので、実際にリネージュを確認していきます。
1.マイサービスからデータガバナンスとデータカタログに移動します。
2.参照画面のデータカタログ一覧から今回作成したCDIのデータカタログのマッピングタスクインスタンスをクリックします。
3.画面上部にあるリネージュタブをクリックするとリネージュが作成されていることが確認できます。
リネージュを見てみるとAmazon S3からEmployee.csvとDepartment.csvがCDIによって抽出/結合されてBigQueryのemployee_department_mappingテーブルに格納されている流れをカラムレベルで確認することができます。
また、カラムをクリックすると矢印が青く表示され、どこからきたデータなのか視覚的に確認することもできます。
■まとめ
今回のBlogではCDGCでリネージュを作成する方法についてご紹介しました。
リネージュの作成にはいくつかステップはあるものの、難しい操作はなくGUIで直感的に作成することができました。
CDGCではデータカタログ画面内にリネージュを表示して活用することが可能です。データ管理を効率的に行うことで、データの出所や遷移が一目瞭然となります。
大規模なデータ分析基盤ではどうしてもデータの関係性が複雑となってしまう現状があります。例えばデータの所在や来歴、その先の影響が把握できない、データ分析の為のデータ準備に際して目的に即した適切なデータを把握できないといったデータ活用における一番多い悩みの解決に寄与してくれます。
私もこのTechBlogを作成する中でリネージュ機能を使わない手はないなと改めて感じました。
まずは特定のデータソースからでも一度試してはいかがでしょうか。
また、CDGCのリネージュではカラムごとに付与されているビジネス用語やポリシーなどを重ねて表示できるオーバーレイ機能があります。今回のTechBlogではご紹介しておりませんが、次回のBlogで実際に試してみたいと思います。ご覧いただき、ありがとうございました。