Amazon DataZoneにRedshiftクラスターのテーブルを読み込んでみた

2023.05.08

どーも、データアナリティクス事業本部コンサルティングチームのsutoです。

Amazon DataZoneに読み込めるデータソースにはGlueデータカタログの他にAmazon Redshiftがあるので、実際にクラスター内のテーブルを読み込んでDataZoneポータルに表示されるメタデータを確認してみたいと思います。

本記事をご覧になる前に

  • 本記事は、Amazon DataZoneのパブリックプレビュー段階で検証した内容です。GA時には本記事で記載した検証結果や前提条件が異なる可能性がありますのでご注意ください。

準備

  • Datazoneドメインとプロジェクトはus-east-1(バージニア北部)で作成している状態としています

  • 前段としてRedshiftクラスター(provisioned クラスター)を作成しておきます
    • パブリックプレビュー時点では、Redshift Serverlessへのデータアセット連携設定はDatazoneコンソール画面上で作成することはサポートされていなかったので、provisioned クラスターで検証しました
    • またパブリックプレビュー時点で別リージョンのRedshiftクラスターへの連携もサポートされていないため、クラスターはus-east-1(バージニア北部)で作成しています
  • 作成したRedshiftクラスターには、Amazon Redshift Serverlessデータ分析セルフハンズオンでも使用されている米国交通統計局(https://www.bts.gov/)が公開している米国内の飛行機国内線の発着データを使い、以下のようにスキーマとテーブル(cm-suto.flightdata)を作成しました

  • 後述のDatazoneデータソース追加時、Redshift用にGlue接続を作成することになり、その際にプライベートサブネットを指定しているためGlue〜Redshiftの通信用にS3(GW型)のVPCエンドポイントを作成しておく必要があったため以下のように準備しました

Datazoneドメインにデータソース追加

  • Datazoneコンソール画面から作成済みのドメインを選択し詳細画面に移動、「データソース」タブをクリックして「データソースの作成」を選択します
  • 以下キャプチャ画面のようにデータソースタイプに「Amazon Redshift」を選択し、Glue接続、必要な各種IAMロールの新規作成を伴うかたちでパラメータを入力していき、「データソースの作成」をクリックして設定追加します

これでDatazoneドメイン内のプロジェクトにRedshiftクラスターのデータベース「dev」配下の情報を取り込むことができるようになりました

DatazoneプロジェクトにRedshiftテーブルのメタデータをパブリッシュ

  • 次にDatazoneポータル画面を開き、自身の作成済みのプロジェクトから「PUBLISH DATA」を選択
  • 作成画面に遷移したら以下のようにパラメータを入力していき、最後に「CREATE PUBLISH JOB」をクリック
    • 今回、Data selectionでは作成したテーブルのみ(cm-suto.flightdata)を取り込み対象に指定しています

  • すぐにパブリッシュジョブが実行され、ステータスが「SUCCESS」となったことを確認後プロジェクトの「PUBLISH DATA」タブから一覧に「dev_cm_suto_flightdata」というデータアセット名が作られていました

  • メッセージにあるとおり「SET ASSET TO ACTIVE」をクリック、bisiness nameとdescriptionを設定して以下の画面表示となりました

  • 「SET ASSET TO ACTIVE」をクリックしてパブリッシュを承認することでデータカタログ画面やデータ検索でflightdataの情報が表示されるようになります

  • DatazoneのRedshift連携のの仕組みとしては、データソースとパブリッシュジョブの設定の実態は裏でGlueクローラーの設定と実行からGlueデータベースとテーブルの作成がされているようでした
    • イベントセッションで拝見した図だとRedshiftは直接接続による連携ができるように見えていましたが、実際はGlue接続を介してクローラーによって生成されたGlueテーブルをデータソースとしてメタデータを取り込んでいるようです

さいごに

これまでにGlueテーブルとRedshiftテーブルを実際に連携する検証してみて、Glueクローラーによって作られたテーブル情報やプロパティ情報を自動で取り込むことが確認できました。

さらにデータの意味を知るためのカタログツールとするためには、Datazoneポータルの「Catalog management」というメニューから独自でビジネス用語(Business glossary)とメタデータフォームを作り込んで各データアセットに付与していく運用が必要になりそうです。

その点でいえば他のデータカタログツール製品と同じに感じますが、IAMやAWS SSOのサービスを駆使したポータル画面操作の認証、認可、パーミッション管理といったサービス側セキュリティおよびデータ共有の細かな権限設定などといったガバナンス面においては強みがあるのがポイントですね。