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

by 桑島義行 | 2021年01月08日

はじめに

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

docs.aws.amazon.com

CDataでは、GlueおよびGlue Studio にて、会計・CRM・ERP・MA・グループフェアなどの多種多様なSaaSやNoSQLデータベースからデータを抽出できるカスタムコネクタの提供を開始しました。

www.cdata.com

本記事では、Glue Studio、および、CData Glue Connectors製品を使ってSalesforceのデータを抽出してS3バケットに格納するジョブの作成方法をご紹介します。

f:id:kuwazzy:20210108121922p:plain

前提

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

手順

IAMロールの作成

Glueジョブを作成する時に以下のアクセス権限を保有するIAMロールが必要となります。

  • AWSGlueServiceRole
  • AmazonEC2ContainerRegistryReadOnly
  • AmazonS3FullAccess

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

f:id:kuwazzy:20210108123646p:plain

CData Glue Connector for Salesforceのサブスクライブ

こちらのリンクからAWS MarketPlaceにアクセスして、CData AWS Glue Connector for Salesforceを選択します。

f:id:kuwazzy:20210108124013p:plain

Continue to Subscribeボタンをクリックします。

f:id:kuwazzy:20210108124159p:plain

Termsを確認して、再度、活性化されたContinue to Subscribeボタンをクリックします。Continue to Configurationボタンをクリックします。 ※課金されますのでご注意ください

f:id:kuwazzy:20210108124726p:plain

Configure this software画面が表示されるので、Delivery MethodにはCData AWS Glue Connector for Salesforceが、Software Versionに最新のものが選択されていることを確認して、Continue to Launchボタンをクリックします。

f:id:kuwazzy:20210108124843p:plain

CData AWS Glue Connector for SalesforceがLaunchされたことを確認します。

f:id:kuwazzy:20210108125106p:plain

Usage Instructionsボタンをクリックして表示されるウィンドウ内の「Activate the connector with AWS Glue Studio」リンクを開きます。

f:id:kuwazzy:20210108125357p:plain

Create connection画面が開くので、Activate connector onlyをクリックします。これで、Glue StudioからCData Glue Connector for Salesforceが利用できるようになりました。

Connectionの作成

AWS Glue StudioのConnectors画面で、connectorsからCData Glue Connector for Salesforceを選択してCreate connectionを開きます。

f:id:kuwazzy:20210108143900p:plain

Create connection画面が開きます。Nameに任意の名称(本例では、Salesforce_Jp)をセットします。

f:id:kuwazzy:20210108144313p:plain

スクロールダウンして、Connection credential typeには「username_password」を選択します。

f:id:kuwazzy:20210108144137p:plain

Credentialsには以下の値をセットします。

Placeholder value
${Username} Salesforceへのログインユーザー
${Password} Salesforceへのログインパスワード
${SecurityToken} Salesforceのセキュリティトークン

※セキュリティトークンの取得方法はこちらの記事をご参照ください

Create connecitonボタンをクリックします。

Jobの作成

AWS Glue StudioのJobを開き、Create jobからBlank graphを選択してCreateボタンをクリックします。

f:id:kuwazzy:20210108144404p:plain

Visualキャンバス上の青のプラスボタンをクリックしてNodeを追加します。追加したNodeのNode propertiesタブにてNameに任意の名称(本例では、Salesforce)をセットしてNode typeにはCData AWS Glue Connector for Salesforceを選択します。

f:id:kuwazzy:20210108140536p:plain

続いてData source properties - Connectorタブを開きます。Connectionには前の手順で作成したConnection(例:Salesforce_Jp)を選択します。今回の手順では、Lead(見込み客)のデータを全件取得するため、Enter table nameを選択してTable nameにはLeadをセットします。

f:id:kuwazzy:20210108140456p:plain

再度、Visualキャンバス上の青のプラスボタンをクリックしてNodeを追加します。Node propertiesタブのNameには任意の名称(本例では、S3)をセットして、Node typeはData target内のS3を選択します。Node parentsは先の手順で作成したSalesforceからの抽出Node(Salesforce)です。

f:id:kuwazzy:20210108140913p:plain

Data target properties -S3タブを開きます。FormatはJSON、Compression TypeはNone(圧縮しない)、S3 Target Locationには、出力先のS3バケットをセットします。

f:id:kuwazzy:20210108141737p:plain

続いて、Job detailsタブを開きます。Nameにジョブの名称(本例では、Salesforce2S3)をセットして、IAM Roleは先の手順で作成したIAMロールを選択します。他の項目はデフォルトのままで構いません。SaveボタンをクリックしてJobを保存します。

f:id:kuwazzy:20210108141255p:plain

Jobの実行

それでは、作成したJobを実行(Run)してみましょう。右上のRunボタンをクリックします。

f:id:kuwazzy:20210108141925p:plain

Runsタブを開きジョブの実行状況を確認します。ジョブが終了してRun statusがSucceededが表示されれば成功です。失敗した場合は本画面からLogを確認することが出来ます。

f:id:kuwazzy:20210108142231p:plain

S3へ連携されたデータの確認

上記Jobで出力先として設定したS3のバケットを開きます。バケット内にオブジェクトが追加されていることを確認します。

f:id:kuwazzy:20210108142633p:plain

追加されたオブジェクトのデータをS3 Selectを使用したクエリで参照します。

f:id:kuwazzy:20210108142811p:plain

ジョブのTargetNode(S3)で形式をJSONに選択したので、入力設定の形式もJSONに合わせます。

f:id:kuwazzy:20210108144600p:plain

以下のSQLクエリを実行します。

SELECT * FROM s3object s LIMIT 5

クエリ結果でフォーマット済みを選択して、SalesforceのLead(見込み客)のデータが抽出出来ていることを確認します。

f:id:kuwazzy:20210108143212p:plain

まとめ

本記事では、SalesforceのLead(見込み客)の抽出を例にご紹介しましたが、Salesforce内の他オブジェクト(AccountやOpportunityなど)や、本サイトの様々なデータソース(Hubspot、Netsuite、MongoDB、Snowflakeなど)からの抽出も同様の手順で可能です。

f:id:kuwazzy:20210108143524p:plain

是非、GlueおよびGlueStudioを利用してデータレイクを構築している方はご活用ください。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。