DataZone で Redshift Serverless のデータカタログを公開する

# はじめに

[Amazon DataZone](https://aws.amazon.com/jp/datazone/) は、AWS、オンプレミス、およびサードパーティのソース全体に保存されているデータを迅速かつ簡単にカタログ化、発見、共有、管理できるようにするデータ管理サービスです。

今回は、Redshift Serverless 上のデータを、DataZone のデータカタログポータルで公開して、利用する流れの手順を確認します。



# DataZone Domain 作成

Amazon DataZone は、SageMaker Unified Studio のサービスの中に統合されています。ただ、SageMaker Unified Studio は利用せず、DataZone 単体で利用が可能です。

Create an DataZone domain を選択します。

![image-20250429172804335.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/e6e76fb7-4f4f-46aa-86d4-2251280135b6.png)



名前などを指定して Create domain を押します。

![image-20250429172911478.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/660b4378-151b-42dc-82cd-43803e048ce7.png)



DataZone の Domain として作成されました。

![image-20250429173011785.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f7b89b09-0606-4cc3-9e96-c4e862576ec8.png)



# BluePrint に関する設定

Redshift Serverless のデータを DataZone で管理するために、Blueprint の設定が必要です。Default Data Warehouse を有効化して、詳細画面を開きます。

![image-20250429182042553.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/969a107a-9b62-419b-90ab-b3abf1d054d5.png)



Parameter sets を Create します。

![image-20250429182101217.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/e40cb1ae-e421-467e-9e0f-42ac8e6b0efb.png)



Redshift Serverless にアクセスするためのユーザー名とパスワードを入れます。

![image-20250429182219263.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/ea1bade5-40ee-4b0f-86ae-1f6cf0d5e57e.png)



Redshift Serverless の Workgroup 名や、Database 名を入力して、Create を押します。複数の Database を利用したい場合は、複数の Parameter Set を作成します。

![image-20250429182411977.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/4d409730-2066-486a-9eec-cc634daa8ce0.png)







# データ公開元 Project

DataZone の Portal サイトを開きます。

![image-20250505160740426.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/acbcd917-3e6b-4f04-b4f4-477001376da0.png)



カタログの公開元として、プロジェクトの作成をします。

![image-20250429180457306.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/12d0bc00-6975-4072-ad5f-e16c3633f585.png)



適当に名前をつけます。

![image-20250429180540636.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/3c64ce51-2144-4b02-8a35-949424b45f75.png)



プロジェクトが作成できました。

![image-20250429180606073.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/a83e436c-a519-47d0-a55e-5f8c9682d6f8.png)



# データ公開元 Project : 環境プロファイルを作成

プロジェクト内で、環境プロファイルを作成します。Redshift Serverless との接続に必要です。

![image-20250429181754858.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/d1a28521-21fb-4cdf-80f9-dc4e2ac07df4.png)



- 作成した Parameter Set を指定
- 「任意のスキーマから公開」を選択することで、`dev` データベース内にあるすべてのスキーマを対象にして、データカタログに追加が可能です。

![image-20250429211002238.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/169656fb-1ea9-4e5c-8d72-ffa084bb1609.png)



# データ公開元 Project : 環境を作成

環境を作成します。

![image-20250429182724278.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f3997dc0-3bde-4efb-b860-909d7186eeb7.png)



内容は変更せず、デフォルトで作成します。

![image-20250429182755278.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/da2f4056-657a-46c3-9639-5a63e5cbd186.png)







# データ公開元 Project : データソースを追加

データソースを追加します。

![image-20250429211318784.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/959aae62-068d-43fb-ba3f-c0fc565626dd.png)



データカタログに追加したいスキーマを指定します。この画像では、`public` を指定していますが、アスタリスクで全スキーマを指定も可能です。

![image-20250429211408893.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/fa77b670-31e7-4360-8184-d0c4d5007bbf.png)



デフォルトのまま次へを押します。

![image-20250429211449793-1746429265112.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/fbc4fc5c-405a-4b42-9baa-37afc107edb6.png)



スケジュールはオンデマンドにします。

![image-20250429211504624.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/428d6188-b808-4343-af56-6974c501669c.png)



実行を押します。

![image-20250429211521063.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/91d7421e-00de-4cb7-8718-2cb48e5ae878.png)



すると、Redshift Serverless にアクセスして、`dev` データベース上のテーブルをスキャンして定義を作ってくれました。

![image-20250429211551745.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/076b1ba7-ca1e-42fe-94fe-de1788b9f154.png)



# データ公開元 Project : ビジネスメタデータの付与

スキャンした定義を基に、日本語でビジネス的な説明文章を入力していきます。データソースを選択します。

![image-20250505124724729.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f6113b22-a5c7-4a8e-b541-2d49817d7352.png)



テーブル名を指定します。

![image-20250505125016101.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/beacd137-8d8e-42e7-b48a-d341e1d2f1c0.png)



生成 AI により、英語の説明文が生成されていますが、日本語で指定したいので、編集を押します。

![image-20250505131558149.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/95ae8676-c392-4237-943d-9002f1464bfc.png)



編集しました。テーブル名や説明を入れました。

![image-20250505131854079.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/375df3b6-5cce-48d4-b9c2-7f336aa66e51.png)



また、各列の情報についても、日本語でテキストを指定可能です。

![image-20250505132435154.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/15215c2b-e429-473c-9975-7a47a58dc767.png)



アセットの公開を押すことで、DataZone のカタログから検索ができるようになります。

![image-20250505132456000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/7a94ec34-4911-4ba1-b299-ee95488d173a.png)



# データ利用ユーザー : 別のユーザーでログインして、カタログを検索する

データを利用する側のユーザーで DataZone にログインします。すでにデータカタログで、検索ができる状態になっています。「購入」というキーワードで検索します。

![image-20250505133605436.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/926d68b4-7b75-488e-b93c-d74f742ee829.png)



顧客管理テーブルが検索に引っ掛かりました。

![image-20250505133717218.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f41ba72b-68e1-4001-96d1-892283a67aa4.png)



開くと、日本語の説明文章が見えます。

![image-20250505133750918.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/73ae8504-77b1-4ecf-8911-f9b8b72ef960.png)



各列についても説明が見えます。

![image-20250505133837578.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/867b1783-7e0e-412e-90a1-68c2e9569cde.png)



# データ利用ユーザー : サブスクライブして、Redshift Serverless のデータをクエリーする。

データ利用ユーザーは、カタログを検索する点に加えて、実際のデータへのアクセスを提供できます。

データ利用側でプロジェクトを作成します。

![image-20250505152825576.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/5a6caaee-6e1d-4b51-a7f4-6d2307a789cc.png)



サブスクライブを押します。

![image-20250505152743029.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f938039f-ed77-42ea-9efe-2ef8548277c1.png)



コメントもつけながら、プロジェクトに紐づける申請をします。

![image-20250505152857882.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/c7091ed6-59fb-4d04-a745-6f8c48d98639.png)



データ提供側の Project で、リクエストを確認できます。

![image-20250505153206557.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/accfe874-c073-47d1-9ac8-0bb65c55e37e.png)



承認をおします。

![image-20250505153250660.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/79f6c7f1-38d5-434b-b571-055a0a738697.png)



利用者側では、承認されたサブスクライブしたデータを確認できます。

![image-20250505153754616.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/08b32290-57af-471d-8842-7bad1432483c.png)



環境へアセットを追加を押します。

![image-20250505153815812.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/ae968be5-be8b-4d3a-8834-2c81ecb7586a.png)



追加を押します。

![image-20250505153853551.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/c2bf6efb-808d-4600-9dad-ce6f3a017581.png)



すると、画面右に Query data の欄が見えてきます。

![image-20250505154428532.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/855391e7-6ba3-4aa8-b83e-6eecc2824349.png)



Redshift の Query Editor 画面を開けます。

- 専用の権限付与がされている。
  - DataZone でアクセス権限を付与したデータ以外は見れない
  - アクセス権限を付与したテーブルに直接閲覧できるわけではなく、Redshift Serverless 上に専用のスキーマと View が用意されていて、それを経由してデータの閲覧が可能
  - この View 以外はアクセスは出来ない

![image-20250505154148450.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/40916d21-0d45-4c62-b0e0-6d24d76fec76.png)



# Tips : 生成 AI による説明

説明を生成を押してみる

![image-20250505125155057.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/11fec099-04d1-46f4-8c4c-734e80a8548b.png)



テーブル全体の概要が英語で生成されている。

![image-20250505131424989.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/bd2ff4db-8818-4d80-9e9c-5af8b9c4e16b.png)



各列の説明についても、英語で生成されている。

![image-20250505131437014.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/88f5e25d-ef6a-453a-a1e2-2025d15a55c1.png)



# Tips : QuickSight と見比べる

## 管理者側でデータを作成

管理者側で QuickSight 上で Redshift Serverless に接続

![image-20250505135007320.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f3ba8cc0-369f-4744-b118-d81deabdba70.png)



どのスキーマ、テーブルにするか選択

![image-20250505135048443.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/849e0c12-5ddf-4192-9aed-7a71debadc40.png)



Redshift Serverless の列名を QuickSight 上で利用が可能。

![image-20250505135137932.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/69a7957b-83e5-4dad-8237-d10b1de1b185.png)



## User 側で利用

QuickSight のユーザー側としては、管理者が準備したデータセットを利用して独自の可視化を行うことが考えられる。

![image-20250505151703814.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/cfa75344-ad35-4747-a087-321f436bc35d.png)

この `customer_sample` に紐づくデータの意味を DataZone から確認可能。

![image-20250505151808461.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/1ab51040-d363-4292-ac5f-dd3b3e832a08.png)



DataZone でビジネス的な意味を確認しながら、QuickSight でダッシュボードを作成可能

![image-20250505151829567.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/683f36ca-a7b0-4290-962b-e37098c4510e.png)



QuickSight 上で列名を見て、DataZone と見比べながら可視化を進めることができる。

![image-20250505152056273.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/f317f802-8b86-45e0-8b88-97dc057c364a.png)





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

- DataZone は単体でも利用できるが、SageMaker Unified Studio に DataZone が統合するパターンも選択可能
- SageMaker AI は従来の SageMaker。SageMaker Unified Studio はデータや機械学習を活かした統合スイート
- SageMaker Unified Studio 自体は英語 Only なので、これを DataZone の代わりとして日本語 Native の方が利用するのは難しそう
- SageMaker Unified Studio 自体は、データエンジニアや機械学習エンジニア向けだったりするので、ビジネス向けには DataZone 単体で利用するのが良さそう。
- Datazone から Redshift へ接続する際の設定は大きくわけて以下の 2 つがある
  - BluePrint 内の Parameter Set : Redshift のデータベース名を 1 つだけ指定が可能。表現を変えると、Datazone で管理したい データベースが複数あると、Parameter Set を複数定義が必要となる。
  - データソース : 上記の Parameter Set に紐づく形で指定する。1 個のデータベース内で利用するスキーマを指定する。アスタリスクが指定可能なので、全てのスキーマを指定可能。
- DataZone の認証は、以下の 2 パターンから指定可能。組織内に展開するには全ユーザーに IAM を配布するのは考えにくいので、AWS Identity Center や、それと連携する SAML が考えられる。
  - IAM Identity Center
  - IAM
- DataZone と QuickSight が直接的に連携しているわけではない。ただし、Redshift Serverless の技術的なテーブル名に紐づくビジネス的な意味を検索できるため、新たなダッシュボードを作るときに参考にできるはず。



# 参考 URL

https://catalog.us-east-1.prod.workshops.aws/workshops/c7b9d931-6d86-4994-99e5-77ada5aaffbc/ja-JP

https://dev.classmethod.jp/articles/datazone_rsserverless/