Amazon DataZone を構築してみた

# はじめに

[Amazon DataZone](https://aws.amazon.com/jp/datazone/) が AWS re:Invent 2022 で発表されました。IT に携わる方のみならず、ビジネス側の方にとって、わかりやすいデータカタログが構成できます。日本語の説明を見ながら、社内に存在するデータを確認ができ、データ活用に活かすことができます。2023 年 7 月時点で Public Preview 中で本番環境では利用できませんが、誰でも検証作業などはできるようになっています。

DataZone が新しく出たものの、いまいち利用のイメージがついてなかったため、簡単に触ってみた内容の共有記事です。

余談ですが、「Data Zone」と間にスペースを入れるのは間違いなので、正式名称に注意しましょう :)



# DataZone 概念図

DataZone 上の概念の理解が重要なので、個人的な理解を整理しました。まだ Publish Preview 中なので、今後のアップデートで色々進化はしていくとおもいますが、現時点での個人的なスナップショットということで、載せておきます。

![image-20230709142153884.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/d7e443df-a529-8ad7-f0a7-8bfd16dceef8.png)



- トップレベルドメイン
  - DataZone を作成する際にトップレベルドメインを指定して作成します。大きな論理的な枠組みと捉えて大丈夫だと思います。
- データカタログ
  - DataZone にログインできる全ユーザーを対象に、登録 (Publish) された全データを検索できるデータカタログです。登録 (Publish) する人が、わかりやすい日本語を付与できるため、人にやさしいデータカタログを作成する仕組みがあります。
- ドメイン
  - トップレベルドメイン配下に、事業部単位といったドメインを複数作成できます。
- プロジェクト
  - ドメインに複数のプロジェクトを作成できます。プロジェクト単位にメンバーを登録して、データの登録 (Publish) やサブスクライブを提供します。
- データの登録 (Publish)
  - データカタログに登録する作業を Publish と言います。Glue 上のデータカタログや Redshift 上のテーブルデータを Publish できます。
- Subscribe
  - DataZone 上でサブスクライブを行うと、Athena を使った SQL クエリーが発行できます。気がついた点としては、SQL クエリーを発行しない人にとっては、現時点でサブスクライブするメリットはないです。サブスクライブはあくまで、Athena や Redshift クエリーエディターをつかって SQL を発行できる権限を取得できる、と理解するとスムーズでしょう。
  - 表現を変えると、QuickSight を使うユーザーは、サブスクライブせずにデータカタログだけ参照して利用する事も考えられます。ただし、**DataZone のデータカタログには、直接 QuickSight 上のデータセットを登録することは出来ない点**は留意しておきましょう。QuickSight 上に Athena を使ったデータセットを登録したのちに、同様に DataZone 上に Glue DataCatalog 上の Athena テーブルを登録する方法が考えられます。



それでは、DataZone をいくつか触ってみましょう。



# ドメインの作成

DataZone の画面を開きます。Region は N. Virginia（us-east-1）を選択します。(Public Preview では、Tokyo や Osaka はまだ提供されていません)

![image-20230630112723637.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/e3cb1a83-6dd7-4ee7-482e-194efb97cb9f.png)



Create domain を押します。

![image-20230630115629803.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/df0fed48-71a5-648c-4e9c-318fe32566a4.png)



トップレベルドメインの名前を入れます。

```
Corporate
```

![image-20230630115803899.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/7c3554e7-fb1f-2705-16e1-ba7586c080be.png)



ここはデフォルトです。

![image-20230630152024512.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/bde779e3-0085-e663-5d7e-a038c7919057.png)



Identity Center が他のリージョンで有効化されていると、ワーニングが出るため注意しましょう。Identity Center は、1 AWS アカウントで 1 リージョンのみ有効にできます。既に東京リージョンで Identity Center を有効化していると、Public Preview が提供されているリージョンで Identity Center を利用できない制限が生れます。

![image-20230630115829398.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/4662f0de-6a27-eb14-217e-e8b35748dca2.png)



Create Domain を押します。

![image-20230630115840082.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/259971d7-c009-f63f-06e5-5424d3379350.png)



Creation が走りました。

![image-20230630115911292.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/b8cef1e4-657b-b12e-2697-dc788c57368f.png)



Available に変わりました。名前をクリックしてみます。

![image-20230630123835760.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/23f17d1f-9f89-5489-b4c7-e767ce34723f.png)



この Domain の詳細画面が見えます。

- Data portal 用の専用 URL が見えます。
- DataZone に紐づけされた AWS アカウント が見えます。

![image-20230630133413947.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f80ddc4c-fb04-c614-d354-615dedd444e6.png)



Data Source のタブも見えます。

![image-20230630133714179.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/be6d9c49-860f-aaf4-1ead-35e323f82db4.png)



# DataPortal を開く

![image-20230630133944601.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/75b2278d-5fa5-8dad-9b7b-755db1e63a13.png)



Sign in with AWS IAM

![image-20230630134053067.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/591c1a4b-259c-1701-5e94-096ecc6a2676.png)



このような画面となっています。

![image-20230630134301830.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f2f2dd26-03e7-a374-9ebc-a0543bb20741.png)



トップレベルドメイン配下に 2 つのドメインを作成します。

![image-20230630140318696.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/460625e7-c6a7-e057-f902-c331586cc179.png)



Sales ドメインを作成します。

```
Sales
```

![image-20230630140340611.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/7a643659-f2f0-7d23-de8c-43b8247657f1.png)



Sales が作成されました。

![image-20230630152405528.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/b7786438-e890-9c2e-37b4-4ae1b4df53a4.png)





同様に Marketing も作成しました。

![image-20230630152447610.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/fc91fea0-5339-66fc-7fe1-fe188c7d11a4.png)



マネージメントコンソール上にも、作成したドメインが反映されています。

![image-20230630140650963.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/13480d28-06c5-fb02-eec3-7d8b67f3df69.png)



なお、Domain を作成したユーザーは、各 Domain の Data steward の Role も持っています。

![image-20230630140945920.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/dce8a899-ad83-049d-d002-b76f5cca76d7.png)



# IAM Identity Center の有効化

N.Virginia リージョンで、IAM Identity Center を有効化します。

![image-20230630152633487.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/e22a0e9e-03f3-ade0-5831-5f98309b7692.png)



IAM Identity Center には、Organizations が必須です。Create を押すと、自動的に Organizations が有効になります。

![image-20230630152725589.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/63f1fd8c-063c-e615-bf83-90732561080e.png)



Identity Center 上で、DataZone に紐づけるユーザーを作成します。

![image-20230630153058921.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f1af1573-db4c-f5c5-b89c-b37d06f4b206.png)



以下の名前で適当に作成します。

```
sales01
```

![image-20230630153303080.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/aa85ca30-96ac-2ad0-7417-119170b7055b.png)



Add

![image-20230630153317367.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/2b9c5dd5-ce9c-fba7-1a5e-df61114574dc.png)



追加されました。

![image-20230630153335736.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/892da87c-15a7-46f9-7568-2cda95aac6c1.png)



同様に、以下のユーザーを作成します。

```
marketing01
steward01
```

![image-20230630154259300.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/503ae972-685f-1af2-b134-9ac41f2c2589.png)



# DataZone 側で Identity Center を有効化

DataZone 側で Identity Center を有効化します。

![image-20230630160023961.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/984db1b3-641a-846d-2c0d-1e58d2658bfa.png)


Enable

![image-20230630160045953.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/029e93d8-53de-d522-80b0-aaeec3c425e0.png)



Enbaled になりました。

![image-20230630160135345.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/1c01a5e6-e5a2-a8b5-acf0-48e2fe6afea9.png)



# Identity Center 経由で DataZone にアクセス

Data portal URL を開いて、SIGN IN WITH SSO を選択します。

![image-20230630160617465.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/55ea478e-8a37-1125-5a36-68774c7e90b3.png)



ユーザー名が求められたので、Identity Center 上のユーザー名を指定します。

![image-20230630160726939.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/c471afab-945c-0d39-e10f-f8f41cb86713.png)





サインイン

![image-20230630160738626.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/307082f9-a064-d786-b5be-cc1caa9b8da6.png)



# DataZone の管理者 : Project の作成

DataZone の全体管理者でプロジェクトを作成します。



## Project の作成

My Project で Plus をおします。

![image-20230630161717527.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/ad17c889-841d-7053-62df-068fb81ddf65.png)



Project の名前をいれて、SELECT DOMAIN をおします。

![image-20230630162108574.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/c24e95b9-ce6e-7c29-f88d-505fb2796c94.png)



Sales ドメインに紐づけます。

![image-20230630162140494.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/beb0e071-19f4-ec07-cd04-2014cdb3bbaf.png)



Create Project

![image-20230630162250177.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/a28ca18c-49d2-d98f-c6f8-352d80224d1f.png)



6 分くらいかかるっぽいです。

![image-20230630162327961.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/83b1e1fb-d1a1-6022-9c30-7b44cc113493.png)



作成されました。

![image-20230630162809202.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/87a98141-22aa-349e-d14a-fbb5378829c2.png)



意識する必要はないですが、Project が作成された裏側で CloudFormation が実行され、Glue Database などが自動登録されていました。

![image-20230630163611036.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/216ec98b-453f-00a6-7ea2-9bd1d526d774.png)



Glue DataCatalog 上では、Table はありません

![image-20230630163630744.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/20e2a48f-01ab-31f9-b348-63255af575e5.png)



## Project に Member の追加

プロジェクトにメンバーを追加します。

![image-20230630164218284.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/07400c94-ad53-4487-594e-71f7ef59fc9a.png)



メンバーの追加画面です。SSO は Identity Center のことを表しています。それ以外にも、IAM User を指定できます。

![image-20230630164431774.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/84935004-5bdd-b2fb-2519-0ea0f2935687.png)



Identity Center 上で sales01 で検索して、選択します。

![image-20230630164534627.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/2c181c1c-d42d-0293-6953-48f9ace79757.png)



Add を押します。

![image-20230630164559110.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/a82ba432-40c6-12e0-eb8f-426c7e9756f4.png)



追加されました。

![image-20230630164623997.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/45b2494c-ad0b-eb1f-03d2-1146507ec7c1.png)



## Domain に Data Steward の追加

ドメインに Data Steward を追加します。Data Steward は、データの品質を管理を行うための役割です。各ドメインごとに Data Steward を用意できます。

![image-20230630181340496.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/4e54c3e9-05f7-d8a1-a650-f22ff5a2de8f.png)



Data Steward に Add を押します。

![image-20230630181510150.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/94d41bba-54fd-b791-9767-55e1948944b7.png)



Identity User の steward01 を追加

![image-20230630181540390.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/fa73f252-ca2b-e6c5-08f1-c7aa0312b8f4.png)



追加されました。

![image-20230630181603621.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/31394daf-7822-942e-92a5-02288958af18.png)



## Project で Publishing Agreements の作成

Publishing Agreements を作成します。データを Publish する際に、レビュー必須有無や、レビューする人を指定します。

![image-20230630182327977.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/e78d035f-3623-c2ca-13f1-14e70295dcfb.png)



名前を指定します。

![image-20230630182422430.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/5e8e10f2-e1e4-1653-a4fd-893311facefe.png)



以下のような選択肢がある。データの管理を誰がどのようにおこなうのかという事前定義です。

- REQUIRE DOMAIN PUBLISHING APPROVAL
  - True : データを Publish する際に、Data Steward のレビューを必須にする
  - False : Publisher は、データのレビューを Data Steward に依頼することもできるし、レビューせずに公開することも出来る
- ALLOW SUBSCRIPTIONS : 
  - All data assets : すべてのデータへの Subscription を有効にする
  - None : Publisher は、Publish したデータの Subscription を有効にできない
- REQUIRE SUBSCRIPTION APPROVAL
  - True : Subscription をするためには、Subscription Approver から承認が必要
  - False : Subscription に、Subscription Approver から承認は不要
- SUBSCRIPTION APPROVER: Publisher
  - Publisher : Subscription Approver を Publisher にする
  - Data Steward : Subscription Approver を Data Steward にする
- TERM : No term
  - URL を入力できそうだったが、よくわからなかった

![image-20230630182603165.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/1b5e4840-d93c-1c25-7109-f1d7a0a384c5.png)



Edit

![image-20230701142818532.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/bb29303f-113f-586d-412e-d4a1af516dca.png)



True にして、Data Steward の承認を必要にする

![image-20230701142834597.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/c7bc930b-808f-f407-a2a2-64cfb6c4d9ab.png)



Subscription Approver を Edit する

![image-20230701142925002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/476048fa-1908-8543-711d-2373a7b39ae7.png)



Data Steward に変更

![image-20230701143205098.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/449e15b1-c4b7-4f00-a37f-c8c6bf4e5717.png)



右上の Submit

![image-20230701143228265.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/49da7ba4-ac79-081d-1b0a-0e2fd8c1ecec.png)



Approve

![image-20230701143254664.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/1ddd1568-9452-5a02-05de-a35d193f109d.png)



Publishing Agreements が作成されました。

![image-20230701143315919.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/a8b14985-bc2f-38c0-cfcd-41ee8c9ecfec.png)





# ビジネスメタデータの設定

## Business glossariesの設定

会社独自の用語を DataZone に定義できます。ここでは、情報の公開可能範囲を規定する「情報区分」と、「販売地域」を登録します。

Business Glossaries を選択

![image-20230701145525621.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/ed232e78-010e-a035-c22c-971b3ed0dd18.png)



Add

![image-20230701145608941.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/5b72de6d-77ee-8d34-b42f-2d918adc541c.png)



「情報区分」を指定します。

![image-20230701145641321.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/e92ee074-54b0-bafc-7ec7-4ce0656a682e.png)



Create Child Term で、ビジネス用語を追加します。

![image-20230701145752717.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/a085cfe5-ad5f-7817-a448-938bfd61be0c.png)



Create

![image-20230701145908132.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/14d9c529-1469-43ab-56c3-726dd8e6ed1d.png)



3 つ分定義しました。

![image-20230701145958001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/91af8ebe-be90-8493-5ce7-696b0c626a41.png)



それぞれ、Enable にします。

![image-20230701150017981.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/b43fd4aa-0479-1dba-c27d-9b074b334b61.png)



追加のビジネス用語として、販売地域も定義しました。

![image-20230701150221259.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/6e21fb19-93f9-8eec-54d6-d749a3d2c2db.png)



## Metadata forms の入力

ここでは、セールスに関するメタデータフォームを設定します
地域、区分を指定します。

Create

![image-20230701150655816.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f35b3092-ac5c-614f-ffd1-81a8f2ce7a64.png)



メタデータ名を入れて、Create Form を押します。

![image-20230701150729429.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/60d91c2d-202d-d064-f36c-a2e8834afa7e.png)



Create Field を押します。

![image-20230701150757704.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/c3e145ff-f042-0f36-a952-09acbb74eee9.png)



地域をフィールド名にして、Business Glosarry を選択します。

![image-20230701150920771.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/df118544-2221-3aa5-f96b-d18f60d01b83.png)



販売地域を選択します。

![image-20230701150953746.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/27c22426-ef7b-539e-d1b2-59061cab3709.png)



Create Field を押します。

![image-20230701151017074.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/4b337499-044b-2118-a365-26dd3667117a.png)



区分も作成します。

![image-20230701151057800.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/0645e461-2a78-3db3-873f-1410ceed700e.png)



Enable

![image-20230701151136070.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/70372279-62ae-0d0c-a7a4-1476072a6a87.png)



# データのパブリッシュ

データをデータカタログに公開する手順を確認していきます。



## データを S3 にアップロード

DataZone 上に作成した sales-project に紐づく S3 Bucket を確認します。

![image-20230701162821535.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/8dd18c4b-e5e3-be19-df8d-03822abbbd92.png)



S3 URI をメモります。

> s3://datazone-proj-sr2ioyq4enf7a-1688109875871

![image-20230701162850986.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/965f6a47-347c-2c18-06b9-26668161ba09.png)



マネージメントコンソール上でも、S3 Bucket が確認できます。

![image-20230701162949724.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/6cd36171-b408-b115-23c0-07593486a690.png)



この S3 バケットに csv データを格納します。実際には、自動的に格納するために ETL フローなどを整理することになりそうです。Create Folder を押します。

![image-20230701163036321.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/ea968fd8-0aae-9de8-6836-18651472ace9.png)



order フォルダー

![image-20230701163058844.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/bca9540d-016a-83ff-52cf-de922cbbd180.png)



order.csv を格納します。中身はこんな感じです。

```
order_number,customer_id,customer_name,age,category,store_id,stora_name,loc,product_id,product_name,quontity,price,date
111222333,1,customer1,30,standard,1,store1,loc1,1,product1,78,7800,2023/02/01
111222334,2,customer2,40,standard,1,store1,loc1,2,product2,55,11000,2023/02/01
111222335,3,customer3,20,premium,1,store1,loc1,3,product3,48,14400,2023/02/01
111222336,1,customer1,30,standard,1,store1,loc1,4,product4,56,22400,2023/02/01
111222337,2,customer2,40,standard,2,store2,loc2,1,product1,200,20000,2023/02/01
111222338,3,customer3,20,premium,2,store2,loc2,2,product2,104,20800,2023/02/01
111222339,1,customer1,30,standard,2,store2,loc2,3,product3,144,43200,2023/02/01
111222340,2,customer2,40,standard,2,store2,loc2,4,product4,99,39600,2023/02/01
111222341,3,customer3,20,premium,3,store3,loc1,1,product1,80,8000,2023/02/01
111222342,1,customer1,30,standard,3,store3,loc1,2,product2,96,19200,2023/02/01
111222343,2,customer2,40,standard,3,store3,loc1,3,product3,140,42000,2023/02/01
111222344,3,customer3,20,premium,3,store3,loc1,4,product4,108,43200,2023/02/01
111222345,1,customer1,30,standard,3,store3,loc1,4,product4,162,64800,2023/02/01
111222346,2,customer2,40,standard,1,store1,loc1,1,product1,19,1900,2023/02/02
111222347,3,customer3,20,premium,1,store1,loc1,2,product2,99,19800,2023/02/02
111222348,1,customer1,30,standard,1,store1,loc1,3,product3,52,15600,2023/02/02
111222349,2,customer2,40,standard,1,store1,loc1,4,product4,91,36400,2023/02/02
111222350,3,customer3,20,premium,2,store2,loc2,1,product1,119,11900,2023/02/02
```



格納しました。

![image-20230701163218415.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/43096eb4-3dd6-77ac-e10f-7b66fde3bd33.png)



## Glue Crawler で S3 に格納したデータを読み取り

Create Crawler を作成します。

![image-20230701171705834.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/b72d90ae-570d-4808-9fdf-52aac0e9dbf1.png)



sales-project01 という名前を付けます。

![image-20230701171739883.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/4d39645d-425c-9669-6a1e-b68d76a2e424.png)



Add a data source を押します。

![image-20230701171805171.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/d16577e2-3f1d-0d59-4ddb-36c43813f934.png)



S3 Path を次のように指定します。

```
s3://datazone-proj-sr2ioyq4enf7a-1688109875871/order/
```

![image-20230701171848691.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/3a40472d-b2ee-1faa-5e3c-ef94b38294b4.png)



Next

![image-20230701171905502.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/1d187a38-d022-b825-f538-f8719a0941a7.png)



IAM Role を付与して Next

![image-20230701171942989.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/4a6cc475-deee-b9b8-fd44-2ae5e56c8fea.png)



オンデマンドスケジュールで Next 

![image-20230701172026740.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/7f8c7fed-6fd5-6984-3d79-7dfd15264e00.png)



Create crawler を押します。

![image-20230701172048051.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/ab97b555-73be-6766-1911-878627f888ed.png)



手動で Crawler を実行します。

![image-20230701172100284.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/adac2749-bfe4-11d0-ce8f-2e161fa11679.png)



この結果、Table `order` が認識されました。

![image-20230701215839599.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/5150a408-ff9a-b3ab-38ec-c48b39290c29.png)



## Option : Glue Crawler で Table が登録されなかったとき

Lake Formation の画面を開く

![image-20230701172531061.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/b6fa9f7b-487f-01c7-ce20-3e7d6ff354d5.png)



マネージメントコンソールを操作してる IAM Role や User を紐づける

![image-20230701172609570.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/cf204346-7290-fbee-cbd0-63945af5f76b.png)



追加されました。

![image-20230701172627194.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/664bc78b-2c07-6a5a-aefd-251ab0f72076.png)



権限付与した後に、再度 Crawler の実行は不要で、そのまま画面に表示されました。

![image-20230701172706831.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/72683da0-5a43-d58b-4cb0-e60fdc89c128.png)



## sales01 ユーザー: DataZone にデータを Publish

sales01 ユーザーで実行します。DataZone にデータを Publish して、データカタログに登録してみます。

![image-20230701210304854.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/94d352d0-f679-6a6a-1d35-026b005a60a9.png)



Project の中で、Publish Data を押します。

![image-20230701210435251.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/e1153d9d-5c1f-ed33-3421-3941d518376d.png)



データを Publish するときに、Publishing Aggrement を選択します。

![image-20230701210525482.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/6fd3443f-f4ad-3b1b-180f-bfaad89472c5.png)



Data source に、Glue を選択します。そして、Database name に、 Glue 上のデータベース名の「salesproject_pub_db」を指定します。Glue の Data Catalog に自動生成されている Database の名前です。

![image-20230701210844067.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/2f7511f5-698a-098b-e8d7-a9d3c51a3955.png)



Create を押します。

![image-20230701210858404.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/9077e837-9efa-844e-262e-e4155f97d818.png)



REQUESTED となる。数分後、RUNNING となり、

![image-20230701210954374.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/82ebcb34-369b-159d-8360-357a7ed99ec6.png)



数分後、SUCCESS で、Asset: Added が 1 となっていることが確認できます。

![image-20230701215552347.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/91fa4e00-54d6-7830-f0ca-aa3e11258fcc.png)



Publishing Job の結果、Order テーブルが見えています。無事に、Glue DataCatalog 上にある Table が認識されました。

![image-20230701215654919.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/4b258f3a-be05-4014-4ab9-b997407a0532.png)



## sales01 ユーザー : データカタログの編集と申請

認識された order テーブルにわかりやすい日本語の説明を付与して、データカタログに公開します。

![image-20230701215752840.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/06f01bc8-95da-1543-dc5b-89c8611be36b.png)



Edit name and description を押します。

![image-20230701220124576.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/1d0b239c-9096-274f-fc53-370c9e7cda60.png)



このテーブルの日本語名「注文情報」と説明「セールス部門が管理する注文情報」を入れます。

![image-20230701220236228.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/59374509-31c2-b3fd-de96-009bb06087af.png)



名前が変わっています。Add metadata form を押します。

![image-20230701220436833.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/5c31e481-6bf8-48fb-1cac-41c458b39d0e.png)



ビジネス上の専用用語として、事前に登録したセールスを指定します。

![image-20230701220953514.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/a591d099-5d00-8361-87b6-a31df282af37.png)



Edit を押します。

![image-20230701221026138.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/40437564-5d32-6465-8c20-d5ecc44850a3.png)



クリック

![image-20230701221055426.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/ed3b01f4-5fe1-9857-447f-f2cd188fade9.png)



地域に事前定義したアジアを指定します。

![image-20230701221112607.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/968c0abe-24ab-4c0f-c2a0-788cc3f95c4e.png)



アジア 1 つのみ選択可能

![image-20230701221137556.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/36261e7a-0dbb-11e6-a882-38e830765349.png)



同様に区分も指定します。

![image-20230701221207025.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/69fc43e9-1c9d-b214-1a1f-6ee9d8cd90ed.png)



テーブル上のスキーマにも、日本語の説明を入力できます。

![image-20230701221249610.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/5b86bbbd-1604-04f2-a9bc-d77ac199785b.png)



注文番号

![image-20230701221329126.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/82bb1c0d-62ff-2bc6-3acf-76e658100a83.png)



指定できました。

![image-20230701221401449.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/da074ed4-05bf-5692-e60f-05f9d5878c62.png)



Submit for review で、レビュー申請ができます。

![image-20230701221737420.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/03476e86-20a9-5744-da5d-94d2d488ca99.png)



data steward からのレビュー待ちになりました。

![image-20230701221811090.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/6d22810a-3115-5b89-1d57-4e4c1e6e9cec.png)



## steward01 ユーザー : Data Publish のレビュー

Data Steward でログインしたら、トップページにレビュー依頼が来ています。

![image-20230701222726832.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/71facb8b-9090-c7a4-dbfe-c0cce6cceefe.png)



レビューの中で見えるものは以下の情報です。 ※ このテーブルに含まれている実際のデータを確認するには、Athena など直接触らないといけない。DataZone 画面内では確認できない。

- テーブル名
- カラム名

Approve を押します

![image-20230701224016048.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/47c6cf3d-cc59-1cb4-03f0-b89a96925335.png)



公開されました

![image-20230701224104656.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/233def1b-6c56-18d3-4166-44607001d18f.png)



## sales01 ユーザー : Publish されたことを確認

Published になっています。

![image-20230701224221667.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/e1981281-3df9-e4a7-2071-9fb8b2830dcf.png)



DataZone の Data Catalog 上でも、登録した注文情報が登録されていることがわかります。

![image-20230701224334891.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/af4ae39f-482a-9965-f9a6-7ee328cf0e78.png)



## sales01 ユーザー : データカタログを検索

DataZone にログインできる全ユーザーでデータカタログを検索できます。画面上の検索ボックスで、注文を入れると、注文情報が表示されました。

![image-20230701224455049.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/0570e08d-e104-f1d7-4ce5-fbb731a694e8.png)



データカタログ上では、次の情報が確認できます。

- 日本語のテーブルのタイトル
- 日本語のテーブルの説明
- メタデータ
- スキーマ

![image-20230701224513075.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/39a0f498-6239-3b89-33e9-d994bbabe334.png)



# データのサブスクライブ

データのサブスクライブを行い、SQL クエリーを実行できるようにします。

## コンシューマープロジェクトの作成

コンシューマー用のプロジェクトを作成します。

![image-20230701230716803.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/92bb088e-c57c-3945-db4e-27d226eb528c.png)



プロジェクトが作成されました。

![image-20230701231233765.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/b2ba9b18-0ed3-efae-491f-8d16bf784645.png)



メンバーに、market01 ユーザーを追加しました。

![image-20230701231741945.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/56da353d-ef3a-fc47-d59e-1bcb47f53603.png)



## markeing01 ユーザー : データのサブスクライブ

marketing01 ユーザーでログインし、上の検索ボックスで「注文」と検索します。

![image-20230701233223457.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/a66e89e1-a781-f7d9-0d90-c61ae57d5a83.png)



注文情報の内容を確認し、サブスクライブを押します。

![image-20230701233340140.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/eb759903-75cb-7266-dd04-c2cc6610fff1.png)



Subscriebe 先の Project と理由を記載します。

![image-20230701233434912.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/ef6ab7d0-7392-b0c1-39b2-f66b775429c0.png)


Pending : レビュー待ちになりました。

![image-20230701233456352.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/e24b9a0a-cbd0-e848-3372-cb7a7ff4c797.png)



## steward01 ユーザー : Subscribe の承認

Data Steward 側でサブスクライブのリクエストが来ています。

![image-20230701233743687.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/3d4c0f2e-e99f-240e-776b-19d00f1c2b4a.png)



view request で確認します。

![image-20230701234730489.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/d79af8fe-222c-2110-fda6-adeef18c37a9.png)



Approve を押します。

![image-20230701234759741.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/0baab4a6-8b21-f111-8851-959697601a3a.png)



Approved になりました。

![image-20230701234826339.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/ea604dda-1b35-65b7-9991-75656112d8e8.png)



## marketing01 ユーザー : データの確認

サブスクライブ申請元では、承認されており、注文情報が見えます。

![image-20230701235046644.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/8b0fa6b4-7d79-976b-8812-dbb094c3821b.png)



サブスクライブが承認されたことにより、**Athena 上で SQL クエリーが発行できるようになりました。画面右側にある Query data を押します。**

![image-20230701235201969.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f0a3a97d-0668-2098-9b76-139a7ef83841.png)



Athena 上で SQL クエリーが実行可能です。

![image-20230701235313099.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/6341340c-219a-5692-d222-49ae7a92eb2c.png)



このように検索が可能です。

![image-20230701235319498.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/77a5f9e9-4217-6988-1102-b33d5475f437.png)













# 検証を通じてわかったこと

- 1 個の DataZone に複数の AWS アカウントを紐づけることが可能。ただし、同じ Organizations に所属している AWS アカウントである必要があるため、全く関係ない AWS アカウントは紐づけができない。
- DataZone の DataPortal 画面の認証機能は、「AWS IAM 連携」と「IAM Identity Center 連携」の 2 種類となる。
- IAM Identity Center は、1 個の AWS アカウントで 1 リージョンのみ有効化できる。Tokyo Region で有効化していたら、他のリージョンで使えないため注意
- Business Glossary で、社内用語を定義可能。日本語も利用可能。
- データを Publish すると、DataZone にログインできる人全員に対して DataCatalog が公開される。Domain や Project によって制限されない。
- ユーザーがメンバーとして参加していない Project についても、Web UI 上で存在だけは確認できる出来る。
- データのサブスクライブの申請が承認されると、申請元 Project に所属している人全員が Athena で SQL クエリーが発行できるようになる。申請した人ではなく、申請元 Project に紐づく。



# 参考 URL

https://qiita.com/zumax/items/e56e8677f8d8b77d0e00