Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 CONNECTIONpada metastore Katalog Unity yang terhubung ke ruang kerja. Di ruang kerja yang diaktifkan untuk Katalog Unity secara otomatis, admin ruang kerja memilikiCREATE CONNECTIONhak istimewa secara default. - Untuk membuat katalog asing, Anda harus memiliki izin
CREATE CATALOGdi metastore dan menjadi pemilik koneksi atau memiliki hak istimewaCREATE FOREIGN CATALOGpada koneksi. Di ruang kerja yang diaktifkan untuk Katalog Unity secara otomatis, admin ruang kerja memilikiCREATE CATALOGhak 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:
- Di kanan atas Data 360, klik Penyetelan.
- Di bawah Alat Platform, klik Aplikasi > Pengelola Aplikasi.
- Klik Aplikasi Terkoneksi Baru.
- Masukkan Nama dan alamat email Kontak .
- Aktifkan pengaturan OAuth:
- 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. - (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. - 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)
- Klik Simpan.
- Klik Lanjutkan.
- Masukkan URL Panggilan Balik, dalam format berikut:
- Pada halaman Gambaran umum Aplikasi Tersambung, klik Kelola Detail Konsumen. Anda akan diminta untuk mengautentikasi.
- 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
- Di ruang kerja Azure Databricks Anda, klik
Katalog.
- Di bagian atas panel Katalog , klik
Tambahkan ikon dan pilih Buat koneksi dari menu. - Pada halaman Dasar-dasar Koneksi di wizard Menyiapkan Koneksi, masukkan nama Koneksi yang mudah dipahami.
- Pilih Jenis koneksiData Salesforce 360.
- (Opsional) Tambahkan komentar.
- 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
- Klik Masuk dengan Salesforce.
- (OAuth) Anda diminta untuk masuk ke Salesforce Data 360 menggunakan kredensial SSO Anda.
- Setelah berhasil masuk, Anda diarahkan kembali ke wizard Databricks Menyiapkan koneksi. Tombol Masuk menggunakan Salesforce telah diganti dengan pesan
Successfully authorized. - Klik Buat koneksi.
- 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.
- Masukkan ruang data Salesforce.
- (Opsional) Klik Uji koneksi untuk mengonfirmasi bahwa koneksi berfungsi.
- Klik Buat katalog.
- 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.
- 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.
- Berikan Hak Istimewa pada katalog. Klik Izinkan:
- Tentukan Pengguna utama yang akan memiliki akses ke objek dalam katalog. Mulai ketik prinsipal dalam kotak teks, lalu klik prinsipal dalam hasil yang dikembalikan.
- Pilih preset Hak Istimewa yang akan diberikan kepada setiap prinsipal. Semua pengguna akun diberikan
BROWSEsecara 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.
- Pilih Pembaca Data
- Klik Izinkan.
- Klik Berikutnya.
- Pada halaman Metadata, tentukan pasangan kunci-nilai tag. Untuk informasi selengkapnya, lihat Menerapkan tag ke objek yang dapat diamankan di dalam Katalog Unity.
- (Opsional) Tambahkan komentar.
- 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.
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}\"")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.
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
- Di ruang kerja Azure Databricks Anda, klik
Katalog untuk membuka Catalog Explorer.
- Di kanan atas, klik Buat Katalog.
- 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.
- 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,
MyTabletidak didukung.