Salesforce-Daten in BigQuery laden

Wenn Sie wiederkehrende Datenübertragungen von Ihrer Salesforce Sales Cloud nach BigQuery planen möchten, erstellen Sie eine Übertragungskonfiguration, in der Sie angeben, welche Datenobjekte übertragen werden sollen und wie oft die Datenübertragung geplant werden soll. Sie können eine Übertragungskonfiguration entweder über die Google Cloud Console, das bq-Befehlszeilentool oder die BigQuery Data Transfer Service API erstellen. Nachdem Sie die Übertragungskonfiguration eingerichtet haben, überträgt der BigQuery Data Transfer Service die neuesten Daten gemäß dem angegebenen Zeitplan in eine BigQuery-Tabelle.

Weitere Informationen zu Salesforce-Ü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ären Feldern nicht.

    • Attachment
    • ContentVersion
    • Document
    • StaticResource
    • Scontrol
    • EmailCapture
    • MailMergeTemplate
  • Das Mindestintervall zwischen wiederkehrenden Übertragungen beträgt 15 Minuten. Das Standardintervall für eine wiederkehrende Übertragung beträgt 24 Stunden.

  • Aufgrund der Verarbeitungslimits von Salesforce kann es zu Verzögerungen oder Fehlern kommen, wenn zu viele Datenübertragungen gleichzeitig geplant werden. 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 Übertragungskonfigurationen maximal 10 gleichzeitige Übertragungen ausführen.
  • Eine einzelne Übertragungskonfiguration kann jeweils nur eine Datenübertragung 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.

    • Um übersprungene Übertragungen innerhalb einer einzelnen Übertragungskonfiguration zu vermeiden, empfehlen wir, die Zeit zwischen großen Datenübertragungen zu verlängern, indem Sie die Wiederholungshäufigkeit konfigurieren.
  • Wenn Sie Netzwerkanhänge für die Datenübertragung verwenden, müssen Sie Public NAT (Network Address Translation) mit einer statischen IP-Adresse einrichten. Weitere Informationen finden Sie unter IP-Zulassungsliste für Salesforce-Übertragungen einrichten.

  • Wenn sich Ihre konfigurierte Netzwerkverbindung und die VM-Instanz in verschiedenen Regionen befinden, kann es bei der Übertragung von Daten aus Salesforce zu regionsübergreifenden Datenübertragungen kommen.

Einschränkungen bei der inkrementellen Übertragung

Inkrementelle Salesforce-Übertragungen unterliegen den folgenden Einschränkungen:

  • Sie können nur TIMESTAMP Spalten 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 ansteigen.
  • Bei inkrementellen Übertragungen können Löschvorgänge in der Quelltabelle nicht synchronisiert werden.
  • Eine einzelne Übertragungskonfiguration kann nur die inkrementelle oder die vollständige Aufnahme unterstützen.
  • Sie können Objekte in der Liste asset nach dem ersten inkrementellen Import nicht mehr aktualisieren.
  • Sie können den Schreibmodus in einer Übertragungskonfiguration nach dem ersten inkrementellen Erfassungslauf nicht mehr ändern.
  • Nach dem ersten inkrementellen Import können Sie die Spalte für das Wasserzeichen oder den Primärschlüssel nicht mehr ändern.
  • Die BigQuery-Zieltabelle wird mit dem angegebenen Primärschlüssel geclustert und unterliegt den Beschränkungen für geclusterte Tabellen.
  • Wenn Sie eine vorhandene Übertragungskonfiguration zum ersten Mal auf den inkrementellen Erfassungsmodus umstellen, werden bei der ersten Datenübertragung nach dieser Umstellung 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-Übertragung ausführen müssen.

Verbundene Salesforce-App erstellen

Sie müssen eine verbundene Salesforce-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:
    • Klicken Sie das Kästchen OAuth-Einstellungen aktivieren an.
    • Geben Sie im Feld Callback-URL Folgendes ein:
      • Geben Sie für eine Produktionsumgebung https://login.salesforce.com/services/oauth2/token ein.
      • Geben Sie für eine Sandbox-Umgebung https://test.salesforce.com/services/oauth2/token ein.
    • 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.
  • Entfernen Sie das Häkchen aus dem Kästchen Required Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows (Erforderliche PKCE-Erweiterung (Proof Key for Code Exchange) für unterstützte Autorisierungsabläufe).
  • Markieren Sie das Kästchen Enable Client Credentials Flow (Ablauf für Clientanmeldedaten aktivieren) und klicken Sie dann auf OK, wenn die entsprechende Benachrichtigung angezeigt wird.

Wenn 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 auch den Client-Anmeldedatenfluss konfigurieren. Gehen Sie dazu so vor:

  1. Klicken Sie auf Einrichten.
  2. Suchen Sie in der Suchleiste nach Verbundene Apps.
  3. Klicken Sie auf Apps verwalten > Verbundene Apps. Wenn Sie Salesforce Lightning Experience verwenden, klicken Sie auf Verbundene Apps verwalten.
  4. Klicken Sie auf die verbundene App, die Sie erstellt haben, und dann auf Bearbeiten.
  5. Die Seite App-Details wird angezeigt. Geben Sie im Bereich Ablauf für Clientanmeldedaten Ihren Nutzernamen in das Feld Ausführen als ein. Mit dem Suchtool in diesem Feld können Sie sicherstellen, dass Sie den richtigen Nutzer ausgewählt haben.
  6. 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 zu ermitteln:

Salesforce Classic

myDomain-Details abrufen

So finden Sie Ihr myDomain:

  1. Melden Sie sich auf der Salesforce-Plattform an.
  2. Klicken Sie auf Einrichten.
  3. Suchen Sie in der Suchleiste nach Meine Domain.
  4. 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:

  1. Melden Sie sich auf der Salesforce-Plattform an.
  2. Klicken Sie auf Einrichten.
  3. Suchen Sie in der Suchleiste nach Apps.
  4. Klicken Sie in den Suchergebnissen im Bereich Build auf Erstellen > Apps.
  5. Klicken Sie auf einen Namen der verbundenen App.
  6. Klicken Sie auf der Seite Verbundene Apps auf Consumer-Details verwalten.
  7. Bestätigen Sie Ihre Identität mit einer der registrierten Methoden. Sie können die Seite mit den Verbraucherdetails bis zu fünf Minuten lang aufrufen, bevor Sie aufgefordert werden, Ihre Identität noch einmal zu bestätigen.
  8. Auf der Seite Consumer Details (Consumer-Details) ist der Consumer Key (Consumer-Key) Ihr ClientId-Wert. Der Kundenschlüssel ist Ihr ClientSecret-Wert.

Salesforce Lightning Experience

myDomain-Details abrufen

So finden Sie Ihr myDomain:

  1. Melden Sie sich auf der Salesforce-Plattform an.
  2. Klicken Sie auf Einrichten.

    Öffnen Sie die Einrichtungsseite in der Salesforce-Plattform.

  3. Suchen Sie in der Suchleiste nach Meine Domain.

  4. Klicken Sie in den Suchergebnissen auf Unternehmenseinstellungen > 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

  1. Melden Sie sich auf der Salesforce-Plattform an.
  2. Klicken Sie auf Einrichten.
  3. Suchen Sie in der Suchleiste nach Apps.
  4. Klicken Sie in den Suchergebnissen auf Apps > App Manager.
  5. Suchen Sie nach einer verbundenen App und klicken Sie auf Ansehen.
  6. Klicken Sie auf Consumer-Details verwalten.
  7. Bestätigen Sie Ihre Identität mit einer der registrierten Methoden. Sie können die Seite mit den Verbraucherdetails bis zu fünf Minuten lang aufrufen, bevor Sie aufgefordert werden, Ihre Identität noch einmal zu bestätigen.
  8. Auf der Seite Consumer Details (Consumer-Details) ist der Consumer Key (Consumer-Key) Ihr ClientId-Wert. Der Kundenschlüssel ist Ihr ClientSecret-Wert.

Zulassungsliste für IP-Adressen für Salesforce-Übertragungen einrichten

Sie müssen Ihre Google Cloud Umgebung und Ihr Salesforce-Konto konfigurieren, um bestimmte IP-Adressen auf die Zulassungsliste für Datenübertragungen zu setzen. So wird sichergestellt, dass Salesforce nur Verbindungen von einer vertrauenswürdigen, statischen IP-Adresse akzeptiert. Dieser Schritt ist erforderlich, wenn Sie Netzwerkverbindungen für Ihre Datenübertragungen verwenden.

Dazu müssen Sie zuerst Ihr Google Cloud -Netzwerk für die Verwendung einer statischen IP-Adresse einrichten und konfigurieren:

  1. Richten Sie eine öffentliche Network Address Translation (NAT) mit einer statischen IP-Adresse in Ihrem VPC-Netzwerk (Virtual Private Cloud) ein. CloudNAT muss in derselben Region wie das Zieldataset für diese Datenübertragung konfiguriert werden.
  2. Richten Sie einen Netzwerkanhang im selben VPC-Netzwerk ein. Diese Ressource wird vom BigQuery Data Transfer Service verwendet, um auf private Dienste zuzugreifen.

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 IhremGoogle Cloud öffentlichen NAT sowohl für die Start- 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 Ihre Übertragungskonfiguration einrichten. Wählen Sie dazu Ihre Netzwerkverbindung im Feld Netzwerkverbindung aus.

Voraussetzungen für BigQuery

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 erforderlich, um eine Datenübertragung für den BigQuery Data Transfer Service zu erstellen:

  • 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 Zugriff auf bigquery.admin gewähren.

Salesforce-Datenübertragung einrichten

Sie können Salesforce-Daten in BigQuery einfügen, indem Sie eine Übertragungskonfiguration mit einer der folgenden Optionen einrichten:

Console

  1. Rufen Sie in der Google Cloud -Console die Seite „Datenübertragungen“ auf.

    Zu „Datenübertragungen”

  2. Klicken Sie auf Übertragung erstellen.

  3. Wählen Sie im Abschnitt Source type (Quelltyp) für Source (Quelle) die Option Salesforce aus.

  4. 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.
    • 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.
  5. Wählen Sie im Abschnitt Zieleinstellungen als Dataset das Dataset aus, das Sie zum Speichern Ihrer Daten erstellt haben.

  6. Geben Sie im Abschnitt Konfigurationsname für Übertragung als Anzeigename einen Namen für die Datenübertragung ein.

  7. 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.
  8. 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.
  9. 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_id nicht 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-Übertragung:

    • connector.authentication.oauth.clientId: Der Consumer-Key der verbundenen Salesforce-Anwendung.
    • connector.authentication.oauth.clientSecret: OAuth-Clientschlüssel oder Consumerschlüssel der verbundenen Salesforce-Anwendung.
    • connector.authentication.oauth.myDomain: die Salesforce-Meine Domain. Wenn Ihre Domain-URL beispielsweise example.my.salesforce.com ist, lautet der Wert example.
    • ingestionType: Geben Sie entweder full oder incremental an. Weitere Informationen finden Sie unter Vollständige oder inkrementelle Übertragungen.
    • writeMode: Geben Sie entweder WRITE_MODE_APPEND oder WRITE_MODE_UPSERT an.
    • watermarkColumns: Spalten in Ihrer Tabelle als Wasserzeichenspalten angeben. 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 mit dem Schreibmodus APPEND erstellt.

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 die Übertragungskonfiguration speichern, wird vom Salesforce-Connector automatisch ein Übertragungsvorgang gemäß Ihrer Zeitplanoption ausgelöst. Bei jedem Übertragungsvorgang werden mit dem Salesforce-Connector alle verfügbaren Daten aus Salesforce in BigQuery übertragen.

Wenn Sie eine Datenübertragung manuell außerhalb des regulären Zeitplans ausführen möchten, können Sie einen Backfill-Vorgang starten.

Fehler bei der Übertragungseinrichtung beheben

Bei Problemen mit der Einrichtung von Datenübertragungen finden Sie weitere Informationen unter Salesforce-Übertragungsprobleme.

Nächste Schritte