Salesforce-Daten in BigQuery laden
Wenn Sie wiederkehrende Datenübertragungen von Salesforce Sales Cloud zu BigQuery planen möchten, erstellen Sie eine Übertragungskonfiguration, um festzulegen, welche Datenobjekte übertragen werden sollen und wie oft die Datenübertragung geplant werden soll. Sie können eine Übertragungskonfiguration entweder mit der Google Cloud Console, dem bq-Befehlszeilentool oder der BigQuery Data Transfer Service API erstellen. Nachdem Sie die Transferkonfiguration eingerichtet haben, überträgt der BigQuery Data Transfer Service die neuesten Daten gemäß dem angegebenen Zeitplan in eine BigQuery-Tabelle.
Informationen zur Funktionsweise einer Salesforce-Übertragung finden Sie unter Einführung in Salesforce-Datenübertragungen.
Beschränkungen
Salesforce-Datenübertragungen unterliegen den folgenden Einschränkungen:
- Der Salesforce-Connector unterstützt nur Übertragungen aus der Salesforce Sales Cloud.
- Der Salesforce-Connector unterstützt nur Felder, die in der Salesforce Bulk API V1 Version 64.0 enthalten sind. Einige Felder, die in früheren Versionen der Salesforce Bulk API enthalten waren, werden möglicherweise nicht unterstützt. Weitere Informationen zu diesen Änderungen am Salesforce-Connector finden Sie unter Salesforce Bulk API.
Der Salesforce-Connector verwendet die Salesforce Bulk API V1, um eine Verbindung zum Salesforce Sales Cloud-Endpunkt herzustellen und Daten abzurufen.
- Der Salesforce-Connector unterstützt nur die Salesforce Bulk API V1, um eine Verbindung zur Salesforce-Instanz herzustellen, und nur die Übertragung von Entitäten, die von der Salesforce Bulk API unterstützt werden. Weitere Informationen dazu, welche Entitäten unterstützt werden, finden Sie unter Entität wird von der Bulk API nicht unterstützt.
Der Salesforce-Connector unterstützt die Übertragung der folgenden Objekte mit Binärfeldern nicht.
AttachmentContentVersionDocumentStaticResourceScontrolEmailCaptureMailMergeTemplate
Das Mindestintervall zwischen wiederkehrenden Datenübertragungen beträgt 15 Minuten. Das Standardintervall für eine wiederkehrende Übertragung beträgt 24 Stunden.
Aufgrund von Salesforce-Verarbeitungslimits kann das gleichzeitige Planen zu vieler Datenübertragungen zu Verzögerungen oder Fehlern führen. Wir empfehlen, Salesforce-Datenübertragungen auf Folgendes zu beschränken:
- Pro Übertragungskonfiguration dürfen maximal 10 Assets vorhanden sein.
- Sie dürfen in Ihren verschiedenen Transferkonfigurationen maximal 10 gleichzeitige Übertragungsausführungen haben.
Eine einzelne Übertragungskonfiguration kann jeweils nur eine Datenübertragungsausführung unterstützen. Wenn eine zweite Datenübertragung geplant ist, bevor die erste abgeschlossen ist, wird nur die erste Datenübertragung abgeschlossen. Alle anderen Datenübertragungen, die sich mit der ersten überschneiden, werden übersprungen.
- Wenn Sie übersprungene Übertragungen innerhalb einer einzelnen Übertragungskonfiguration vermeiden möchten, empfehlen wir, die Zeitspanne zwischen großen Datenübertragungen zu verlängern. Konfigurieren Sie dazu die Wiederholungshäufigkeit.
Wenn Sie Netzwerkanhänge für Ihre Datenübertragung verwenden, müssen Sie eine öffentliche Netzwerkadressübersetzung (NAT) mit einer statischen IP-Adresse einrichten. Weitere Informationen finden Sie unter IP-Zulassungsliste für Salesforce-Übertragungen einrichten.
Wenn sich der konfigurierte Netzwerkanhang und die VM-Instanz in verschiedenen Regionen befinden, kann es beim Übertragen von Daten aus Salesforce zu regionsübergreifenden Datenverschiebungen kommen.
Einschränkungen bei inkrementellen Übertragungen
Inkrementelle Salesforce-Übertragungen unterliegen den folgenden Einschränkungen:- Sie können nur
TIMESTAMPSpalten als Wasserzeichenspalten auswählen. - Die inkrementelle Aufnahme wird nur für Assets mit gültigen Wasserzeichenspalten unterstützt.
- Die Werte in einer Wasserzeichenspalte müssen monoton steigend sein.
- Bei inkrementellen Übertragungen können Löschvorgänge in der Quelltabelle nicht synchronisiert werden.
- Eine einzelne Übertragungskonfiguration kann nur entweder die inkrementelle oder die vollständige Aufnahme unterstützen.
- Nach dem ersten inkrementellen Aufnahmevorgang können Sie Objekte in der Liste
assetnicht mehr aktualisieren. - Sie können den Schreibmodus in einer Übertragungskonfiguration nach der ersten inkrementellen Aufnahme nicht mehr ändern.
- Nach der ersten inkrementellen Aufnahme können Sie die Wasserzeichenspalte oder den Primärschlüssel nicht mehr ändern.
- Die BigQuery-Zieltabelle wird mit dem angegebenen Primärschlüssel geclustert und unterliegt den Einschränkungen für geclusterte Tabellen.
- Wenn Sie eine vorhandene Übertragungskonfiguration zum ersten Mal auf den inkrementellen Aufnahmemodus aktualisieren, werden bei der ersten Datenübertragung nach diesem Update alle verfügbaren Daten aus Ihrer Datenquelle übertragen. Bei allen nachfolgenden inkrementellen Datenübertragungen werden nur die neuen und aktualisierten Zeilen aus Ihrer Datenquelle übertragen.
Informationen zur Funktionsweise von inkrementellen Übertragungen finden Sie unter Vollständige oder inkrementelle Übertragungen.
Hinweis
In den folgenden Abschnitten werden die Schritte beschrieben, die Sie vor dem Erstellen einer Salesforce-Datenübertragung ausführen müssen.
Verbundene Salesforce-Anwendung erstellen
Sie müssen eine Salesforce Connected App mit den folgenden erforderlichen Konfigurationen erstellen:
- Konfigurieren Sie die allgemeinen Informationen in der verbundenen App. Der Name der verbundenen App sowie E-Mail-Adresse des Ansprechpartners sind für eine Salesforce-Übertragung erforderlich.
- OAuth-Einstellungen aktivieren mit den folgenden Konfigurationen:
- Markieren Sie das Kästchen Enable OAuth Settings (OAuth-Einstellungen aktivieren).
- Geben Sie im Feld Callback-URL Folgendes ein:
- Geben Sie für eine Produktionsumgebung
https://login.salesforce.com/services/oauth2/tokenein. - Geben Sie für eine Sandbox-Umgebung
https://test.salesforce.com/services/oauth2/tokenein.
- Geben Sie für eine Produktionsumgebung
- Prüfen Sie, ob das Kästchen JSON Web Token (JWT)-basierte Zugriffstokens für benannte Nutzer ausstellen nicht ausgewählt ist.
- Wählen Sie im Abschnitt Ausgewählte OAuth-Bereiche die Option Nutzerdaten über APIs verwalten (api) aus.
- Wählen Sie Enable Client Credentials Flow (Ablauf für Clientanmeldedaten aktivieren) aus und klicken Sie dann in der angezeigten Benachrichtigung auf OK.
Nachdem Sie die verbundene App mit den erforderlichen Konfigurationen konfiguriert haben, klicken Sie auf Speichern. Sie werden zur Detailseite der neu erstellten verbundenen App weitergeleitet.
Nachdem Sie die verbundene App erstellt haben, müssen Sie den Clientanmeldedaten-Ablauf so konfigurieren:
- Klicken Sie auf Einrichten.
- Suchen Sie in der Suchleiste nach Verbundene Apps.
- Klicken Sie auf Apps verwalten > Verbundene Apps. Wenn Sie Salesforce Lightning Experience verwenden, klicken Sie auf Verbundene Apps verwalten.
- Klicken Sie bei der von Ihnen erstellten verbundenen App auf Bearbeiten.
- Die Seite App-Details wird angezeigt. Geben Sie im Bereich Client Credentials Flow (Ablauf für Clientanmeldedaten) Ihren Nutzernamen in das Feld Run As (Ausführen als) ein. Mit dem Suchtool in diesem Feld können Sie prüfen, ob Sie den richtigen Nutzer ausgewählt haben.
- Klicken Sie auf Speichern.
Erforderliche Salesforce-Informationen
Beim Erstellen einer Salesforce-Datenübertragung benötigen Sie folgende Salesforce-Informationen:
| Parametername | Beschreibung |
|---|---|
myDomain |
Ihre Meine Domain in Salesforce. |
clientId |
Consumer-Key der verbundenen Salesforce-Anwendung. |
clientSecret |
OAuth-Clientschlüssel oder Consumer Secret der verbundenen Salesforce-Anwendung. |
Wählen Sie eine der folgenden Optionen aus, um die Werte für myDomain, clientID und clientSecret abzurufen:
Salesforce Classic
myDomain-Details abrufen
So finden Sie Ihre myDomain:
- Melden Sie sich auf der Salesforce-Plattform an.
- Klicken Sie auf Einrichten.
- Suchen Sie in der Suchleiste nach My Domain (Meine Domain).
- Klicken Sie in den Suchergebnissen auf Domain Management (Domainverwaltung) > My Domain (Meine Domain).
Im Abschnitt Details zu „Meine Domain“ wird Ihre myDomain als Präfix unter Aktuelle URL für „Meine Domain“ angezeigt. Wenn die URL „Meine Domain“ beispielsweise example.my.salesforce.com lautet, ist der zu verwendende myDomain-Wert example.
ClientId- und ClientSecret-Details abrufen
So finden Sie die Werte für ClientId und ClientSecret:
- Melden Sie sich auf der Salesforce-Plattform an.
- Klicken Sie auf Einrichten.
- Suchen Sie in der Suchleiste nach Apps.
- Klicken Sie in den Suchergebnissen im Bereich Erstellen auf Erstellen > Anwendungen.
- Klicken Sie auf den Namen einer verbundenen App.
- Klicken Sie auf der Detailseite Verbundene Apps auf Consumer-Details verwalten.
- Bestätigen Sie Ihre Identität mit einer der registrierten Methoden. Sie können die Detailseite des Nutzers bis zu fünf Minuten lang aufrufen, bevor Sie aufgefordert werden, Ihre Identität noch einmal zu bestätigen.
- Auf der Seite Nutzerdetails ist der Consumer-Key Ihr
ClientId-Wert. Der Clientschlüssel ist IhrClientSecret-Wert.
Salesforce Lightning Experience
myDomain-Details abrufen
So finden Sie Ihre myDomain:
- Melden Sie sich auf der Salesforce-Plattform an.
Klicken Sie auf Einrichten.
Suchen Sie in der Suchleiste nach My Domain (Meine Domain).
Klicken Sie in den Suchergebnissen auf Company Settings (Unternehmenseinstellungen) > My Domain (Meine Domain).
Im Abschnitt Details zu „Meine Domain“ wird Ihre myDomain als Präfix unter Aktuelle URL für „Meine Domain“ angezeigt. Wenn die URL „Meine Domain“ beispielsweise example.my.salesforce.com lautet, ist der zu verwendende myDomain-Wert example.
ClientId- und ClientSecret-Details abrufen
- Melden Sie sich auf der Salesforce-Plattform an.
- Klicken Sie auf Einrichten.
- Suchen Sie in der Suchleiste nach Apps.
- Klicken Sie in den Suchergebnissen auf Apps > App-Manager.
- Suchen Sie nach einer verbundenen App und klicken Sie auf Ansehen.
- Klicken Sie auf Manage Consumer Details (Consumer-Details verwalten).
- Bestätigen Sie Ihre Identität mit einer der registrierten Methoden. Sie können die Detailseite des Nutzers bis zu fünf Minuten lang aufrufen, bevor Sie aufgefordert werden, Ihre Identität noch einmal zu bestätigen.
- Auf der Seite Nutzerdetails ist der Consumer-Key Ihr
ClientId-Wert. Der Clientschlüssel ist IhrClientSecret-Wert.
Zulassungsliste für IP-Adressen für Salesforce-Übertragungen einrichten
Sie müssen Ihre Google Cloud -Umgebung und Ihr Salesforce-Konto so konfigurieren, dass bestimmte IP-Adressen der Zulassungsliste für Datenübertragungen hinzugefügt werden. Dadurch wird sichergestellt, dass Salesforce nur Verbindungen von einer vertrauenswürdigen, statischen IP-Adresse akzeptiert. Dieser Schritt ist erforderlich, wenn Sie Netzwerkanhänge für Ihre Datenübertragungen verwenden.
Dazu müssen Sie zuerst Ihr Google Cloud -Netzwerk so einrichten und konfigurieren, dass es eine statische IP-Adresse verwendet:
- Richten Sie eine öffentliche Network Address Translation (NAT) mit einer statischen IP-Adresse in Ihrem Virtual Private Cloud-Netzwerk ein. CloudNAT muss in derselben Region wie das Ziel-Dataset für diese Datenübertragung konfiguriert sein.
- Richten Sie einen Netzwerkanhang im selben VPC-Netzwerk ein. Diese Ressource wird von BigQuery Data Transfer Service für den Zugriff auf private Dienste verwendet.
Als Nächstes müssen Sie die vertrauenswürdigen IP-Bereiche in Salesforce konfigurieren. Verwenden Sie beim Hinzufügen des IP-Adressbereichs die statische IP-Adresse aus IhrerGoogle Cloud Public NAT sowohl für die Anfangs- als auch für die End-IP-Adresse des IP-Bereichs.
Nachdem Sie die IP-Bereiche eingerichtet haben, können Sie die statische IP-Adresse angeben, wenn Sie die Übertragungskonfiguration einrichten. Wählen Sie dazu im Feld Netzwerkanhang den Netzwerkanhang aus.
Voraussetzungen für BigQuery
- Überprüfen Sie, ob Sie alle erforderlichen Aktionen ausgeführt haben, damit Sie den BigQuery Data Transfer Service aktivieren können.
- Erstellen Sie ein BigQuery-Dataset zum Speichern Ihrer Daten.
- Wenn Sie Benachrichtigungen zur Übertragungsausführung für Pub/Sub einrichten möchten, benötigen Sie die IAM-Berechtigung (Identity and Access Management)
pubsub.topics.setIamPolicy. Pub/Sub-Berechtigungen sind nicht erforderlich, wenn Sie nur E-Mail-Benachrichtigungen einrichten. Weitere Informationen finden Sie unter Ausführungsbenachrichtigungen im BigQuery Data Transfer Service.
Erforderliche BigQuery-Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle BigQuery-Administrator (roles/bigquery.admin) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen einer BigQuery Data Transfer Service-Datenübertragung benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen einer BigQuery Data Transfer Service-Datenübertragung erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind zum Erstellen einer BigQuery Data Transfer Service-Datenübertragung erforderlich:
-
Berechtigungen für BigQuery Data Transfer Service:
-
bigquery.transfers.update -
bigquery.transfers.get
-
-
BigQuery-Berechtigungen:
-
bigquery.datasets.get -
bigquery.datasets.getIamPolicy -
bigquery.datasets.update -
bigquery.datasets.setIamPolicy -
bigquery.jobs.create
-
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Weitere Informationen finden Sie unter bigquery.admin-Zugriff gewähren.
Salesforce-Datenübertragung einrichten
Fügen Sie Salesforce-Daten zu BigQuery hinzu, indem Sie eine Übertragungskonfiguration mit einer der folgenden Optionen einrichten:
Console
Rufen Sie in der Google Cloud Console die Seite „Datenübertragungen“ auf.
Klicken Sie auf Übertragung erstellen.
Wählen Sie im Abschnitt Source type (Quelltyp) für Source (Quelle) die Option Salesforce aus.
Führen Sie im Abschnitt Details zur Datenquelle folgende Schritte aus:
- Wählen Sie unter Netzwerkanhang einen Netzwerkanhang aus der Liste aus. Sie müssen Public NAT konfigurieren und Ihre IP-Zulassungsliste einrichten, bevor Sie einen Netzwerkanhang mit dieser Datenübermittlung verwenden können.
- Geben Sie unter Meine Domain Ihre Salesforce-Domain ein.
- Geben Sie als Client-ID den Consumer-Key der verbundenen Salesforce-Anwendung ein.
- Geben Sie als Clientschlüssel das Consumer Secret der verbundenen Salesforce-Anwendung ein.
- Wählen Sie für Aufnahmetyp die Option Vollständig oder Inkrementell aus.
- Wenn Sie Inkrementell als Schreibmodus auswählen, wählen Sie entweder Anhängen oder Upsert aus. Weitere Informationen zu den verschiedenen Schreibmodi finden Sie unter Vollständige oder inkrementelle Übertragungen.
- Klicken Sie unter Zu übertragende Salesforce-Objekte auf Durchsuchen:
- Wählen Sie alle Objekte aus, die an das BigQuery-Ziel-Dataset übertragen werden sollen. Sie können in dieses Feld auch manuell alle Objekte eingeben, die in die Datenübertragung einbezogen werden sollen.
- Wenn Sie Append als inkrementellen Schreibmodus ausgewählt haben, müssen Sie eine Spalte als Watermark-Spalte auswählen.
- Wenn Sie Upsert als inkrementellen Schreibmodus gewählt haben, müssen Sie eine Spalte als Watermark-Spalte und darauf eine oder mehrere Spalten als Primärschlüssel auswählen.
Wählen Sie im Abschnitt Zieleinstellungen als Dataset das Dataset aus, das Sie zum Speichern Ihrer Daten erstellt haben.
Geben Sie im Abschnitt Konfigurationsname für Übertragung als Anzeigename einen Namen für die Datenübertragung ein.
Im Abschnitt Zeitplanoptionen:
- Wählen Sie in der Liste Wiederholungshäufigkeit aus, wie oft diese Datenübertragung ausgeführt werden soll. Wenn Sie eine benutzerdefinierte Wiederholungshäufigkeit angeben möchten, wählen Sie Benutzerdefiniert aus. Wenn Sie On demand auswählen, wird diese Datenübertragung ausgeführt, wenn Sie die Übertragung manuell auslösen.
- Wählen Sie gegebenenfalls Jetzt starten oder Zu festgelegter Zeit starten aus und geben Sie ein Startdatum und eine Laufzeit an.
Optional: Gehen Sie im Abschnitt Benachrichtigungsoptionen so vor:
- Klicken Sie zum Aktivieren von E‑Mail-Benachrichtigungen auf den Ein/Aus-Button E‑Mail-Benachrichtigung. Wenn Sie diese Option aktivieren, erhält der Übertragungsadministrator eine E‑Mail-Benachrichtigung, falls ein Übertragungsvorgang fehlschlägt.
- Klicken Sie auf den Ein/Aus-Button Pub/Sub-Benachrichtigungen, um Pub/Sub-Benachrichtigungen über die Ausführung von Übertragungen für diese Übertragung zu aktivieren. Sie können Ihr Thema auswählen oder auf Thema erstellen klicken, um eines zu erstellen.
Klicken Sie auf Speichern.
bq
Geben Sie den Befehl bq mk ein und geben Sie das Flag --transfer_config für die Übertragungserstellung an.
bq mk --transfer_config --project_id=PROJECT_ID --data_source=DATA_SOURCE --display_name=NAME --target_dataset=DATASET --params='PARAMETERS'
Wobei:
- PROJECT_ID (optional): Ihre Google Cloud -Projekt-ID.
Wenn
--project_idnicht bereitgestellt wird, um ein bestimmtes Projekt anzugeben, wird das Standardprojekt verwendet. - DATA_SOURCE. Die Datenquelle –
salesforce. - NAME: Der Anzeigename für die Datenübertragungskonfiguration. Der Übertragungsname kann ein beliebiger Wert sein, mit dem Sie die Übertragung identifizieren können, wenn Sie sie später ändern müssen.
- DATASET: Das Ziel-Dataset für die Übertragungskonfiguration.
PARAMETERS: die Parameter für die erstellte Übertragungskonfiguration im JSON-Format. Beispiel:
--params='{"param":"param_value"}'. Im Folgenden finden Sie die Parameter für eine Salesforce-Datenübertragung:connector.authentication.oauth.clientId: der Consumer-Key der verbundenen Salesforce-Anwendung.connector.authentication.oauth.clientSecret: OAuth-Clientschlüssel oder Consumer-Secret der verbundenen Salesforce-Anwendung.connector.authentication.oauth.myDomain: Salesforce-Meine Domain. Wenn Ihre Domain-URL beispielsweiseexample.my.salesforce.comlautet, ist der Wertexample.ingestionType: Geben Sie entwederfulloderincrementalan. Weitere Informationen finden Sie unter Vollständige oder inkrementelle Übertragungen.writeMode: Geben Sie entwederWRITE_MODE_APPENDoderWRITE_MODE_UPSERTan.watermarkColumns: Geben Sie Spalten in Ihrer Tabelle als Wasserzeichenspalten an. Dieses Feld ist für inkrementelle Übertragungen erforderlich.primaryKeys: Geben Sie Spalten in Ihrer Tabelle als Primärschlüssel an. Dieses Feld ist für inkrementelle Übertragungen erforderlich.assets: der Pfad zu den Salesforce-Objekten, die in BigQuery übertragen werden sollen.
Wenn Sie bei einer inkrementellen Übertragung mehrere Assets angeben, entsprechen die Werte der Felder watermarkColumns und primaryKeys der Position der Werte im Feld assets. Im folgenden Beispiel entspricht Id der Tabelle Account, während master_label und type der Tabelle CaseHistory entsprechen.
"primaryKeys":[['Id'], ['master_label','type']], "assets":["Account","CaseHistory"],
Mit dem folgenden Befehl wird eine inkrementelle Salesforce-Datenübertragung im Standardprojekt erstellt und der Schreibmodus APPEND verwendet.
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
Verwenden Sie die Methode projects.locations.transferConfigs.create und geben Sie eine Instanz der Ressource TransferConfig an.
Wenn Sie eine Datenübertragung außerhalb Ihres regulären Zeitplans manuell ausführen möchten, können Sie einen Backfill-Vorgang starten.
Fehler bei der Übertragungseinrichtung beheben
Unterstützung bei Problemen mit der Einrichtung von Datenübertragungen finden Sie unter Salesforce-Übertragungsprobleme.
Nächste Schritte
- Eine Übersicht über den BigQuery Data Transfer Service finden Sie unter Einführung in BigQuery Data Transfer Service.
- Informationen zum Verwenden von Übertragungen, einschließlich des Abrufs von Informationen zu einer Übertragungskonfiguration, des Auflistens von Übertragungskonfigurationen und des Aufrufs des Ausführungsverlaufs der Übertragung finden Sie unter Mit Übertragungen arbeiten.
- Daten mit BigQuery Omni-Vorgängen laden