Memuat data Salesforce ke BigQuery

Untuk menjadwalkan transfer data berulang dari Salesforce Sales Cloud ke BigQuery, buat konfigurasi transfer untuk menentukan objek data yang akan ditransfer, dan seberapa sering transfer data dijadwalkan. Anda dapat membuat konfigurasi transfer menggunakan konsol Google Cloud , alat command line bq, atau BigQuery Data Transfer Service API. Setelah Anda menyiapkan konfigurasi transfer, BigQuery Data Transfer Service akan mentransfer data terbaru ke tabel BigQuery sesuai jadwal yang ditentukan.

Untuk mempelajari cara kerja transfer Salesforce, lihat Pengantar transfer data Salesforce.

Batasan

Transfer data Salesforce tunduk pada batasan berikut:

  • Konektor Salesforce hanya mendukung transfer dari Salesforce Sales Cloud.
  • Konektor Salesforce hanya mendukung kolom yang disertakan dalam Salesforce Bulk API V1 versi 64.0. Beberapa kolom yang disertakan dalam versi Salesforce Bulk API sebelumnya mungkin tidak didukung. Untuk informasi selengkapnya tentang perubahan pada konektor Salesforce ini, lihat Salesforce Bulk API.
  • Konektor Salesforce menggunakan Salesforce Bulk API V1 untuk terhubung ke endpoint Salesforce Sales Cloud guna mengambil data.

    • Konektor Salesforce hanya mendukung Salesforce Bulk API V1 untuk terhubung ke instance Salesforce, dan hanya mendukung transfer entity yang didukung oleh Salesforce Bulk API. Untuk mengetahui informasi selengkapnya tentang entity yang didukung, lihat Entity tidak didukung oleh Bulk API.
  • Konektor Salesforce tidak mendukung transfer objek berikut yang memiliki kolom biner.

    • Attachment
    • ContentVersion
    • Document
    • StaticResource
    • Scontrol
    • EmailCapture
    • MailMergeTemplate
  • 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:

    • Memiliki maksimal 10 aset per konfigurasi transfer.
    • Di berbagai konfigurasi transfer, jangan jalankan lebih dari 10 transfer secara bersamaan.
  • Satu konfigurasi transfer hanya dapat mendukung satu operasi transfer data pada waktu tertentu. Jika transfer data kedua dijadwalkan untuk berjalan sebelum transfer pertama selesai, hanya transfer data pertama yang akan selesai, sedangkan transfer data lain yang tumpang-tindih dengan transfer pertama akan dilewati.

    • Untuk menghindari transfer yang dilewati dalam satu konfigurasi transfer, sebaiknya tingkatkan durasi waktu antara transfer data besar dengan mengonfigurasi Repeat frequency.
  • Jika Anda menggunakan lampiran jaringan dengan transfer data, Anda harus menyiapkan penafsiran alamat jaringan (NAT) publik dengan alamat IP statis. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan daftar IP yang diizinkan untuk transfer Salesforce.

  • Jika lampiran jaringan dan instance virtual machine (VM) yang Anda konfigurasi berada di region yang berbeda, mungkin akan ada perpindahan data lintas region saat Anda mentransfer data dari Salesforce.

Batasan transfer inkremental

Transfer Salesforce inkremental tunduk pada batasan berikut:

  • Anda hanya dapat memilih TIMESTAMP kolom sebagai kolom watermark.
  • Penyerapan inkremental hanya didukung untuk aset dengan kolom watermark yang valid.
  • Nilai dalam kolom watermark 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 asset setelah penyerapan inkremental pertama dijalankan.
  • Anda tidak dapat mengubah mode tulis dalam konfigurasi transfer setelah operasi penyerapan inkremental pertama.
  • Anda tidak dapat mengubah kolom watermark atau kunci utama setelah operasi penyerapan inkremental pertama.
  • Tabel BigQuery tujuan dikelompokkan menggunakan kunci utama yang disediakan dan tunduk pada batasan tabel pengelompokan.
  • Saat Anda memperbarui konfigurasi transfer yang ada ke mode penyerapan inkremental untuk pertama kalinya, transfer data pertama setelah pembaruan tersebut akan mentransfer semua data yang tersedia dari sumber data Anda. Setiap transfer data inkremental berikutnya hanya akan mentransfer baris baru dan yang diperbarui dari sumber data Anda.

Untuk mempelajari cara kerja transfer inkremental, lihat Transfer penuh atau inkremental.

Sebelum memulai

Bagian berikut menjelaskan langkah-langkah yang perlu Anda lakukan sebelum membuat transfer data Salesforce.

Membuat Aplikasi Terhubung Salesforce

Anda harus membuat Aplikasi Terhubung Salesforce dengan konfigurasi yang diperlukan berikut:

  • Konfigurasikan Informasi Dasar di Aplikasi Terhubung. Kolom Nama Aplikasi Terhubung dan Email Kontak diperlukan untuk transfer Salesforce.
  • Aktifkan Setelan OAuth dengan konfigurasi berikut:
    • Centang kotak Enable OAuth Settings.
    • Di kolom Callback URL, masukkan URL berikut:
      • Untuk lingkungan produksi, masukkan https://login.salesforce.com/services/oauth2/token.
      • Untuk lingkungan sandbox, masukkan https://test.salesforce.com/services/oauth2/token.
    • Pastikan kotak centang Issue JSON Web Token (JWT)-based access tokens for named users tidak dicentang.
  • Di bagian Selected OAuth Scopes, pilih Manage user data via APIs (api).
  • Pilih Enable Client Credentials Flow, lalu klik OK pada pemberitahuan yang muncul.

Setelah Anda mengonfigurasi Connected App dengan konfigurasi yang diperlukan, klik Save. Anda akan dialihkan ke halaman detail Connected App yang baru dibuat.

Setelah membuat Aplikasi Terhubung, Anda juga harus mengonfigurasi alur kredensial klien dengan melakukan hal berikut:

  1. Klik Penyiapan.
  2. Di kotak penelusuran, telusuri Aplikasi Terhubung.
  3. Klik Manage Apps > Connected Apps. Jika Anda menggunakan Salesforce Lightning Experience, klik Manage Connected Apps.
  4. Di Aplikasi Terhubung yang telah Anda buat, klik Edit.
  5. Halaman Detail aplikasi 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 bahwa Anda telah memilih pengguna yang benar.
  6. 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 yang terhubung ke Salesforce.

Untuk mendapatkan nilai myDomain, clientID, dan clientSecret, pilih salah satu opsi berikut:

Salesforce Classic

Mengambil detail myDomain

Untuk menemukan myDomain, lakukan tindakan berikut:

  1. Login ke platform Salesforce.
  2. Klik Penyiapan.
  3. Di kotak penelusuran, telusuri My Domain.
  4. Di hasil penelusuran, klik Domain Management > My Domain.

Di bagian My Domain Details, myDomain Anda akan muncul sebagai awalan di Current My Domain URL. 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 tindakan berikut:

  1. Login ke platform Salesforce.
  2. Klik Penyiapan.
  3. Di kotak penelusuran, telusuri Aplikasi.
  4. Di bagian Build dalam hasil penelusuran, klik Create > Apps.
  5. Klik Nama Aplikasi Terhubung.
  6. Di halaman detail Connected Apps, klik Manage Consumer Details.
  7. Verifikasi identitas Anda menggunakan salah satu metode yang terdaftar. Anda dapat melihat halaman detail konsumen hingga lima menit sebelum diminta untuk memverifikasi identitas Anda lagi.
  8. Di halaman Consumer Details, Consumer Key adalah nilai ClientId Anda. Rahasia Pelanggan adalah nilai ClientSecret Anda.

Salesforce Lightning Experience

Mengambil detail myDomain

Untuk menemukan myDomain, lakukan tindakan berikut:

  1. Login ke platform Salesforce.
  2. Klik Penyiapan.

    Buka halaman Setup di platform Salesforce.

  3. Di kotak penelusuran, telusuri My Domain.

  4. Di hasil penelusuran, klik Company Settings > My Domain.

Di bagian My Domain Details, myDomain Anda akan muncul sebagai awalan di Current My Domain URL. Misalnya, jika URL My Domain adalah example.my.salesforce.com, nilai myDomain yang akan digunakan adalah example.

Mengambil detail ClientId dan ClientSecret

  1. Login ke platform Salesforce.
  2. Klik Penyiapan.
  3. Di kotak penelusuran, telusuri Aplikasi.
  4. Di hasil penelusuran, klik Apps > App Manager.
  5. Temukan aplikasi yang terhubung, lalu klik Lihat.
  6. Klik Manage Consumer Details.
  7. Verifikasi identitas Anda menggunakan salah satu metode yang terdaftar. Anda dapat melihat halaman detail konsumen hingga lima menit sebelum diminta untuk memverifikasi identitas Anda lagi.
  8. Di halaman Consumer Details, Consumer Key adalah nilai ClientId Anda. Rahasia Pelanggan adalah nilai ClientSecret Anda.

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. Langkah ini diperlukan jika Anda menggunakan lampiran jaringan dengan transfer data Anda.

Untuk melakukannya, Anda harus menyiapkan dan mengonfigurasi jaringan Google Cloud untuk menggunakan alamat IP statis:

  1. 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.
  2. 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 dari NAT publikGoogle Cloud 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 Network attachment.

Prasyarat BigQuery

Peran BigQuery yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk 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

  1. Buka halaman Data transfers di konsol Google Cloud .

    Buka Transfer data

  2. Klik Create transfer.

  3. Di bagian Source type, untuk Source, pilih Salesforce.

  4. Di bagian Detail sumber data, lakukan hal berikut:

    • Untuk Network attachment, pilih lampiran jaringan dari daftar. Anda harus mengonfigurasi Public NAT dan menyiapkan daftar IP yang diizinkan sebelum dapat menggunakan network attachment dengan transfer data ini.
    • Untuk My Domain, masukkan My Domain Salesforce Anda.
    • Untuk Client ID, masukkan Kunci Konsumen aplikasi yang terhubung ke Salesforce.
    • Untuk Client secret, masukkan Rahasia Konsumen aplikasi yang terhubung ke Salesforce.
    • Untuk Ingestion type, pilih Full atau Incremental.
      • Jika Anda memilih Incremental untuk Write mode, pilih Append atau Upsert. Untuk mengetahui informasi selengkapnya tentang berbagai mode tulis, lihat Transfer penuh atau inkremental.
    • Untuk Salesforce objects to transfer, klik Browse:
      • Pilih objek yang akan ditransfer ke set data tujuan BigQuery. Anda juga dapat memasukkan objek apa pun secara manual untuk disertakan dalam transfer data di kolom ini.
      • Jika telah memilih Tambahkan sebagai mode penulisan inkremental, Anda harus memilih kolom sebagai kolom watermark.
      • Jika telah memilih Upsert sebagai mode penulisan inkremental, Anda harus memilih kolom sebagai kolom watermark, lalu memilih satu atau beberapa kolom sebagai kunci utama.
  5. Di bagian Destination settings, untuk Dataset, pilih set data yang Anda buat untuk menyimpan data Anda.

  6. Di bagian Transfer config name, untuk Display name, masukkan nama tampilan untuk transfer data.

  7. Di bagian Schedule options:

    • Dalam daftar Repeat frequency, pilih opsi untuk menentukan seberapa sering transfer data ini dijalankan. Untuk menentukan frekuensi pengulangan kustom, pilih Custom. Jika Anda memilih On-demand, transfer ini akan berjalan saat Anda memicu transfer secara manual.
    • Jika perlu, pilih Start now atau Start at set time, lalu masukkan tanggal mulai dan waktu proses.
  8. 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 Pub/Sub notifications. Anda dapat memilih nama topik, atau mengklik Buat topik untuk membuatnya.
  9. 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_id tidak 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 dari aplikasi yang terhubung ke Salesforce.
    • connector.authentication.oauth.clientSecret: Rahasia Klien OAuth atau Rahasia Konsumen aplikasi yang terhubung ke Salesforce.
    • connector.authentication.oauth.myDomain: Salesforce My Domain. Misalnya, jika URL domain Anda adalah example.my.salesforce.com, nilainya adalah example.
    • ingestionType: tentukan full atau incremental. Untuk informasi selengkapnya, lihat Transfer penuh atau inkremental.
    • writeMode: tentukan WRITE_MODE_APPEND atau WRITE_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 membuat transfer data Salesforce inkremental di project default, dan menggunakan mode tulis 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.

Saat Anda menyimpan konfigurasi transfer, konektor Salesforce akan otomatis memicu operasi transfer sesuai dengan opsi jadwal Anda. Dengan setiap operasi transfer, konektor Salesforce mentransfer semua data yang tersedia dari Salesforce ke BigQuery.

Untuk menjalankan transfer data secara manual di luar jadwal reguler, Anda dapat memulai operasi pengisian ulang.

Memecahkan masalah penyiapan transfer

Jika Anda mengalami masalah saat menyiapkan transfer data, lihat Masalah transfer Salesforce.

Langkah berikutnya