Memuat data Salesforce ke BigQuery
Anda dapat memuat data dari Akun Penjualan Salesforce ke BigQuery menggunakan BigQuery Data Transfer Service untuk konektor Salesforce. Dengan BigQuery Data Transfer Service, Anda dapat menjadwalkan tugas transfer berulang yang menambahkan data terbaru dari Akun Penjualan Salesforce ke BigQuery.
Batasan
Transfer data Salesforce tunduk pada batasan berikut:
- Konektor Salesforce hanya mendukung transfer dari Akun Penjualan Salesforce.
- Konektor Salesforce hanya mendukung kolom yang disertakan dalam Salesforce Bulk API V1 versi 64.0. Beberapa kolom yang disertakan dalam versi sebelumnya dari Salesforce Bulk API mungkin tidak didukung. Untuk mengetahui informasi selengkapnya tentang perubahan pada konektor Salesforce ini, lihat Salesforce Bulk API.
- Konektor Salesforce menggunakan Salesforce Bulk API V1 untuk terhubung ke endpoint Salesforce guna mengambil data.
- Konektor Salesforce hanya mendukung Salesforce Bulk API V1 untuk terhubung ke instance Salesforce, dan hanya mendukung transfer entitas yang didukung oleh Salesforce Bulk API. Untuk mengetahui informasi selengkapnya tentang entitas yang didukung, lihat error 'Entity is not supported by the Bulk API'.
- Konektor Salesforce tidak mendukung transfer
objek berikut yang memiliki kolom biner.
AttachmentContentVersionDocumentStaticResourceScontrolEmailCaptureMailMergeTemplate
- Waktu interval minimum antar-transfer data berulang adalah 15 menit. Interval default untuk transfer berulang adalah 24 jam.
- Karena batas pemrosesan Salesforce, menjadwalkan terlalu banyak transfer data sekaligus dapat menyebabkan penundaan atau kegagalan. Sebaiknya batasi transfer data Salesforce ke hal berikut:
- Jangan memiliki lebih dari 10 aset per konfigurasi transfer.
- Di berbagai konfigurasi transfer Anda, tidak boleh ada lebih dari 10 transfer simultan yang berjalan dalam satu waktu.
- Satu konfigurasi transfer hanya dapat mendukung satu kali menjalankan transfer data pada waktu tertentu. Jika transfer data kedua dijadwalkan untuk berjalan sebelum transfer pertama selesai, maka hanya transfer data pertama yang akan selesai, sementara transfer data lain yang tumpang-tindih dengan transfer pertama akan dilewati.
- Untuk menghindari transfer yang dilewati dalam satu konfigurasi transfer, sebaiknya Anda memperpanjang durasi waktu antara transfer data besar dengan mengonfigurasi Frekuensi pengulangan.
- Jika lampiran jaringan dan instance virtual machine (VM) yang dikonfigurasi berada di region yang berbeda, mungkin ada pergerakan data lintas region saat Anda mentransfer data dari Salesforce.
Batasan transfer inkremental
Transfer Salesforce inkremental tunduk pada batasan berikut:- Anda hanya dapat memilih
TIMESTAMPkolom sebagai kolom watermark. - Penyerapan inkremental hanya didukung untuk aset dengan kolom watermark yang valid.
- Nilai dalam kolom tanda air harus meningkat secara monoton.
- Transfer inkremental tidak dapat menyinkronkan operasi penghapusan di tabel sumber.
- Satu konfigurasi transfer hanya dapat mendukung penyerapan inkremental atau penuh.
- Anda tidak dapat memperbarui objek dalam daftar
assetsetelah menjalankan penyerapan inkremental pertama. - Anda tidak dapat mengubah mode penulisan dalam konfigurasi transfer setelah menjalankan penyerapan inkremental pertama.
- Anda tidak dapat mengubah kolom tanda air atau kunci utama setelah menjalankan penyerapan inkremental pertama.
Opsi penyerapan data
Bagian berikut memberikan informasi selengkapnya tentang opsi penyerapan data saat Anda menyiapkan transfer data Salesforce.
Transfer penuh atau inkremental
Anda dapat menentukan cara data dimuat ke BigQuery dengan memilih preferensi penulisan Penuh atau Inkremental dalam konfigurasi transfer saat menyiapkan transfer Salesforce. Transfer inkremental didukung dalam pratinjau.
Anda dapat memilih Penuh untuk mentransfer semua data dari set data Salesforce Anda dengan setiap transfer data.Atau, Anda dapat memilih Inkremental (Pratinjau) untuk hanya mentransfer data yang diubah sejak transfer data terakhir, bukan memuat seluruh set data dengan setiap transfer data. Jika memilih Bertahap untuk transfer data, Anda harus menentukan mode penulisan Tambahkan atau Upsert untuk menentukan cara data ditulis ke BigQuery selama transfer data bertahap. Bagian berikut menjelaskan mode penulisan yang tersedia.
Mode penulisan Tambahkan
Mode penulisan Tambahkan hanya menyisipkan baris baru ke tabel tujuan Anda. Opsi ini menambahkan data yang ditransfer secara ketat tanpa memeriksa apakah ada data yang sudah ada, sehingga mode ini berpotensi menyebabkan duplikasi data dalam tabel tujuan.
Saat memilih mode Tambahkan, Anda harus memilih kolom watermark. Kolom tanda air diperlukan agar konektor Salesforce dapat melacak perubahan dalam tabel sumber.
Untuk transfer Salesforce, sebaiknya pilih kolom yang hanya diperbarui saat data dibuat, dan tidak akan berubah dengan pembaruan berikutnya. Misalnya, kolomCreatedDate.
Mode penulisan Upsert
Mode penulisan Upsert memperbarui baris atau menyisipkan baris baru di tabel tujuan dengan memeriksa kunci utama. Anda dapat menentukan kunci utama agar konektor Salesforce dapat menentukan perubahan yang diperlukan untuk terus memperbarui tabel tujuan dengan tabel sumber. Jika kunci primer yang ditentukan ada di tabel BigQuery tujuan selama transfer data, konektor Salesforce akan memperbarui baris tersebut dengan data baru dari tabel sumber. Jika kunci utama tidak ada selama transfer data, konektor Salesforce akan menyisipkan baris baru.
Saat memilih mode Upsert, Anda harus memilih kolom tanda air dan kunci utama:
- Kolom tanda air diperlukan agar konektor Salesforce dapat melacak perubahan dalam tabel sumber.
- Pilih kolom tanda air yang diperbarui setiap kali baris diubah. Sebaiknya gunakan kolom
SystemModstampatauLastModifiedDate.
- Pilih kolom tanda air yang diperbarui setiap kali baris diubah. Sebaiknya gunakan kolom
- Kunci utama dapat berupa satu atau beberapa kolom di tabel yang diperlukan agar konektor Salesforce dapat menentukan apakah perlu menyisipkan atau memperbarui baris.
- Pilih kolom yang berisi nilai non-null yang unik di semua baris tabel. Sebaiknya gunakan kolom yang menyertakan ID yang dibuat sistem, kode referensi unik (misalnya, ID yang bertambah otomatis), atau ID urutan berbasis waktu yang tidak dapat diubah.
- Untuk mencegah potensi hilangnya data atau kerusakan data, kolom kunci utama yang Anda pilih harus memiliki nilai unik. Jika Anda meragukan keunikan kolom kunci utama yang dipilih, sebaiknya gunakan mode penulisan Tambahkan.
Sebelum memulai
Bagian berikut menjelaskan langkah-langkah yang perlu Anda lakukan sebelum Anda membuat transfer data Salesforce.
Membuat Aplikasi Terhubung Salesforce
Anda harus membuat Aplikasi Terhubung Salesforce dengan konfigurasi wajib berikut:
- Konfigurasi Informasi Dasar di Aplikasi Terhubung. Kolom Nama Aplikasi Terhubung dan Email Kontak wajib diisi untuk transfer Salesforce.
- Aktifkan Setelan OAuth
dengan konfigurasi berikut:
- Centang kotak Aktifkan Setelan OAuth.
- Di kolom Callback URL, masukkan berikut ini:
- Untuk lingkungan produksi, masukkan
https://login.salesforce.com/services/oauth2/token. - Untuk lingkungan sandbox, masukkan
https://test.salesforce.com/services/oauth2/token.
- Untuk lingkungan produksi, masukkan
- Pastikan kotak centang Terbitkan token akses berbasis Token Web JSON(JWT) untuk pengguna bernama tidak dicentang.
- Di bagian Selected OAuth Scopes, pilih Manage user data via APIs (api).
- Hapus centang pada kotak Required Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows.
- Pilih Enable Client Credentials Flow, lalu klik OK pada pemberitahuan yang muncul.
Setelah Anda mengonfigurasi Aplikasi Terhubung dengan konfigurasi yang diperlukan, klik Simpan. Anda akan dialihkan ke halaman detail Aplikasi Terhubung yang baru dibuat.
Setelah membuat Aplikasi Terhubung, Anda juga harus mengonfigurasi alur kredensial klien dengan melakukan hal berikut:
- Klik Penyiapan.
- Di kotak penelusuran, telusuri Aplikasi Terhubung.
- Klik Kelola Aplikasi > Aplikasi Terhubung. Jika Anda menggunakan Salesforce Lightning Experience, klik Manage Connected Apps.
- Di Aplikasi Terhubung yang telah Anda buat, klik Edit.
- Halaman App details akan muncul. Di bagian Client Credentials Flow, masukkan nama pengguna Anda di kolom Run As. Anda dapat menggunakan alat pencari di kolom ini untuk memastikan Anda telah memilih pengguna yang benar.
- Klik Simpan.
Informasi Salesforce yang diperlukan
Anda harus memiliki informasi Salesforce berikut saat membuat transfer data Salesforce:
| Nama Parameter | Deskripsi |
|---|---|
myDomain |
My Domain Anda di Salesforce. |
clientId |
Kunci Konsumen aplikasi terhubung Salesforce. |
clientSecret |
Rahasia Klien OAuth atau Rahasia Konsumen aplikasi terhubung Salesforce. |
Untuk mendapatkan nilai myDomain, clientID, dan clientSecret,
pilih salah satu opsi berikut:
Salesforce Classic
Mengambil detail myDomain
Untuk menemukan myDomain Anda, lakukan hal berikut:
- Login ke platform Salesforce.
- Klik Penyiapan.
- Di kotak penelusuran, telusuri Domain Saya.
- Di hasil penelusuran, klik Domain Management > My Domain.
Di bagian Detail Domain Saya, myDomain Anda akan muncul sebagai
awalan di URL Domain Saya Saat Ini. Misalnya, jika URL My Domain adalah
example.my.salesforce.com, nilai myDomain yang akan digunakan adalah example.
Mengambil detail ClientId dan ClientSecret
Untuk menemukan nilai ClientId dan ClientSecret, lakukan hal berikut:
- Login ke platform Salesforce.
- Klik Penyiapan.
- Di kotak penelusuran, telusuri Aplikasi.
- Di bagian Build di hasil penelusuran, klik Create > Apps.
- Klik Nama Aplikasi Terhubung.
- Di halaman detail Aplikasi Terhubung, klik Kelola Detail Konsumen.
- Verifikasi identitas Anda menggunakan salah satu metode terdaftar. Anda dapat melihat halaman detail konsumen hingga lima menit sebelum diminta untuk memverifikasi identitas Anda lagi.
- Di halaman Consumer Details, Consumer Key adalah nilai
ClientIdAnda. Customer Secret adalah nilaiClientSecretAnda.
Salesforce Lightning Experience
Mengambil detail myDomain
Untuk menemukan myDomain Anda, lakukan hal berikut:
- Login ke platform Salesforce.
- Klik Penyiapan.
- Di kotak penelusuran, telusuri Domain Saya.
- Di hasil penelusuran, klik Setelan Perusahaan > Domain Saya.
Di bagian Detail Domain Saya, myDomain Anda akan muncul sebagai
awalan di URL Domain Saya Saat Ini. Misalnya, jika URL My Domain adalah
example.my.salesforce.com, nilai myDomain yang akan digunakan adalah example.
Mengambil detail ClientId dan ClientSecret
- Login ke platform Salesforce.
- Klik Penyiapan.
- Di kotak penelusuran, telusuri Aplikasi.
- Di hasil penelusuran, klik Aplikasi > Pengelola Aplikasi.
- Temukan aplikasi yang terhubung, lalu klik Lihat.
- Klik Kelola Detail Konsumen.
- Verifikasi identitas Anda menggunakan salah satu metode terdaftar. Anda dapat melihat halaman detail konsumen hingga lima menit sebelum diminta untuk memverifikasi identitas Anda lagi.
- Di halaman Consumer Details, Consumer Key adalah nilai
ClientIdAnda. Customer Secret adalah nilaiClientSecretAnda.
Menyiapkan daftar IP yang diizinkan untuk transfer Salesforce
Anda harus mengonfigurasi lingkungan Google Cloud dan akun Salesforce untuk menambahkan alamat IP tertentu ke daftar yang diizinkan untuk transfer data. Hal ini memastikan bahwa Salesforce hanya menerima koneksi dari alamat IP statis yang tepercaya.
Untuk melakukannya, Anda harus menyiapkan dan mengonfigurasi Google Cloud jaringan terlebih dahulu untuk menggunakan alamat IP statis:
- Siapkan penafsiran alamat jaringan (NAT) publik dengan alamat IP statis dalam jaringan Virtual Private Cloud Anda. CloudNAT harus dikonfigurasi dalam region yang sama dengan set data tujuan untuk transfer data ini.
- Siapkan lampiran jaringan dalam jaringan VPC yang sama. Resource ini digunakan oleh BigQuery Data Transfer Service untuk mengakses layanan pribadi.
Selanjutnya, Anda harus mengonfigurasi rentang IP tepercaya di Salesforce. Saat menambahkan rentang alamat IP, gunakan alamat IP statis dariGoogle Cloud NAT publik untuk alamat IP awal dan akhir rentang IP.
Setelah menyiapkan rentang IP, Anda kini dapat menentukan IP statis saat menyiapkan konfigurasi transfer dengan memilih lampiran jaringan di kolom Lampiran jaringan.
Prasyarat BigQuery
- Pastikan Anda telah menyelesaikan semua tindakan yang diperlukan untuk mengaktifkan BigQuery Data Transfer Service.
- Buat set data BigQuery untuk menyimpan data Anda.
- Jika ingin menyiapkan notifikasi operasi transfer untuk Pub/Sub, pastikan Anda memiliki izin Identity and Access Management (IAM)
pubsub.topics.setIamPolicy. Izin Pub/Sub tidak diperlukan jika Anda hanya menyiapkan notifikasi email. Untuk mengetahui informasi selengkapnya, lihat Notifikasi operasi BigQuery Data Transfer Service.
Peran BigQuery yang diperlukan
Untuk mendapatkan izin yang diperlukan guna membuat transfer data BigQuery Data Transfer Service,
minta administrator untuk memberi Anda
peran IAM BigQuery Admin (roles/bigquery.admin)
di project Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk membuat transfer data BigQuery Data Transfer Service. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat transfer data BigQuery Data Transfer Service:
-
Izin BigQuery Data Transfer Service:
-
bigquery.transfers.update -
bigquery.transfers.get
-
-
Izin BigQuery:
-
bigquery.datasets.get -
bigquery.datasets.getIamPolicy -
bigquery.datasets.update -
bigquery.datasets.setIamPolicy -
bigquery.jobs.create
-
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Untuk mengetahui informasi selengkapnya, lihat Memberikan akses bigquery.admin.
Menyiapkan transfer data Salesforce
Tambahkan data Salesforce ke BigQuery dengan menyiapkan konfigurasi transfer menggunakan salah satu opsi berikut:
Konsol
Buka halaman Transfer data di konsol Google Cloud .
Klik Create transfer.
Di bagian Source type, untuk Source, pilih Salesforce.
Di bagian Detail sumber data, lakukan hal berikut:
- Untuk Network attachment, pilih lampiran jaringan dari daftar. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan daftar IP yang diizinkan untuk transfer Salesforce
- Untuk My Domain, masukkan My Domain Salesforce Anda.
- Untuk Client ID, masukkan Kunci Konsumen aplikasi terhubung Salesforce.
- Untuk Client secret, masukkan Rahasia Pengguna aplikasi yang terhubung ke Salesforce.
- Untuk Ingestion type, pilih Full atau Incremental.
- Jika Anda memilih Incremental (Pratinjau), untuk Write mode, pilih Append atau Upsert. Untuk mengetahui informasi selengkapnya tentang mode penulisan yang berbeda, lihat Transfer penuh atau inkremental.
- Untuk objek Salesforce yang akan ditransfer, klik Jelajahi:
- Pilih objek yang akan ditransfer ke set data tujuan BigQuery. Anda juga dapat memasukkan objek secara manual untuk disertakan dalam transfer data di kolom ini.
- Jika Anda telah memilih Tambahkan sebagai mode penulisan inkremental, Anda harus memilih kolom sebagai kolom tanda air.
- Jika Anda telah memilih Upsert sebagai mode penulisan inkremental, Anda harus memilih kolom sebagai kolom tanda air, lalu memilih satu atau beberapa kolom sebagai kunci utama.
Di bagian Setelan tujuan, untuk Set data, pilih set data yang Anda buat untuk menyimpan data.
Di bagian Transfer config name, untuk Display name, masukkan nama untuk transfer data.
Di bagian Schedule options:
- Dalam daftar Frekuensi berulang, pilih opsi untuk menentukan seberapa sering transfer data ini dijalankan. Untuk menentukan frekuensi pengulangan kustom, pilih Custom. Jika Anda memilih Sesuai permintaan, transfer ini akan berjalan saat Anda memicu transfer secara manual.
- Jika berlaku, pilih Start now atau Start at set time, dan masukkan tanggal mulai dan waktu proses.
Opsional: Di bagian Opsi notifikasi, lakukan hal berikut:
- Untuk mengaktifkan notifikasi email, klik tombol Notifikasi email. Saat Anda mengaktifkan opsi ini, administrator transfer akan menerima notifikasi email saat proses transfer gagal.
- Untuk mengaktifkan notifikasi operasi transfer Pub/Sub untuk transfer ini, klik tombol Notifikasi Pub/Sub. Anda dapat memilih nama topik, atau Anda dapat mengklik Buat topik untuk membuatnya.
Klik Simpan.
bq
Masukkan perintah bq mk
dan berikan flag pembuatan transfer
--transfer_config:
bq mk --transfer_config --project_id=PROJECT_ID --data_source=DATA_SOURCE --display_name=NAME --target_dataset=DATASET --params='PARAMETERS'
Dengan:
- PROJECT_ID (opsional): project ID Google Cloud Anda.
Jika
--project_idtidak diberikan untuk menentukan project tertentu, project default akan digunakan. - DATA_SOURCE: sumber data —
salesforce. - NAME: nama tampilan untuk konfigurasi transfer data. Nama transfer dapat berupa nilai apa pun yang memungkinkan Anda mengidentifikasi transfer jika perlu mengubahnya nanti.
- DATASET: set data target untuk konfigurasi transfer.
PARAMETERS: parameter untuk konfigurasi transfer yang dibuat dalam format JSON. Contoh:
--params='{"param":"param_value"}'. Berikut adalah parameter untuk transfer data Salesforce:connector.authentication.oauth.clientId: Kunci Konsumen aplikasi terhubung Salesforce.connector.authentication.oauth.clientSecret: Rahasia Klien OAuth atau Rahasia Konsumen aplikasi yang terhubung ke Salesforce.connector.authentication.oauth.myDomain: Domain Saya Salesforce. Misalnya, jika URL domain Anda adalahexample.my.salesforce.com, maka nilainya adalahexample.ingestionType: tentukanFULLatauINCREMENTAL. Transfer inkremental didukung di pratinjau. Untuk mengetahui informasi selengkapnya, lihat Transfer penuh atau inkremental.writeMode: tentukanWRITE_MODE_APPENDatauWRITE_MODE_UPSERT.watermarkColumns: menentukan kolom dalam tabel Anda sebagai kolom watermark. Kolom ini wajib diisi untuk transfer inkremental.primaryKeys: menentukan kolom dalam tabel Anda sebagai kunci utama. Kolom ini wajib diisi untuk transfer inkremental.assets: jalur ke objek Salesforce yang akan ditransfer ke BigQuery.
Saat menentukan beberapa aset selama transfer inkremental, nilai
kolom watermarkColumns dan primaryKeys sesuai dengan
posisi nilai di kolom assets. Dalam contoh berikut,
Id sesuai dengan tabel Account, sedangkan master_label
dan type sesuai dengan tabel CaseHistory.
"primaryKeys":[['Id'], ['master_label','type']], "assets":["Account","CaseHistory"],
Perintah berikut akan membuat transfer data Salesforce inkremental di project default, dan menggunakan mode penulisan APPEND.
bq mk --transfer_config --target_dataset=mydataset --data_source=salesforce --display_name='My Transfer' --params='{"assets": ["Account", "CaseHistory"] "connector.authentication.oauth.clientId": "1234567890", "connector.authentication.oauth.clientSecret":"ABC12345", "connector.authentication.oauth.myDomain":"MyDomainName", "connector.authentication.username":"user1@force.com", "connector.authentication.password":"abcdef1234", "ingestionType":"incremental", "writeMode":"WRITE_MODE_UPSERT", "watermarkColumns":["SystemModstamp","CreatedDate"] "primaryKeys":[['Id'], ['master_label','type']]}'
API
Gunakan metode projects.locations.transferConfigs.create
dan berikan instance resource
TransferConfig.
Untuk menjalankan transfer data secara manual di luar jadwal reguler, Anda dapat memulai operasi pengisian ulang.
Pemetaan jenis data
Tabel berikut memetakan jenis data Salesforce ke jenis data BigQuery yang sesuai:
| Jenis data Salesforce | Jenis data BigQuery |
|---|---|
_bool |
BOOLEAN |
_int |
INTEGER |
_long |
INTEGER |
_double |
FLOAT |
currency |
FLOAT |
percent |
FLOAT |
geolocation (latitude) |
FLOAT |
geolocation (longitude) |
FLOAT |
date |
DATE |
datetime |
TIMESTAMP |
time |
TIME |
picklist |
STRING |
multipicklist |
STRING |
combobox |
STRING |
reference |
STRING |
base64 |
STRING |
textarea |
STRING |
phone |
STRING |
id |
STRING |
url |
STRING |
email |
STRING |
encryptedstring |
STRING |
datacategorygroupreference |
STRING |
location |
STRING |
address |
STRING |
anyType |
STRING |
Harga
Untuk mengetahui informasi harga tentang transfer Salesforce, lihat Harga Data Transfer Service.
Memecahkan masalah penyiapan transfer
Jika Anda mengalami masalah saat menyiapkan transfer data, lihat Masalah transfer Salesforce.
Langkah berikutnya
- Untuk ringkasan BigQuery Data Transfer Service, lihat Pengantar BigQuery Data Transfer Service.
- Untuk informasi cara menggunakan transfer, termasuk mendapatkan informasi tentang konfigurasi transfer, membuat listingan konfigurasi transfer, dan melihat histori pelaksanaan transfer, lihat Menangani transfer.
- Pelajari cara memuat data dengan operasi lintas-cloud.