3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Salesforce Data Cloud における Snowflake との Zero Copy Integration (ゼロコピー統合)の構築手順

Last updated at Posted at 2024-09-08

概要

Salesforce Data Cloud における Snowflake との Zero Copy Integration (ゼロコピー統合)の構築手順を検証したため共有します。今回の検証では、 Salesforce の Trailhead で構築できる環境と Snowflake のトライアル環境で実施しています。

Zero Copy Integration (ゼロコピー統合)を実施することは簡単ですが、セキュリティ要件を満たしているかを確認してから本番利用を開始してください。Saleforce <-> Snowflake の連絡をセキュアに実施する必要があるのですが、現時点では下記の記載があるようにプライベート接続している Snowflake では利用できないようです。 Salesforce 上のデータは企業にとっては大切なデータが格納されていることがあり、データ流出などのリスクなどを適切に評価することが重要です。

AWS Private Link、Azure Private Link、Google Cloud Private Service Connect などのプライベート接続を使用して Snowflake をリリースしている場合は、データ共有を使用できません。

引用元:「Share Data with Snowflake Using Zero Copy Integration (Z Zero コピーインテグレーションを使用した Snowflake とのデータの共有)」 (salesforce.com)

基本的な知識

Salesforce における Zero Copy Integration とは

Zero Copy Integration については、下記の記事が参考になります。他のクラウドサービスとの連携も実施できるようになるようですが、現時点では BigQuery 、Snowflake、及び、 Amazon Redshift がサポートされているようです。

image.png

引用元:Salesforce、「Zero Copy Partner Network」を発表 - Salesforce

実施手順

実施手順として下記の手順が Salesforce のドキュメントにて紹介されています。

  1. Snowflake からのユーザーログイン情報の取得 (salesforce.com)
  2. データ共有対象の作成と Snowflake との接続 (salesforce.com)

下記の動画がステップごとに紹介されているため参考になりためです。最初が BigQuery の手順紹介であり、11分15秒あたりから Snowflake での手順が紹介されています。

実施手順

1. 環境の準備

1-1. Salesforce Data Cloud 環境の準備

無料の Trailblazer アカウントを作成してください。

image.png

引用元:Log in (salesforce.com)

はじめての Data Cloud Developer Edition というモジュールの上部にて、Data Cloud Developer Edition を構築します。

image.png

引用元:Get Started with Data Cloud Developer Edition | Salesforce Trailhead

作成された環境におけるインスタスの場所を確認してください。そのインスタンスの場所に応じて、 Snowflake にてリージョンを選択する必要があります。確認する方法としては、 Salesforce にログイン後、 Setup -> Company Information で表示された画面における右下の instace (例:Instance EU55)で確認できます。環境に構築タイミングなどの要因により、 EU に割り振られる方と US に割り振られる方がいるようです。

image.png

1-2. Snowflake 環境の準備

下記のリンク先から Snowfalke のトライアル環境を申し込みます。

image.png

引用元:Snowflake Trial

クラウドリージョンを選択する画面にて、 Salesforce の環境が EU55 であることから、 AWS の EU (Frankfurt)で構築しました。

image.png

引用元:Snowflake Trial

下記のような内容のメールが届くため、クリックしてユーザーを作成すると Snowflake を利用できるようになります。

image.png

US リージョンに Salesforce 環境が構築された方は、下記のドキュメントを参考に Snowflake のクラウドリージョンを選択してください。

image.png

引用元:Data Cloud で Snowflake がサポートされる領域 (salesforce.com)

対応していないリージョンの Snowflake を Data Share Target で指定しようとすると下記のようなエラーが発生します。

We currently do not support the region your Snowflake account is in. Contact your Salesforce Admin for the list of supported Snowflake regions.

image.png

2. Snowflake にて認証情報の作成

2-1. Snowflake にログイン後に右上の+ Create -> SQL Worksheetを選択

image.png

2-2. 下記の SQL を記述して、そのコードを選択した上で実行してユーザーを作成

CREATE OR REPLACE USER sf_data_cloud 
  PASSWORD = '+U8Xi0VWdUmazDnP8ffFKsC2bRE='
  LOGIN_NAME = 'sf_data_cloud'
  DISPLAY_NAME = 'sf_data_cloud'
  FIRST_NAME = 'sf_data_cloud'
  MIDDLE_NAME = 'sf_data_cloud'
  LAST_NAME = 'sf_data_cloud'
  EMAIL = 'manabian.test@test.com'
  DEFAULT_ROLE = 'PUBLIC';

image.png

2-3. 下記の SQL を記述して、そのコードを選択した上で実行して認証情報を作成

CREATE OR REPLACE SECURITY INTEGRATION
  SFDATACLOUD
  TYPE = OAUTH
  OAUTH_CLIENT = CUSTOM
  OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
  OAUTH_REDIRECT_URI = 'https://login.salesforce.com/services/cdpSnowflakeOAuthCallback'
  ENABLED = TRUE 
  OAUTH_ISSUE_REFRESH_TOKENS = TRUE; 

image.png

2-4. 下記の SQL を記述して、そのコードを選択した上で実行してOAUTH_AUTHORIZATION_ENDPOINT列の値をコピー

DESC SECURITY INTEGRATION SFDATACLOUD;

image.png

2-5. 下記の SQL を記述して、そのコードを選択した上で実行して認証情報

SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS( 'SFDATACLOUD');

image.png

下記のような json 形式で出力され、OAUTH_CLIENT_IDOAUTH_CLIENT_SECRETの値をコピーする。

{"OAUTH_CLIENT_SECRET_2":"XXX","OAUTH_CLIENT_SECRET":"YYY","OAUTH_CLIENT_ID":"ZZZ"}

3. (省略可能)共有するオブジェクトの定義

3-1. Salesforce Data Cloud にて、Data StreamsタブにてNewを選択

image.png

3-2. Salesforce CRMを選択してNext をクリック

image.png

3-3. Salesを選択してNextをクリック

image.png

3-4. Nextをクリック

image.png

3-5. Deployをクリック

image.png

3-6. 作成されたLead Homeという Data Stream を選択

image.png

3-7. 右側にあるRefresh Nowを選択

image.png

3-8. SatatusSuccessになるまで待機

image.png

3-9. Query EditorタブにてNewを選択

image.png

3-10. 適当なクエリ名を入力した上でSaveを選択

image.png

3-11. Leadの右側の矢じり(▼) -> Create Query(*)を選択し、表示されたクエリにてRun Queryを選択後にデータが表示されることを確認

image.png

4. Salesforce Data Cloud にて Data Share Targets の作成

4-1. Data Share Targetsタブにて右側のNewを選択

image.png

4-2. Snowflakeを選択した上でNextを選択

image.png

4-3. Account URLに 2-4 の手順で取得した URL の一部を記述

2-4 の手順で取得した URL の/oauth/authorizeを除いた URL を記述します。

image.png

2-4 では下記の修正前の URL が取得できますが、 /oauth/authorizeの部分は不要であるためその箇所を取り除きます。

修正前)https://rd15062.eu-central-1.snowflakecomputing.com/oauth/authorize
修正後)https://rd15062.eu-central-1.snowflakecomputing.com

/oauth/authorizeを含めた場合にはAuthentication Statuserrorとなってしまうため、Data Share Targets を再作成してください。

image.png

4-4. Labelに適当な名前を設定後、Cilent IDClient Sercretに 2-5 で取得した値を入力しSaveを選択

image.png

4-5. Snowflake のログイン画面に遷移するため、 2-2 の手順で作成したユーザーでログイン

image.png

4-6. 許可を選択

image.png

4-7. Authentication StatusSuccessfulであることを確認

image.png

5. Salesforce Data Cloud にて Data Share の作成

5-1. Data SharesタブにてNewを選択

image.png

5-2. Label に適当な名前を入力しNextを選択

image.png

5-3. Leadを選択しSaveを選択

image.png

5-4. 作成された Data Share にてLink/unlink Data Share Targetを選択

image.png

5-5. 作成した Data Share Target を選択した上でSaveを選択

image.png

5-6. Data Share StatusActiveになるまで待機

image.png

5-7. Snowflake の画面に移動し、Private Sharringタブにて作成した Data Share の名前で始まるオブジェクト(例snowflake_share_01*)のダウンロードボタン(Get Data)を選択

image.png

5-8. View Databaseを選択

image.png

5-9. Get Dataを選択

image.png

5-10. データベースにオブジェクトが追加されたことを確認

image.png

5-11. 共有した Lead のデータを取得することを確認

image.png

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?