Menjalankan kueri federasi pada Data Salesforce 360

Halaman ini menjelaskan cara menyiapkan Federasi Lakehouse untuk menjalankan kueri federasi pada data Salesforce Data 360 yang tidak dikelola oleh Azure Databricks. Untuk mempelajari selengkapnya tentang Federasi Lakehouse, lihat Apa itu Federasi Lakehouse?

Untuk menyambungkan ke database Salesforce Data 360 Anda menggunakan Lakehouse Federation, Anda harus membuat hal-hal berikut di metastore Azure Databricks Unity Catalog Anda (ruang kerja yang dibuat setelah 9 November 2023 sudah otomatis memiliki metastore Unity Catalog):

  • Koneksi ke database Salesforce Data 360 Anda.
  • Katalog asing yang mencerminkan database Salesforce Data 360 Anda di Unity Catalog sehingga Anda dapat menggunakan sintaks kueri Katalog Unity dan alat tata kelola data untuk mengelola akses pengguna Azure Databricks ke database.

Konektor Salesforce mana yang harus saya gunakan?

Databricks menawarkan beberapa konektor untuk Salesforce. Ada dua konektor zero-copy: konektor berbagi file Salesforce Data 360 (sebelumnya Data Cloud) dan konektor federasi kueri Salesforce Data 360. Ini memungkinkan Anda untuk mengkueri data di Salesforce Data 360 tanpa memindahkannya. Ada juga konektor penyerapan Salesforce yang menyalin data dari berbagai produk Salesforce, termasuk Salesforce Data 360 dan Salesforce Sales Cloud.

Tabel berikut ini meringkas perbedaan antara konektor Salesforce di Databricks:

Konektor Skenario penggunaan Produk Salesforce yang didukung
Berbagi file Salesforce Data 360 Saat Anda menggunakan konektor berbagi file Salesforce Data 360 di Lakehouse Federation, Databricks memanggil API Salesforce Data-as-a-Service (DaaS) untuk membaca data di lokasi penyimpanan objek cloud yang mendasar secara langsung. Kueri dijalankan pada komputasi Databricks tanpa menggunakan protokol JDBC.
Dibandingkan dengan federasi kueri, berbagi file sangat ideal untuk menggabungkan sejumlah besar data. Ini menawarkan peningkatan performa untuk membaca file dari beberapa sumber data dan kemampuan pushdown yang lebih baik. Lihat Federasi Lakehouse untuk Berbagi File Salesforce Data 360.
Data Salesforce 360
Federasi kueri Salesforce Data 360 Saat Anda menggunakan konektor federasi kueri Salesforce Data 360 di Federasi Lakehouse, Databricks menggunakan JDBC untuk menyambungkan ke data sumber dan meneruskan kueri ke dalam Salesforce. Lihat Menjalankan kueri federasi di Salesforce Data 360. Data Salesforce 360
Pengimporan Salesforce Konektor penyerapan Salesforce di Lakeflow Connect memungkinkan Anda membuat alur penyerapan yang dikelola sepenuhnya dari data Salesforce Platform. Konektor ini memaksimalkan nilai dengan memanfaatkan tidak hanya data CDP tetapi juga data CRM di Platform Kecerdasan Data. Lihat Menyerap data dari Salesforce. Lihat Produk Salesforce mana yang didukung konektor penyerapan Salesforce?

Sebelum Anda mulai

Persyaratan ruang kerja:

  • Workspace telah diaktifkan untuk Unity Catalog. Ruang kerja yang dibuat setelah 9 November 2023 aktif untuk Katalog Unity secara otomatis, termasuk penyediaan metastore otomatis. Anda tidak perlu membuat metastore secara manual, kecuali jika ruang kerja Anda dibuat sebelum pengaktifan otomatis dan belum diaktifkan untuk Katalog Unity. Lihat Pengaktifan otomatis untuk Unity Catalog.

Persyaratan komputasi:

  • Konektivitas jaringan dari sumber daya komputasi Anda ke sistem database target. Lihat Rekomendasi jaringan untuk Federasi Lakehouse.
  • Komputasi Azure Databricks harus menggunakan Databricks Runtime 15.2 atau lebih tinggi dan mode akses Standar atau Khusus .
  • Gudang SQL harus pro atau tanpa server dan harus menggunakan 2024.30 atau lebih tinggi.

Izin yang diperlukan:

  • Untuk membuat koneksi, Anda harus menjadi admin metastore atau pengguna dengan privilese CREATE CONNECTION pada metastore Katalog Unity yang terhubung ke ruang kerja. Di ruang kerja yang diaktifkan untuk Katalog Unity secara otomatis, admin ruang kerja memiliki CREATE CONNECTION hak istimewa secara default.
  • Untuk membuat katalog asing, Anda harus memiliki izin CREATE CATALOG di metastore dan menjadi pemilik koneksi atau memiliki hak istimewa CREATE FOREIGN CATALOG pada koneksi. Di ruang kerja yang diaktifkan untuk Katalog Unity secara otomatis, admin ruang kerja memiliki CREATE CATALOG hak istimewa secara default.

Persyaratan izin tambahan dinyatakan di setiap bagian berbasis tugas berikut.

Membuat aplikasi yang terhubung dengan Salesforce

Aplikasi yang terhubung dengan Salesforce memungkinkan aplikasi eksternal untuk berintegrasi dengan Salesforce menggunakan API dan protokol standar. Bagian ini menjelaskan cara membuat aplikasi yang terhubung menggunakan SSO untuk memungkinkan Databricks mengautentikasi dengan Salesforce.

Catatan

Untuk instruksi selengkapnya, lihat Membuat Aplikasi Tersambung dalam dokumentasi Salesforce Data 360.

Untuk membuat aplikasi yang terhubung dengan Salesforce, lakukan hal berikut:

  1. Di kanan atas Data 360, klik Penyetelan.
  2. Di bawah Alat Platform, klik Aplikasi > Pengelola Aplikasi.
  3. Klik Aplikasi Terkoneksi Baru.
  4. Masukkan Nama dan alamat email Kontak .
  5. Aktifkan pengaturan OAuth:
    1. Masukkan URL Panggilan Balik, dalam format berikut: https://<databricks_instance_url>/login/oauth/salesforce.html. Misalnya: https://cust-success.cloud.databricks.com/login/oauth/salesforce.html.
    2. (Opsional) Jika Anda berencana menggunakan SQL untuk membuat koneksi Azure Databricks dan katalog asing pada langkah berikutnya, Aplikasi Terhubung Salesforce Anda juga perlu mendukung URI pengalihan https://login.salesforce.com/services/oauth2/success. Ini tidak diperlukan jika Anda berencana menggunakan Catalog Explorer untuk membuat koneksi Azure Databricks dan katalog asing. Databricks merekomendasikan penggunaan Catalog Explorer karena memerlukan lebih sedikit langkah manual daripada metode lain.
    3. Tambahkan Scope berikut:
      • Mengakses semua sumber daya API Data 360 (cdp_api)
      • Mengelola data pengguna melalui API (api)
      • Melakukan kueri ANSI SQL pada data Data 360 (cdp_query_api)
      • Melakukan permintaan kapan saja (refresh_token, offline_access)
    4. Klik Simpan.
    5. Klik Lanjutkan.
  6. Pada halaman Gambaran umum Aplikasi Tersambung, klik Kelola Detail Konsumen. Anda akan diminta untuk mengautentikasi.
  7. Setelah autentikasi berhasil, Kunci konsumen dan rahasia Konsumen terungkap. Simpan nilai-nilai ini. Anda akan membutuhkannya saat membuat koneksi Azure Databricks.

Membuat koneksi Azure Databricks

Koneksi menentukan jalur dan kredensial untuk mengakses sistem database eksternal. Untuk membuat koneksi, Anda bisa menggunakan Catalog Explorer atau perintah SQL CREATE CONNECTION di buku catatan Azure Databricks atau editor kueri Databricks SQL.

Catatan

Anda juga dapat menggunakan Databricks REST API atau Databricks CLI untuk membuat koneksi. Lihat POST /api/2.1/unity-catalog/connections dan perintah Unity Catalog.

Izin diperlukan: Admin atau pengguna Metastore dengan CREATE CONNECTION hak istimewa.

Penjelajah Katalog

  1. Di ruang kerja Azure Databricks Anda, klik Ikon data.Katalog.
  2. Di bagian atas panel Katalog , klik ikon Tambahkan atau plusTambahkan ikon dan pilih Buat koneksi dari menu.
  3. Pada halaman Dasar-dasar Koneksi di wizard Menyiapkan Koneksi, masukkan nama Koneksi yang mudah dipahami.
  4. Pilih Jenis koneksiData Salesforce 360.
  5. (Opsional) Tambahkan komentar.
  6. Pada halaman Autentikasi , masukkan properti koneksi berikut untuk Data Salesforce 360 Anda:
    • (Opsional) Pilih sebagai sandbox.
    • ID Klien: Kunci konsumen untuk aplikasi yang terhubung dengan Salesforce.
    • Rahasia klien: Rahasia konsumen aplikasi yang terhubung dengan Salesforce.
    • Cakupan Klien: cdp_api api cdp_query_api refresh_token offline_access
  7. Klik Masuk dengan Salesforce.
  8. (OAuth) Anda diminta untuk masuk ke Salesforce Data 360 menggunakan kredensial SSO Anda.
  9. Setelah berhasil masuk, Anda diarahkan kembali ke wizard Databricks Menyiapkan koneksi. Tombol Masuk menggunakan Salesforce telah diganti dengan pesan Successfully authorized.
  10. Klik Buat koneksi.
  11. Pada halaman dasar-dasar Katalog , masukkan nama untuk katalog asing. Katalog asing mencerminkan database dalam sistem data eksternal sehingga Anda dapat mengkueri dan mengelola akses ke data dalam database tersebut menggunakan Azure Databricks dan Unity Catalog.
  12. Masukkan ruang data Salesforce.
  13. (Opsional) Klik Uji koneksi untuk mengonfirmasi bahwa koneksi berfungsi.
  14. Klik Buat katalog.
  15. Pada halaman Access, pilih ruang kerja tempat pengguna dapat mengakses katalog yang Anda buat. Anda dapat memilih Semua ruang kerja memiliki akses, atau klik Tetapkan ke ruang kerja, pilih ruang kerja, lalu klik Tetapkan.
  16. Ubah Pemilik yang akan dapat mengelola akses ke semua objek dalam katalog. Mulai ketik prinsipal dalam kotak teks, lalu klik prinsipal dalam hasil yang dikembalikan.
  17. Berikan Hak Istimewa pada katalog. Klik Izinkan:
    1. Tentukan Pengguna utama yang akan memiliki akses ke objek dalam katalog. Mulai ketik prinsipal dalam kotak teks, lalu klik prinsipal dalam hasil yang dikembalikan.
    2. Pilih preset Hak Istimewa yang akan diberikan kepada setiap prinsipal. Semua pengguna akun diberikan BROWSE secara default.
      • Pilih Pembaca Data dari menu drop-down untuk memberikan hak istimewa pada objek dalam katalog.
      • Pilih Editor Data dari menu drop-down untuk memberikan hak istimewa dan pada objek dalam katalog.
      • Pilih hak istimewa yang akan diberikan secara manual.
    3. Klik Izinkan.
  18. Klik Berikutnya.
  19. Pada halaman Metadata, tentukan pasangan kunci-nilai tag. Untuk informasi selengkapnya, lihat Menerapkan tag ke objek yang dapat diamankan di dalam Katalog Unity.
  20. (Opsional) Tambahkan komentar.
  21. Klik Simpan.

SQL

Databricks merekomendasikan penggunaan Catalog Explorer untuk membuat koneksi dan katalog asing karena memerlukan langkah manual yang lebih sedikit daripada metode lain.

Jika Anda berencana menggunakan SQL untuk membuat koneksi Azure Databricks dan katalog asing, Aplikasi Terhubung Salesforce Anda perlu mendukung URI pengalihan https://login.salesforce.com/services/oauth2/success. Ini tidak diperlukan jika Anda menggunakan Catalog Explorer.

  1. Hasilkan penguji kode PKCE dan tantangan kode. Anda dapat melakukan ini menggunakan alat online seperti https://tonyxu-io.github.io/pkce-generator/ atau dengan menjalankan skrip Python berikut:

    %python
    
    import base64
    import re
    import os
    import hashlib
    
    code_verifier = base64.urlsafe_b64encode(os.urandom(40)).decode('utf-8')
    code_verifier = re.sub('[^a-zA-Z0-9]+', '', code_verifier)
    
    code_challenge = hashlib.sha256(code_verifier.encode('utf-8')).digest()
    code_challenge = base64.urlsafe_b64encode(code_challenge).decode('utf-8')
    code_challenge = code_challenge.replace('=', '')
    print(f"pkce_verifier  = \"{code_verifier}\"")
    print(f"code_challenge = \"{code_challenge}\"")
    
  2. Kunjungi URL berikut dan autentikasi dengan kredensial Salesforce Anda untuk mendapatkan authorization_code (ganti <client_id> dan <code_challenge> dengan parameter Anda).

    https://login.salesforce.com/services/oauth2/authorize
    ?client_id=<client_id>
    &redirect_uri=https://login.salesforce.com/services/oauth2/success
    &response_type=code
    &code_challenge=<code_challenge>
    

    Kode otorisasi yang dikodekan URL terlihat di URL yang dialihkan.

  3. Jalankan yang berikut ini di buku catatan atau editor kueri Databricks SQL:

    CREATE CONNECTION '<Connection name>' TYPE salesforce_data_cloud
    OPTIONS (
      client_id '<Consumer key from Salesforce Connected App>',
      client_secret '<Consumer secret from Salesforce Connected App>',
      pkce_verifier '<pkce_verifier from the last step>',
      authorization_code '<URL decoded `authorization_code`, should end with == instead of %3D%3D>',
      oauth_redirect_uri "https://login.salesforce.com/services/oauth2/success",
      oauth_scope "cdp_api api cdp_query_api refresh_token offline access",
      is_sandbox "false"
      );
    

    Databricks merekomendasikan agar Anda menggunakan Azure Databricks rahasia alih-alih string teks biasa untuk nilai sensitif seperti kredensial. Contohnya:

    CREATE CONNECTION '<Connection name>' TYPE salesforce_data_cloud
    OPTIONS (
      client_id secret ('<Secret scope>','<Secret key client id>'),
      client_secret secret ('<Secret scope>','<Secret key client secret>'),
      pkce_verifier '<pkce_verifier from the last step>',
      authorization_code '<URL decoded `authorization_code`, should end with == instead of %3D%3D>',
      oauth_redirect_uri "https://login.salesforce.com/services/oauth2/success",
      oauth_scope "cdp_api api cdp_query_api refresh_token offline access",
      is_sandbox "false"
      );
    

    Untuk informasi tentang menyiapkan rahasia, lihat manajemen rahasia.

Membuat katalog asing

Catatan

Jika Anda menggunakan UI untuk membuat koneksi ke sumber data, pembuatan katalog asing disertakan dan Anda dapat melewati langkah ini.

Katalog asing mencerminkan database dalam sistem data eksternal sehingga Anda dapat mengkueri dan mengelola akses ke data dalam database tersebut menggunakan Azure Databricks dan Unity Catalog. Untuk membuat katalog asing, Anda menggunakan koneksi ke sumber data yang telah ditentukan.

Untuk membuat katalog asing, Anda bisa menggunakan Catalog Explorer atau perintah CREATE FOREIGN CATALOG SQL di buku catatan Azure Databricks atau editor kueri SQL. Anda juga dapat menggunakan Databricks REST API atau Databricks CLI untuk membuat katalog. Lihat POST /api/2.1/unity-catalog/catalogs dan perintah Unity Catalog.

Izin diperlukan:CREATE CATALOG izin pada metastore dan kepemilikan koneksi atau CREATE FOREIGN CATALOG hak istimewa pada koneksi.

Penjelajah Katalog

  1. Di ruang kerja Azure Databricks Anda, klik Ikon data.Katalog untuk membuka Catalog Explorer.
  2. Di kanan atas, klik Buat Katalog.
  3. Masukkan properti berikut untuk katalog Salesforce Data 360 Anda.
    • Nama katalog: Nama yang mudah digunakan untuk katalog.
    • Jenis: Foreign.
    • Nama koneksi: Nama koneksi tempat katalog akan dibuat.
    • Ruang data: Ruang data Salesforce.
  4. Klik Buat.

SQL

Jalankan perintah SQL berikut ini di buku catatan atau editor kueri SQL. Item dalam tanda kurung bersifat opsional.

CREATE FOREIGN CATALOG [IF NOT EXISTS] '<catalog-name>' USING CONNECTION '<connection-name>'
OPTIONS (dataspace '<dataspace>');

Ganti nilai berikut:

  • <catalog-name>:
  • <connection-name>:
  • <dataspace>: Ruang data Salesforce. Contohnya,default.

Fitur pushdown yang didukung

Fitur pushdown berikut ini didukung:

  • Filter
  • Proyeksi
  • Batas
  • Agregat
  • Offset
  • Pemeran
  • Berisi, Mulai dengan, Berakhir dengan

Pemetaan jenis data

Saat Anda membaca dari Salesforce Data 360 ke Spark, peta jenis data sebagai berikut:

Jenis Data Salesforce 360 Jenis Spark
Boolean BooleanType
Tanggal JenisTanggal
Tanggalwaktu Tipe Penanda Waktu
Email, Telepon, Teks, Url StringType
Angka, Persentase DecimalType(38, 18)

Batasan

  • Hanya satu ruang data Salesforce per katalog Databricks yang didukung.
  • Di Databricks Runtime 16.1 dan versi yang lebih lama, tabel dan nama skema yang memperhatikan huruf besar/kecil tidak didukung. Ini termasuk nama-nama dengan huruf besar di Salesforce Data 360. Misalnya, MyTable tidak didukung.