🧑‍✈️

Dataplexで始めるデータメッシュ運用

2022/12/13に公開

Google Cloud Japan Advent Calender 2022 (今から始める Google Cloud) の 13 日目です!

こんにちは、Google CloudでDataAnalyticsを担当している山田です
本日はDataplexの紹介をしたいと思います!
https://cloud.google.com/dataplex?hl=ja

Dataplexとは

データを活用する上でデータガバナンスをどう担保するかは非常に難しい問題です。
そこでGoogle CloudではデータのQuality,Security,Complianceなどを担保するためにDataplexを提供しています。

具体的に何が出来るのかが分かりづらい部分があるので、この記事ではDataplexの具体的な機能や使い方を説明したいと思います。

また、メタデータ管理サービスであるのData Catalogですが、今年 Dataplex に統合され、Dataplex のメニューからアクセスできるように変更されています。

詳しくはこちらのブログを参照してください。
https://cloud.google.com/blog/ja/products/data-analytics/manage-and-govern-data-with-the-unified-dataplex-and-data-catalog

データメッシュとは

データを扱う上で、データが分断されてサイロ化されてしまっているとどんなデータがどこにあるのかわからず、データをうまく活用できません。

そこでサイロ化をしないようにとモノリシックなデータ基盤が作られてきました。
一元管理されたモノリシックなデータ基盤はサイロを解消出来るものの、基盤の柔軟性や拡張性が失われがちです。

一方で、ドメイン分割でデータ基盤を持つとデータの重複やサイロ化が発生し、データのガバナンスが効きにくくなります。

データメッシュはこのような問題を解決すべく、モノリシックな基盤からドメインに対応した分散型のデータ基盤に移行し、なおかつドメイン間でデータを一元的に統制することを目指します。

Dataplexを使ったデータメッシュ構造

Dataplexを使うと、サイロ化されたデータを論理的に集合させガバナンスを効かせることが出来ます。
詳しくはブログでも書かれているので参照してください。
https://cloud.google.com/blog/ja/products/data-analytics/build-a-data-mesh-on-google-cloud-with-dataplex-now-generally-available

データメッシュに関するホワイトペーパーはこちらです。
https://services.google.com/fh/files/misc/build-a-modern-distributed-datamesh-with-google-cloud-whitepaper.pdf

ホワイトペーパー読みたいけど、英語読むのはちょっと・・・という方は今年発表されたTranslation Hubを使っていただくと、pdfをまるっと翻訳できます!
https://dev.classmethod.jp/articles/announcing-translation-hub-for-self-service-document-translation/

Dataplexの機能

Dataplexを使うと論理的なデータの集合を作ることが出来ます。
データの集合体は大きい単位から Lake/Zone/Assetと呼ばれます。
(ここで言うZoneは地理的なZoneとは別です)

AssetはDatasetまたはGCSのBucektと1:1
Zoneには複数のAssetを入れることができ
Lakeには複数のZoneを入れることが出来ます。

Lake / Zone / Assetのイメージ

ここでのLake/Zone/Assetは異なるProjectにまたがることが出来ます。
これが論理的にデータの集合を作れるということになります

ProjectA-Dのデータを1つのLakeとして論理的に構成

このように論理的に作ったデータの集合に対してDataplex上からは一元的に権限管理をすることが出来、Data Catalogを用いて一元的にメタデータの管理も行えます。

この機能を使うことで、複数Projectにまたがったデータを論理的に集合させガバナンスを保つことが出来ます。

論理的なデータ構造の作成

ではどのようにして論理的なデータ構造であるLake/Zone/Assetを作成するのか見ていきましょう。

まずLakeの作成をDataplex -> レイクの管理 -> 管理から行います

表示名、IDを入力してLakeの作成を行います
メタストアはPresto,Hive,SpakSQLなどを介してGCSやBQのデータを使っていて、それらのデータをDataplexから管理したい場合は使用するようにしてください。

Lakeが作成されました

次に「ゾーンを追加」からZoneを作ります

Lakeと同じように表示名、IDを入力してZoneの作成を行います

Zoneが作成されました

次はAssetをZoneに追加します

他のProjectのDatasetをAssetとして追加してみます
この際にDataplexのサービスアカウントが参照するDatasetの権限を持っていないとエラーが出ます

bucketもAssetとして追加します

これにより以下のような複数ProjectにまたがったLake/Zone/Asset構成が出来ました

この構成を作ることにより、LakeやZone配下に対して一元的に権限設定が可能になります

Lake配下の全Assetに対する参照権限をつけてみましょう
レイクの管理->安全からアクセス権を付与で権限設定が出来ます

参照のみの場合は Dataplex Data Readerのロールを設定します

Lake配下のDataset/Bucketを見てみると、Dataplexストレージデータリーダーという権限が追加されているのが確認出来ます。

こちらでLake配下のProjectを跨いだ全Assetに対しての権限付与が完了です!

Lake構成を作ってしまえば権限管理がとても楽になりますよね。
(権限の反映まで30分ほど時間がかかる場合があります)

Data Catalogを使ったメタデータ管理

Lake構造を作ると、Dataplex(Data Catalog)上からLake/Zone/Assetの単位でデータの検索や管理も出来るようになります。

データの検索

作成したLake/Zone/AssetのメタデータはData Catalog上に自動的に保存され、検索から探すことが出来ます。

Assetで指定したDataset配下のテーブルなども一元的に検索出来ます。

データリネージ

まだプレビュー段階ですが、Dataplex上でデータリネージの表示も出来るようになることが発表されています。
https://cloud.google.com/data-catalog/docs/concepts/about-data-lineage

こちらGAの際に仕様が変わる可能性もありますが、BQのauditログから自動的に作成されますのでユーザ側でリネージを表示させるために何か操作が必要ということはありません。

テーブルを検索した後、リネージタブから表示出来ます。

タグ

タグテンプレートという機能を使うと、テーブルに対してKeyValue形式でメタデータを追加で付与することが出来ます。

例えば、テーブルのデータオーナーは誰か?個人情報が入っているテーブルか?などのメタデータを付与することが可能です。

タグテンプレートの作成

タグテンプレート例

作成したタグテンプレートは、Dataplex上でテーブルを検索しテーブルに付与することが出来、メタデータを充実させることが出来ます

まとめ

Dataplexの機能を紹介させていただきました、いまいちどんなことが出来るか掴みにくいDataplexですが、使ってみると非常に便利なツールです。

こちらで紹介した機能の他にもデータ品質チェック機能などもあり、データ品質の自動チェック機能やデータプロファイリングの機能も追加されてきています。

https://cloud.google.com/dataplex/docs/auto-data-quality-overview

https://cloud.google.com/dataplex/docs/data-profiling-overview

Dataplexで権限管理しても、Projectでも個別に権限設定可能であるなど課題は残っていますがデータガバナンスを考えている人に是非とも使っていただけたらと思います!

Google Cloud Japan

Discussion