メインコンテンツまでスキップ

Salesforce Data Cloudで横串検索を実行する

この記事では、 Databricksによって管理されていないSalesforce Data Cloudデータに対して横串検索を実行するようにレイクハウスフェデレーションを設定する方法について説明します。 レイクハウスフェデレーションの詳細については、「 レイクハウスフェデレーションとは」を参照してください。

レイクハウスフェデレーションを使用してSalesforce Data Cloudデータベースに接続するには、 Databricks Unity Catalog メタストアに次のものを作成する必要があります。

  • Salesforce Data Cloud データベースへの接続。
  • Salesforce Data CloudUnity Catalog Unity Catalogデータベースを にミラーリングする フォーリンカタログ で、 クエリ構文とデータガバナンスツールを使用してデータベースへのDatabricks ユーザーアクセスを管理できます。

始める前に

ワークスペースの要件:

  • Unity Catalogのワークスペースが有効になっています。

コンピュートの要件:

  • コンピュート・リソースからターゲット・データベース・システムへのネットワーク接続。 「レイクハウスフェデレーションのネットワーキングに関する推奨事項」を参照してください。
  • Databricks コンピュートは、 Databricks Runtime 15.2 以降と Standard または Dedicated アクセス モードを使用する必要があります。
  • SQLウェアハウスは Pro または サーバレスで、2024.30 以上を使用している必要があります。

必要な権限:

  • 接続を作成するには、メタストア管理者か、ワークスペースに接続されているUnity Catalogメタストアの CREATE CONNECTION 権限を持つユーザーである必要があります。
  • フォーリンカタログを作成するには、メタストアに対する CREATE CATALOG 権限を持ち、接続の所有者であるか、接続に対する CREATE FOREIGN CATALOG 権限を持っている必要があります。

追加の権限要件は、以下の各タスクベースのセクションに記載しています。

Salesforce 接続アプリケーションの作成

Salesforce 接続アプリケーションを使用すると、外部アプリケーションを APIs プロトコルと標準プロトコルを使用して Salesforce と統合できます。 このセクションでは、SSO を使用して接続アプリを作成し、Databricks が Salesforce で認証できるようにする方法について説明します。

注記

詳細な手順については、Salesforce Data Cloud ドキュメントの「 接続アプリケーションの作成 」を参照してください。

Salesforce 接続アプリケーションを作成するには、次の手順を実行します。

  1. Data Cloud の右上にある [ 設定 ] をクリックします。

  2. [プラットフォームツール ] で、[ アプリ] > [アプリマネージャー ] をクリックします。

  3. [新しい接続アプリケーション ] をクリックします。

  4. [名前 ] と [Contact Eメール アドレス] を入力します。

  5. OAuth 設定 を有効にします。

    1. コールバック URLhttps://<databricks_instance_url>/login/oauth/salesforce.htmlの形式で入力します。たとえば、 https://cust-success.cloud.databricks.com/login/oauth/salesforce.htmlのようになります。

    2. (オプション)次のステップで SQL を使用して Databricks 接続とフォーリンカタログを作成する予定の場合、Salesforce 接続アプリケーションでリダイレクト URI https://login.salesforce.com/services/oauth2/successもサポートする必要があります。 Catalog Explorer を使用して [ Databricks ] 接続とフォーリンカタログを作成する予定の場合、この操作は必要ありません。 Databricks では、他の方法よりも手動の手順が少なくて済むため、Catalog Explorer の使用をお勧めします。

    3. 次の スコープ を追加します。

      • すべてのデータ クラウド API リソースにアクセス ( cdp_api )
      • APIs( api )によるユーザーデータの管理
      • データクラウドデータに対するANSI SQLクエリの実行( cdp_query_api )
      • いつでもリクエストを実行( 更新、offline_access )
    4. [ 保存 ]をクリックします。

    5. 続行 」をクリックします。

  6. [接続アプリケーションの概要 ] ページで、[ コンシューマの詳細の管理 ] をクリックします。認証を求められます。

  7. 認証が成功すると、 コンシューマキーコンシューマシークレット が表示されます。 これらの値を保存します。 これらは、Databricks 接続を作成するときに必要になります。

Databricks 接続を作成する

接続では、外部データベースシステムにアクセスするためのパスと認証情報を指定します。接続を作成するには、カタログエクスプローラーを使用するか、Databricksノートブックまたは Databricks SQLクエリーエディタで CREATE CONNECTION SQLコマンドを使用できます。

注記

Databricks REST API または Databricks CLI を使用して接続を作成することもできます。 POST /api/2.1/unity-catalog/connections を参照してください。 および Unity Catalog コマンド

必要な権限: メタストア管理者またはCREATE CONNECTION権限を持つユーザー。

  1. Databricks ワークスペースで、カタログアイコン カタログ をクリックします。

  2. [カタログ]ウィンドウの上部にある [追加またはプラスアイコン 追加] アイコンをクリックし、メニューから [ 接続の追加] を選択します。

    または、 クイックアクセス ページから 外部データ > ボタンをクリックし、 接続 タブに移動して 接続を作成 をクリックします。

  3. 接続のセットアップ ウィザードの 接続の基本 ページで、わかりやすい 接続名 を入力します。

  4. [接続の種類 ] で [Salesforce Data Cloud ] を選択します。

  5. (オプション)コメントを追加します。

  6. [ 認証 ] ページで、Salesforce Data Cloud の次の接続プロパティを入力します。

    • (オプション) [サンドボックス] を選択します。
    • クライアント ID : Salesforce 接続アプリケーションのコンシューマキー。
    • クライアントシークレット : Salesforce 接続アプリケーションコンシューマの秘密。
    • クライアントスコープ : cdp_api api cdp_query_api refresh_token offline_access
  7. [ Salesforce でサインイン ] をクリックします。

  8. (OAuthの)SSO 資格情報を使用して Salesforce Data Cloud にサインインするように求められます。

  9. ログインに成功すると、Databricks 接続セットアップ ウィザードに戻ります。[ Salesforce でサインイン ] ボタンが Successfully authorized メッセージに置き換えられました。

  10. 接続の作成 をクリックします。

  11. [カタログの基本 ] ページで、フォーリンカタログの名前を入力します。フォーリンカタログは、外部データ・システム内のデータベースをミラーリングするため、 Databricks と Unity Catalogを使用して、そのデータベース内のデータへのアクセスをクエリおよび管理できます。

  12. Salesforce データスペースを入力します。

  13. (オプション)[ 接続をテスト ]をクリックして、動作することを確認します。

  14. [ カタログを作成 ] をクリックします。

  15. [ アクセス ] ページで、作成したカタログにユーザーがアクセスできるワークスペースを選択します。[ すべてのワークスペースにアクセス権がある ] を選択するか、[ ワークスペースに割り当て ] をクリックし、ワークスペースを選択して [ 割り当て] をクリックします。

  16. カタログ内のすべてのオブジェクトへのアクセスを管理できる 所有者 を変更します。テキスト ボックスにプリンシパルの入力を開始し、返された結果でプリンシパルをクリックします。

  17. カタログに対する 権限を付与 します。[ 許可 ] をクリックします。

    1. カタログ内のオブジェクトにアクセスできる プリンシパル を指定します。テキスト ボックスにプリンシパルの入力を開始し、返された結果でプリンシパルをクリックします。

    2. 各プリンシパルに付与する 権限プリセット を選択します。デフォルトでは、すべてのアカウントユーザーに BROWSE が付与されます。

      • ドロップダウンメニューから「 データ閲覧者 」を選択して、カタログ内のオブジェクトに対する read 権限を付与します。
      • ドロップダウンメニューから「 データエディタ 」を選択して、カタログ内のオブジェクトに対する read 権限と modify 権限を付与します。
      • 付与する権限を手動で選択します。
    3. 付与 をクリックします。

  18. 次へ をクリックします。

  19. [メタデータ] ページで、タグのキーと値のペアを指定します。詳細については、「Unity Catalog セキュリティ保護可能なオブジェクトにタグを適用する」を参照してください。

  20. (オプション)コメントを追加します。

  21. [ 保存 ]をクリックします。

フォーリンカタログの作成

注記

UI を使用してデータソースへの接続を作成する場合は、フォーリンカタログの作成が含まれているため、この手順をスキップできます。

フォーリンカタログは、外部データシステム内のデータベースをミラーリングするため、DatabricksとUnity Catalogを使用して、そのデータベース内のデータへのアクセスを管理できます。フォーリンカタログを作成するには、すでに定義されているデータソースへの接続を使用します。

フォーリンカタログを作成するには、Catalog ExplorerCREATE FOREIGN CATALOGSQL を使用するか、Databricks ノートブックまたは クエリSQL エディターの コマンドを使用します。Databricks REST API または Databricks CLI を使用してカタログを作成することもできます。 POST /api/2.1/unity-catalog/catalogs を参照してください。 および Unity Catalog コマンド

必要な権限: メタストアの CREATE CATALOG 権限、接続の所有権または接続の CREATE FOREIGN CATALOG 権限。

  1. Databricks ワークスペースで、カタログアイコン[カタログ]をクリックして カタログエクスプローラー を開きます。

  2. 右上の [ カタログの作成 ] をクリックします。

  3. Salesforce Data Cloud カタログの次のプロパティを入力します。

    • カタログ名 : カタログのわかりやすい名前。
    • タイプ : Foreign
    • 接続名 : カタログが作成される接続の名前。
    • データスペース : Salesforce データスペース。
  4. 作成 をクリックします。

サポートされているプッシュダウン

次のプッシュダウンがサポートされています。

  • フィルター
  • 予測
  • 上限
  • 集計
  • offset
  • キャスト
  • 含む、開始、終了

データ型マッピング

Salesforce Data Cloud から Spark に読み取る場合、データ型は次のようにマップされます。

Salesforce Data Cloud タイプ

Spark タイプ

ブール値

BooleanType

日付

DateType

日時型

TimestampType

Eメール, 電話, テキスト, URL

StringType

数、パーセント

十進数タイプ (38、18)

制限

  • Databricks カタログごとに 1 つの Salesforce データ領域のみがサポートされています。
  • Databricks Runtime 16.1 以前では、大文字と小文字を区別するテーブル名とスキーマ名はサポートされていません。これには、Salesforce Data Cloud で大文字が使用されている名前も含まれます。たとえば、 MyTable はサポートされていません。

追加のリソース

レイクハウスフェデレーションは、Salesforce Sales Cloudへの読み取り専用接続 をサポートしていません が、 LakeFlow Connect では、Salesforce Sales Cloudから Databricks レイクハウスにデータを取り込むことができます。 「Salesforce からのデータの取り込み」を参照してください。