Glue DataBrewからRedshiftに接続してみた

2020.12.17

データアナリティクス(DA)事業本部の川崎です。

先日、コードを書かずに「データ前処理」を実行できる、ビジュアルデータ準備ツール Glue DataBrewがリリースされました。

まずは、普段使っているRedshiftに接続してみよう、ということで試してみました。

事前準備

事前準備として、Redshiftでサンプルデータの「tickit」をロードしておきます。

また、GlueからRedshiftに接続するためには、「自己参照ルール」を作成したセキュリティグループを、Redshiftに設定しておく必要があります。

【参考】JDBC データストアに接続するための VPC の設定

Glueコンソールで「接続」「テーブル」を用意する

DataBrewから、Redshiftに接続するためには、 Glueコンソール側で「接続」「テーブル」を用意しておきます。

「接続の追加」画面で、接続のプロパティを設定します。接続タイプは「Amazon Redshift」を選択します。「次へ」をクリックします。

データストアへのアクセスを設定します。 クラスターを選択肢から選び、データベース名、ユーザー名、パスワードを入力します。 「次へ」をクリックします。 次の確認画面で「完了」をクリックします。

作成した「接続」を選択し、「接続のテスト」を行います。 事前に作成しておいたIAMロール「AWSGlueServiceRole-xxx」を適用します。 「接続のテスト」をクリックします。

「テーブル」をクリックし、「テーブルの追加」から 「クローラを使用してテーブルを追加」を選択します。

「クローラの追加」画面で、クローラの名前を入力し、「次へ」をクリックします。

「Specify crawler source type」画面で、それぞれデフォルトのラジオボタンが選択されている状態で、「次へ」をクリックします。

「データストアの追加」画面で 「データストアの選択」として 「JDBC」を選択。

「接続」から先ほど作成した選択肢を選びます。 インクルードパスは、今回は「dev/tickit/%」とします。(Redshiftのサンプルデータベース「tickit」の各テーブル)

別のデータストアの追加画面では「いいえ」を選択。

「IAM ロールの選択」画面で、「接続のテスト」で利用したIAMロール「AWSGlueServiceRole-xxx」を選択します。

「このクローラのスケジュールを設定する」画面で頻度「オンデマンド」が選択された状態で「次へ」をクリックします。 確認画面が表示されるので、内容を確認し「完了」をクリックします。

作成したクローラをチェックした状態で「クローラの実行」をクリックします。数分ほど待つとクローラの実行が完了し、テーブルが作成されます。

DataBrewでプロジェクト作成

ここまでできたら、DataBrewの画面に移動します。 「プロジェクトを作成」をクリックします。

プロジェクト名を入力します。 有効な文字は、英数字 (A~Z、a~z、0~9)、ハイフン (-)、ピリオド (.)、およびスペースです。

「新しいデータセット」を選択し、データセット名を入力します。

「Amazon Redshift テーブル」を選択し、一覧で表示される、先ほど作成した「データベース」を選択します。 次いで、テーブル一覧が表示されるので、テーブル名をクリックします。 今回の手順に従うと「dev_tickit_users」というテーブル名になります。

ソースに「Amazon Redshift」を選択した際は、「S3 送信先」として、S3バケットのパスを入力する必要があります。

サンプリングのオプションは選択肢からお選びください。 ここではデフォルトの「最初のn行」「500」としてあります。

「アクセス許可」は、一旦「新しいIAMロールを作成」を選んでIAMロールを作成します。 「AWSGlueDataBrewServiceRole-xxx」という名前でIAMロールが作成されますので、 それを選択します。

画面一番下の「プロジェクトを作成」をクリックします。

コンピューティングのプロビジョニングが開始され、順次処理が行われます。

処理が完了すると、データセットの内容が画面に表示されます。初期画面の「グリッド」タブでは、スプレッドシートのような表示画面になります。

「スキーマ」のタブをクリックすると、各カラムの内容と、値の分散がグラフィカルに表示されます。

以上で、DataBrewでRedshiftのデータを利用する準備が整いました。

まとめ

ビジュアルデータ準備ツール「Glue DataBrew」で、 Redshiftのサンプルデータを取り込み、表示するところまでを試してみました。

SQLを使ったデータ探索の場合と比較して、 直感的な理解を促進する内容になっていると思います。

また、「Glue DataBrew」は使っただけの課金となりますので、手軽に試してみることができるのもメリットだと考えています。