AWS Glue Studio で Salesforceのデータを取得・処理:CData Connect Cloud

杉本和也 | 2022年06月28日

こんにちは。CData Software Japan リードエンジニアの杉本です。

今回はAWS Glue 向けコネクターとして新しくラインナップに加わった「CData AWS Glue Connector for CData Connect」の使い方を紹介したいと思います!

CData AWS Glue Connector for CData Connect

AWS Glue 向けのコネクターは今まで以下の記事で紹介しているような形で、内部的にはJDBCを利用したものとして提供していました。

AWS Glue Studio でSalesforce→S3 データ連携ジョブを作成

ただ、AWS上でライブラリがマネージされている関係上、トライアルやアップデートなどの部分で敷居が高い部分がありました。

それが、今回新しくCData Connectというクラウド版のコネクタとハイブリッドで利用する「CData AWS Glue Connector for CData Connect」がリリースされ、より使いやすく・試しやすくなったので、AWS Glue Studio 上での使い方を紹介したいと思います!

CData Connect Help : AWS Glue

CData Connect とは?

CData Connect は今回紹介するGlue を筆頭に、Google スプレッドシートやExcel 365 などのクラウド上のスプレッドシート、Tableau Online、Google データポータル、Amazon QuickSight などのクラウドBI、Power Apps、AppSheet、OutSystems などのローコード / ノーコードツールから100種類以上のSaaS にAPI コーディングなしで接続することが可能になるData Connectivity as a Service です。

データソースはSalesforce、Dynamics 365、NetSuite、Adobe Marketo Engage、Salesforce Marketing Cloud Account Engagement(旧Pardot)、kintone、SharePoint などあらゆる業務SaaS に対応しています。

AWS Glue Studio とは?

Glue Studioは、AWSの完全マネージド型ETLサービスをGUIからジョブを作成できる機能です。

https://docs.aws.amazon.com/ja_jp/glue/latest/ug/what-is-glue-studio.html

従来はAWS Glue のジョブをPythonなどのプログラミング言語を用いて実装する必要がありましたが、このAWS Glue Studioによりローコードでデータ処理のプロセスを記述できるようになりました。

今回はこのAWS Glue Studioを「CData AWS Glue Connector for CData Connect」を使って、Salesforceからデータを取得し、Amazon S3にデータを出力するジョブを作成してみたいと思います。

前提

- SalesforceのAPIアクセスできるアカウントを保有していること
- AWSのアカウントを保有していること
- AWS MarketplaceでCData Glue Connectors 製品をサブスクライブできること

手順

CData Connectのセットアップ

まずは、CData Connect側のセットアップを行います。

「CData AWS Glue Connector for CData Connect」は前述のCData Connectという製品と組み合わせ利用します。

なので予めこちらの記事を参考にトライアル環境を取得しておきましょう。

CData Connect のアカウント作成方法

トライアル環境を取得したら、Salesforceへの接続を追加します。「Connections」→「+Add Connection」をクリックし

データソースの一覧から「Salesforce」を選択します。

以下のような接続設定画面が表示されるので「Sign in」をクリックしましょう。

ブラウザでSalesforceへのログインが求められるので、対象となるSalesforceアカウントでログインします。

これで接続設定の追加は完了です。

Data Explorer でデータを確認する

接続設定が完了したら、実際にSalesforceからどのようなデータが取得できるか「Data Explorer」を使って確認してみましょう。

「Data Explorer」に移動し、先程作成したConnectionを選択します。するとSalesforceのオブジェクト一覧が表示されるので、クエリエディターにドラッグ・アンド・ドロップで配置しましょう。

自動的にSQLが生成されるので、あとは「Execute」ボタンをクリックするだけで、データの確認ができます。このようにCData ConnectではSQLベースで様々なデータに対して統一的にアクセスすることが可能になっています。

PAT(Personal Access Token)の取得

AWS Glue から CData ConnectへアクセスするためのPAT(Personal Access Token)も作成しておきます。

画面右上のユーザー名のメニューから「Settings」に移動し

「Access Tokens」タブで「+ Create PAT」をクリックします。

任意の名称を入力し、「Create」をクリック

その後、PATが生成されるので、これを保存しておきます。

以上でCData Connect側の準備は完了です。

IAMロールの作成

続いてGlue側の手順を進めていきます。

まず、Glueジョブを作成する時に以下のアクセス権限を保有するIAMロールが必要となるので、事前に作成しておきましょう。

- AWSGlueServiceRole
- AmazonEC2ContainerRegistryReadOnly
- AmazonS3FullAccess

AWSマネジメントコンソールから「Identity and Access Management (IAM)」サービスを開いて上記アクセス権限を持つIAMロールを作成しておきます。

CData AWS Glue Connector for CData Connect をサブスクライブ

続いて、Glue上でCData Connectの接続を利用するための「CData AWS Glue Connector for CData Connect」を追加します。

以下のAWS Marketplace のリンクへ移動し「Continue to Subscribe」をクリックします。

CData AWS Glue Connector for CData Connect

「Terms and Conditions」を確認の上「Continue to Configuration」をクリックします。

Glue ConnectorのVersionなどを選択する画面が表示されますが、今のところデフォルトで大丈夫です。

そのまま「Continue to Launch」をクリックしましょう。

あとは「Usage instractuions」から

「Activate the connector with AWS Glue Studio」をクリックすれば、AWS Glue Studio上にConnectorが追加されます。

ConnectorにConnection情報を追加

続いて「CData AWS Glue Connector for CData Connect 」にCData Connectへの接続情報を追加します。

「Activate the connector with AWS Glue Studio」リンクをクリック後、以下のような画面が表示されるので、任意のConnection名と接続情報を入力します。

・Connection credential type:「connect_cloud」を選択
・AWS Secret:空白のままでOKです。
・Username:CData Connectへのログインユーザー名を指定します。
・Password:CData Connect で予め作成したPATを指定します。
・defaultCatalog:CData Connectで構成した接続情報、例えばSalesforce1を指定します。

入力後「Create connection and activate connector」をクリックすれば、以下のようにConnectionが追加されます。

ジョブの作成

これで、AWS Glue Studio上で使う準備が整いました。それでは作成したConnection情報を使って、ジョブを作成してみましょう。

「Create job」の画面で「Visual with a source and target」を選択し、Sourceでは「CData AWS Glue Connector for CData Connect 」、Targetを「Amazon S3」に指定して作成します。

最初にCData Connectの設定です。先程作成したConnectionを指定の上、Salesforceから取得したデータのテーブル名を入力します。

次に、出力先となるAmazon S3への設定、出力フォーマットやS3のLocationを指定します。

Job detailsで「IAM Role」から、事前に作成しておいたロールを選択します。

マッピングの調整

続いてマッピングを調整していきましょう。まず取得するデータの確認です。

「CData AWS Glue Connector for CData Connect 」のData previewタブに移動して「Start data preview session」をクリックし、対象となるRoleを選択することで、実際に取得されるデータが確認できます。

以下のようにデータプレビューが表示できればOKです。

次に「Output schema」のタブに移動して「Use datapreview schema」を使って、プレビュー結果を元にスキーマの検出を行います。

一度スキーマ検出をしてしまえば、皇族のMapping部分やS3への出力部分にも自動的にこのスキーマが反映されます。

ジョブの実行

それでは最後に実行してみましょう。AWS Glueではスケジュール実行も可能ですが、今回は「Run」ボタンをクリックして、手動実行してみます。

これで実際にジョブが起動し、Salesforceからデータを取得して、S3にCSVデータを出力する処理が動きます。ジョブの実行状況はMonitoring画面から確認できます。

おわりに

CData Connectを活用することで、様々なデータソースをAWS Glue上で手軽に扱うことができるようになります。

今回はSalesforceで紹介しましたが、ぜひお好みのデータソースでお試しください。