Integrasi dengan Salesforce (SFDC)
Halaman ini menjelaskan langkah-langkah integrasi untuk workload operasional Salesforce (SFDC) di Cortex Framework Data Foundation. Cortex Framework mengintegrasikan data dari Salesforce dengan pipeline Dataflow hingga BigQuery, sementara Managed Service untuk Apache Airflow menjadwalkan dan memantau pipeline Dataflow ini untuk mendapatkan insight dari data Anda.
File konfigurasi
config.json
File di
repositori Cortex Framework Data Foundation
mengonfigurasi setelan yang diperlukan untuk mentransfer data dari
sumber data mana pun, termasuk Salesforce. File ini berisi parameter berikut untuk workload operasional Salesforce:
"SFDC": {
"deployCDC": true,
"createMappingViews": true,
"createPlaceholders": true,
"datasets": {
"cdc": "",
"raw": "",
"reporting": "REPORTING_SFDC"
}
}
Tabel berikut menjelaskan nilai untuk setiap parameter operasional SFDC:
| Parameter | Artinya | Nilai Default | Deskripsi |
SFDC.deployCDC
|
Deploy CDC | true
|
Menghasilkan skrip pemrosesan CDC untuk menjalankan sebagai DAG di Managed Service untuk Apache Airflow. Lihat dokumentasi untuk berbagai opsi penyerapan untuk Salesforce Sales Cloud. |
SFDC.createMappingViews
|
Membuat tampilan pemetaan | true
|
DAG yang disediakan untuk mengambil data baru
dari Salesforce API memperbarui data di landing. Nilai ini ditetapkan ke true
menghasilkan tampilan di set data yang diproses CDC untuk mengekspos tabel dengan "versi kebenaran terbaru" dari set data Mentah. Jika ditetapkan ke false dan
SFDC.deployCDC adalah true, DAG akan dibuat
dengan pemrosesan Pengambilan Data Perubahan (CDC) berdasarkan SystemModstamp. Lihat detail
tentang pemrosesan CDC untuk Salesforce.
|
SFDC.createPlaceholders
|
Membuat Placeholder | true
|
Membuat tabel placeholder kosong jika tidak dibuat oleh proses penyerapan untuk memungkinkan deployment pelaporan downstream dieksekusi tanpa kegagalan. |
SFDC.datasets.raw
|
Set data landing mentah | - | Digunakan oleh proses CDC, di sinilah alat replikasi menempatkan data dari Salesforce. Jika menggunakan data pengujian, buat set data kosong. |
SFDC.datasets.cdc
|
Set Data yang Diproses CDC | - | Set data yang berfungsi sebagai sumber untuk tampilan pelaporan, dan target untuk DAG yang diproses data. Jika menggunakan data pengujian, buat set data kosong. |
SFDC.datasets.reporting
|
Set Data Pelaporan SFDC | "REPORTING_SFDC"
|
Nama set data yang dapat diakses oleh pengguna akhir untuk pelaporan, tempat tampilan dan tabel yang ditampilkan kepada pengguna di-deploy. |
SFDC.currencies
|
Memfilter mata uang | [ "USD" ]
|
Jika Anda tidak menggunakan data pengujian, masukkan satu mata uang (misalnya, [ "USD" ]) atau beberapa mata uang (misalnya,[ "USD", "CAD" ]) yang relevan dengan bisnis Anda.
Nilai ini digunakan untuk mengganti placeholder dalam SQL di model analisis
jika tersedia.
|
Model Data
Bagian ini menjelaskan Model Data Salesforce (SFDC) menggunakan Diagram Hubungan Entitas (ERD).
Tampilan dasar
Ini adalah objek biru di ERD dan merupakan tampilan pada tabel CDC tanpa transformasi selain beberapa alias nama kolom. Lihat skrip di
src/SFDC/src/reporting/ddls.
Tampilan pelaporan
Ini adalah objek hijau di ERD dan berisi atribut dimensi yang relevan yang digunakan oleh tabel pelaporan. Lihat skrip di
src/SFDC/src/reporting/ddls.
Persyaratan data Salesforce
Bagian ini menguraikan spesifikasi tentang cara data Salesforce Anda harus disusun untuk digunakan dengan Cortex Framework.
- Struktur Tabel:
- Penamaan: Nama tabel menggunakan
snake_case(kata huruf kecil yang dipisahkan oleh garis bawah) dan berbentuk jamak. Misalnya,some_objects. - Jenis Data: Kolom mempertahankan jenis data yang sama seperti yang direpresentasikan dalam Salesforce.
- Keterbacaan: Beberapa nama kolom mungkin sedikit disesuaikan untuk kejelasan yang lebih baik di lapisan pelaporan.
- Penamaan: Nama tabel menggunakan
- Tabel Kosong dan Deployment: Tabel yang diperlukan yang tidak ada dalam set data mentah akan otomatis dibuat sebagai tabel kosong selama proses deployment. Hal ini memastikan eksekusi langkah deployment CDC berjalan lancar.
- Persyaratan CDC: Kolom
IddanSystemModstampsangat penting agar skrip CDC dapat melacak perubahan dalam data Anda. Kolom tersebut dapat memiliki nama yang sama persis atau berbeda. Skrip pemrosesan Mentah yang disediakan mengambil kolom ini secara otomatis dari API dan memperbarui tabel replikasi target.Id: Bertindak sebagai ID unik untuk setiap data.SystemModstamp: Kolom ini menyimpan stempel waktu yang menunjukkan kapan terakhir kali data diubah.
- Skrip Pemrosesan Mentah:Skrip pemrosesan Mentah yang disediakan tidak memerlukan pemrosesan tambahan (CDC). Perilaku ini ditetapkan selama deployment secara default.
Tabel sumber untuk Konversi Mata Uang
Salesforce memungkinkan Anda mengelola mata uang dengan dua cara:
- Dasar: Ini adalah setelan default, tempat semua data menggunakan satu mata uang.
- Lanjutan: Mengonversi antara beberapa mata uang berdasarkan nilai tukar (memerlukan pengaktifan Pengelolaan Mata Uang Lanjutan).
Jika Anda menggunakan Pengelolaan Mata Uang Lanjutan, Salesforce akan menggunakan dua tabel khusus:
- CurrencyTypes: Tabel ini menyimpan informasi tentang berbagai mata uang yang Anda gunakan (misalnya, USD, EUR, dll.).
- DatedConversionRates: Tabel ini menyimpan nilai tukar antara mata uang dari waktu ke waktu.
Cortex Framework mengharapkan tabel ini ada jika Anda menggunakan pengelolaan mata uang lanjutan. Jika Anda tidak menggunakan pengelolaan mata uang lanjutan, Anda dapat
menghapus entri yang terkait dengan tabel ini dari file konfigurasi
(src/SFDC/config/ingestion_settings.yaml).
Langkah ini mencegah upaya yang tidak perlu untuk mengekstrak data dari tabel yang tidak ada.
Memuat data SFDC ke BigQuery
Cortex Framework menyediakan solusi replikasi berdasarkan skrip Python yang dijadwalkan di Apache Airflow dan Salesforce Bulk API 2.0. Skrip Python ini dapat diadaptasi dan dijadwalkan di alat pilihan Anda. Untuk mengetahui informasi selengkapnya, lihat Modul ekstraksi SFDC.
Cortex Framework juga menawarkan tiga metode berbeda untuk mengintegrasikan data Anda, bergantung pada asal data dan cara pengelolaannya:
- Panggilan API: Opsi ini untuk data yang dapat diakses langsung melalui API. Cortex Framework dapat memanggil API, mengambil data, dan menyimpannya dalam set data "Mentah" di BigQuery. Jika ada data yang sudah ada dalam set data, Cortex Framework dapat memperbaruinya dengan data baru.
- Tampilan Pemetaan Struktur: Metode ini berguna jika Anda sudah memuat data ke BigQuery melalui alat lain, tetapi struktur data tidak cocok dengan yang diperlukan Cortex Framework. Cortex Framework menggunakan "tampilan" (seperti tabel virtual) untuk menerjemahkan struktur data yang ada ke dalam format yang diharapkan oleh fitur pelaporan Cortex Framework.
Skrip Pemrosesan CDC (Pengambilan Data Perubahan): Opsi ini dirancang khusus untuk data yang terus berubah. Skrip CDC melacak perubahan ini dan memperbarui data di BigQuery. Skrip ini mengandalkan dua kolom khusus dalam data Anda:
Id: ID unik untuk setiap data.SystemModstamp: stempel waktu yang menunjukkan kapan data diubah.
Jika data Anda tidak memiliki nama yang sama persis, skrip dapat disesuaikan untuk mengenalinya dengan nama yang berbeda. Anda juga dapat menambahkan kolom kustom ke skema data selama proses ini. Misalnya, tabel sumber dengan data objek Akun harus memiliki kolom
IddanSystemModstampasli. Jika kolom ini memiliki nama yang berbeda, filesrc/SFDC/src/table_schema/accounts.csvharus diperbarui dengan nama kolomIdyang dipetakan keAccountIddan kolom stempel waktu modifikasi sistem apa pun yang dipetakan keSystemModstamp. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi SystemModStamp.
Jika Anda telah memuat data melalui alat lain (dan data tersebut terus diperbarui), Cortex masih dapat menggunakannya. Skrip CDC dilengkapi dengan file pemetaan yang dapat menerjemahkan struktur data yang ada ke dalam format yang diperlukan Cortex Framework. Anda bahkan dapat menambahkan kolom kustom ke data selama proses ini.
Mengonfigurasi integrasi API dan CDC
Untuk memasukkan data Salesforce ke BigQuery, Anda dapat menggunakan cara berikut:
- Skrip Cortex untuk panggilan API: menyediakan skrip replikasi untuk Salesforce atau alat replikasi data pilihan Anda.Kuncinya adalah data yang Anda masukkan harus terlihat sama seperti jika berasal dari Salesforce API.
- Alat replikasi dan selalu tambahkan : Jika Anda menggunakan alat untuk replikasi, cara ini adalah untuk alat yang dapat menambahkan data baru (_appendalways_pattern) atau memperbarui data yang ada.
- Alat replikasi dan tambahkan data baru: Jika alat tidak memperbarui data dan mereplikasi perubahan apa pun sebagai data baru ke dalam tabel target (Mentah), Cortex Data Foundation akan memberikan opsi untuk membuat skrip pemrosesan CDC. Untuk mengetahui informasi selengkapnya, lihat Proses CDC.

Untuk memastikan data Anda cocok dengan yang diharapkan Cortex Framework, Anda dapat menyesuaikan konfigurasi pemetaan untuk memetakan alat replikasi atau skema yang ada. Tindakan ini akan menghasilkan tampilan pemetaan yang kompatibel dengan struktur yang diharapkan oleh Cortex Framework Data Foundation.
Gunakan file ingestion_settings.yaml untuk mengonfigurasi
pembuatan skrip untuk memanggil Salesforce API dan mereplikasi
data ke dalam set data Mentah (bagian salesforce_to_raw_tables) dan
pembuatan skrip untuk memproses perubahan yang masuk ke dalam set data Mentah dan
ke dalam set data yang diproses CDC (bagian raw_to_cdc_tables).
Secara default, skrip yang disediakan untuk membaca dari API memperbarui perubahan ke dalam set data Mentah, sehingga skrip pemrosesan CDC tidak diperlukan, dan tampilan pemetaan untuk menyelaraskan skema sumber dengan skema yang diharapkan akan dibuat.
Pembuatan skrip pemrosesan CDC tidak dijalankan jika SFDC.createMappingViews=true
di config.json (perilaku default). Jika skrip CDC diperlukan, tetapkan SFDC.createMappingViews=false. Langkah kedua ini juga memungkinkan pemetaan antara skema sumber ke dalam skema yang diperlukan seperti yang diperlukan oleh Cortex Framework Data Foundation.
Contoh file konfigurasi setting.yaml berikut mengilustrasikan pembuatan tampilan pemetaan saat alat replikasi memperbarui data langsung ke dalam set data yang direplikasi, seperti yang diilustrasikan dalam option 3 (yaitu, tidak ada CDC yang diperlukan, hanya pemetaan ulang tabel dan nama kolom). Karena tidak ada CDC yang diperlukan, opsi ini akan dieksekusi selama parameter SFDC.createMappingViews dalam file config.json tetap true.
salesforce_to_raw_tables:
- base_table: accounts
raw_table: Accounts
api_name: Account
load_frequency: "@daily"
- base_table: cases
raw_table: cases2
api_name: Case
load_frequency: "@daily"
Dalam contoh ini, menghapus konfigurasi untuk tabel dasar atau semuanya dari bagian akan melewati pembuatan DAG tabel dasar tersebut atau seluruh bagian, seperti yang diilustrasikan untuk salesforce_to_raw_tables. Untuk skenario ini, menetapkan parameter deployCDC : False memiliki efek yang sama, karena tidak ada skrip pemrosesan CDC yang perlu dibuat.
Pemetaan data
Anda harus memetakan kolom data yang masuk ke format yang diharapkan oleh Cortex Data Foundation. Misalnya, kolom bernama unicornId dari sistem data sumber Anda harus diganti namanya dan dikenali sebagai AccountId (dengan jenis data string) dalam Cortex Data Foundation:
- Kolom Sumber:
unicornId(nama yang digunakan dalam sistem sumber) - Kolom Cortex:
AccountId(nama yang diharapkan oleh Cortex) - Jenis Data:
String(jenis data yang diharapkan oleh Cortex)
Memetakan Kolom Polimorfik
Cortex Framework Data Foundation mendukung pemetaan kolom polimorfik, yaitu kolom yang namanya dapat bervariasi tetapi strukturnya tetap konsisten. Nama jenis kolom polimorfik (misalnya, Who.Type) dapat direplikasi dengan menambahkan item [Field Name]_Type dalam file CSV pemetaan masing-masing:src/SFDC/src/table_schema/tasks.csv. Misalnya, jika Anda memerlukan kolom Who.Type objek Task untuk direplikasi, tambahkan baris Who_Type,Who_Type,STRING. Tindakan ini akan menentukan kolom baru bernama Who.Type yang dipetakan ke dirinya sendiri (mempertahankan nama yang sama) dan memiliki jenis data string.
Mengubah Template DAG
Anda mungkin perlu menyesuaikan template DAG untuk CDC atau untuk pemrosesan data Mentah seperti yang diperlukan oleh instance Airflow atau Managed Airflow Anda. Untuk mengetahui informasi selengkapnya, lihat Mengumpulkan setelan Managed Airflow.
Jika Anda tidak memerlukan CDC atau pembuatan data mentah dari panggilan API, tetapkan deployCDC=false. Atau, Anda dapat menghapus konten bagian di ingestion_settings.yaml. Jika struktur data diketahui konsisten dengan yang diharapkan oleh Cortex Framework Data Foundation, Anda dapat melewati pembuatan tampilan pemetaan dengan menetapkan SFDC.createMappingViews=false.
Mengonfigurasi modul ekstraksi
Bagian ini menyajikan langkah-langkah untuk menggunakan modul ekstraksi Salesforce ke BigQuery yang disediakan oleh Data Foundation. Persyaratan dan alur Anda mungkin berbeda-beda bergantung pada sistem dan konfigurasi yang ada. Anda dapat menggunakan alat lain yang tersedia.
Menyiapkan kredensial dan Aplikasi terhubung
Login sebagai administrator ke instance Salesforce Anda untuk menyelesaikan langkah-langkah berikut:
- Buat atau identifikasi profil di Salesforce yang memenuhi persyaratan berikut:
Permission for Apex REST Services and API Enableddiberikan di bagian System Permissions.- Izin
View Alldiberikan untuk semua objek yang ingin Anda replikasi. Misalnya, Akun dan Kasus. Periksa batasan atau masalah dengan administrator keamanan Anda. - Tidak ada izin yang diberikan untuk terkait login antarmuka pengguna, seperti Salesforce Anywhere di Lightning Experience, Salesforce Anywhere di Seluler, Pengguna Lightning Experience,dan Pengkaptenan Pengguna. Periksa batasan atau masalah dengan administrator keamanan Anda.
- Buat atau gunakan identifikasi pengguna yang ada di Salesforce. Anda harus mengetahui
nama pengguna, sandi, dan token keamanan pengguna. Pertimbangkan hal berikut:
- Idealnya, ini adalah pengguna yang khusus untuk menjalankan replikasi ini.
- Pengguna harus ditetapkan ke profil yang telah Anda buat atau identifikasi di langkah 1.
- Anda dapat melihat Nama Pengguna dan mereset Sandi di sini.
- Anda dapat mereset token keamanan jika tidak memilikinya dan tidak digunakan oleh proses lain.
- Buat Aplikasi Terhubung. Aplikasi ini adalah satu-satunya saluran komunikasi untuk membuat koneksi
ke Salesforce dari dunia eksternal dengan bantuan profil, Salesforce
API, kredensial pengguna standar, dan token keamanannya.
- Ikuti petunjuk untuk mengaktifkan Setelan OAuth untuk Integrasi API.
- Pastikan
Require Secret for Web Server FlowdanRequire Secretfor Refresh Token Flowdiaktifkan di bagian API (Enabled OAuth Settings). - Lihat dokumentasi tentang cara mendapatkan kunci konsumen (yang nantinya akan digunakan sebagai Client ID Anda). Hubungi administrator keamanan Anda jika ada masalah atau batasan.
- Tetapkan Aplikasi Terhubung Anda ke profil yang dibuat.
- Pilih Setup dari kanan atas layar utama Salesforce.
- Di kotak Quick Find, masukkan
profile, lalu pilih Profile. Cari profil yang dibuat pada langkah 1. - Buka profil.
- Klik link Assigned Connected Apps.
- Klik Edit.
- Tambahkan Aplikasi Terhubung yang baru dibuat.
- Klik tombol Save.
Menyiapkan Secret Manager
Konfigurasi Secret Manager untuk menyimpan detail koneksi. Modul Salesforce ke BigQuery mengandalkan Secret Manager untuk menyimpan kredensial yang diperlukan untuk terhubung ke Salesforce dan BigQuery dengan aman. Pendekatan ini menghindari pemaparan informasi sensitif seperti sandi langsung dalam kode atau file konfigurasi Anda, sehingga meningkatkan keamanan.
Buat secret dengan spesifikasi berikut. Untuk mengetahui petunjuk selengkapnya, lihat Membuat secret.
- Nama Secret:
airflow-connections-salesforce-conn Nilai Secret:
http://USERNAME:PASSWORD@https%3A%2F%2FINSTANCE_NAME.lightning.force.com?client_id=CLIENT_ID&security_token=SECRET_TOKEN`Ganti kode berikut:
USERNAMEdengan nama pengguna Anda.PASSWORDdengan sandi Anda.INSTANCE_NAMEdengan nama instance.CLIENT_IDdengan ID klien Anda.SECRET_TOKENdengan token rahasia Anda.
Untuk mengetahui informasi selengkapnya, lihat cara menemukan nama instance Anda.
Library Managed Airflow untuk replikasi
Untuk menjalankan skrip Python di DAG yang disediakan oleh Cortex Framework Data Foundation, Anda harus menginstal beberapa dependensi. Untuk Airflow versi 1.10, ikuti dokumentasi Menginstal dependensi Python untuk Managed Service untuk Apache Airflow 1 untuk menginstal paket berikut, secara berurutan:
tableauserverclient==0.17
apache-airflow-backport-providers-salesforce==2021.3.3
Untuk Airflow versi 2.x, lihat dokumentasi Menginstal dependensi Python untuk Managed Service untuk Apache Airflow 2 untuk menginstal apache-airflow-providers-salesforce~=5.2.0.
Gunakan perintah berikut untuk menginstal setiap paket yang diperlukan:
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--update-pypi-package PACKAGE_NAME EXTRAS_AND_VERSION
Ganti kode berikut:
ENVIRONMENT_NAMEdengan nama lingkungan yang ditetapkan.LOCATIONdengan lokasi.PACKAGE_NAMEdengan nama paket yang dipilih.EXTRAS_AND_VERSIONdengan spesifikasi tambahan dan versi.
Perintah berikut adalah contoh penginstalan paket yang diperlukan:
gcloud composer environments update my-composer-instance \
--location us-central1 \
--update-pypi-package apache-airflow-backport-providers-salesforce>=2021.3.3
Mengaktifkan Secret Manager sebagai backend
Aktifkan Google Secret Manager sebagai backend keamanan. Langkah ini menginstruksikan Anda untuk mengaktifkan Secret Manager sebagai lokasi penyimpanan utama untuk informasi sensitif seperti sandi dan kunci API yang digunakan oleh lingkungan Managed Service untuk Apache Airflow. Hal ini meningkatkan keamanan dengan memusatkan dan mengelola kredensial dalam layanan khusus. Untuk mengetahui informasi selengkapnya, lihat Secret Manager.
Mengizinkan akun layanan Composer mengakses secret
Langkah ini memastikan bahwa akun layanan yang terkait dengan Managed Service untuk Apache Airflow memiliki izin yang diperlukan untuk mengakses secret yang disimpan dalam Secret Manager.
Secara default, Managed Service untuk Apache Airflow menggunakan akun layanan Compute Engine.
Izin yang diperlukan adalah Secret Manager Secret Accessor.
Izin ini memungkinkan akun layanan mengambil dan menggunakan secret yang disimpan
di Secret Manager.Untuk panduan lengkap tentang cara mengonfigurasi kontrol akses
di Secret Manager, lihat
dokumentasi kontrol akses.
Koneksi BigQuery di Airflow
Pastikan untuk membuat koneksi sfdc_cdc_bq sesuai dengan
Mengumpulkan setelan Managed Airflow. Koneksi ini kemungkinan digunakan oleh modul Salesforce ke BigQuery untuk membuat komunikasi dengan BigQuery.
Apa langkah selanjutnya?
- Untuk mengetahui informasi selengkapnya tentang sumber data dan workload lainnya, lihat Sumber data dan workload.
- Untuk mengetahui informasi selengkapnya tentang langkah-langkah deployment di lingkungan produksi, lihat Prasyarat deployment Cortex Framework Data Foundation.
