Einrichten des Openflow Connector for Google BigQuery

Unter diesem Thema werden die Schritte zur Einrichtung des Openflow Connector for Google BigQuery beschrieben.

Voraussetzungen

  1. Lesen Sie Allgemeine Informationen zum Openflow Connector for Google BigQuery.

  2. Richten Sie Ihre Laufzeitumgebung ein.

  3. Stellen Sie bei der Verwendung von Openflow - Snowflake Deployments sicher, dass Sie Konfigurieren der erforderlichen Domänen gelesen haben und Zugriff auf die erforderlichen Domänen für den Konnektor gewährt haben.

  4. Sie haben Zugriff auf die Rolle des Openflow-Admins oder eine ähnliche Rolle, die Sie zur Verwaltung von Openflow verwenden.

  5. Wenn Sie einen Snowflake-Dienstbenutzenden zum Verwalten des Konnektors erstellen, haben Sie eine Schlüsselpaar-Authentifizierung erstellt. Weitere Informationen finden Sie unter Schlüsselpaar-Authentifizierung.

Erforderliche Endpunkte

Die folgenden Endpunkte sind erforderlich, damit der Konnektor funktioniert:

  • bigquery.googleapis.com:443

  • bigquerystorage.googleapis.com:443

  • oauth2.googleapis.com:443

Wenn Sie Openflow – BYOC verwenden, müssen Sie den ausgehenden Datenverkehr Ihres Cloud-Netzwerks so konfigurieren, dass der TLS 443-Zugriff auf die oben aufgeführten Endpunkte möglich ist. Wenn Sie Openflow - Snowflake Deployments verwenden, müssen Sie eine Netzwerkregel und eine Integration für den externen Zugriff (EAI) erstellen. Erteilen Sie dann der Snowflake-Rolle die Nutzungsberechtigung für die EAI.

BigQuery einrichten

  1. Erstellen Sie ein Google Cloud Service-Konto und erteilen Sie diesem die erforderlichen Berechtigungen zum Lesen von BigQuery-Daten. Der Konnektor verwendet dieses Konto für die Authentifizierung.

    Dieses Konto muss über die folgenden Berechtigungen verfügen:

Wichtig

BigQuery Data Editor muss auf Projektebene erteilt werden, nicht für einzelne Datensets. Der Konnektor fragt {project}.{region}.INFORMATION_SCHEMA.TABLES ab, um Tabellen in allen konfigurierten Regionen zu ermitteln – eine regionsbezogene Ansicht, die Zugriff auf Projektebene erfordert. Der Konnektor fragt zudem {project}.{dataset}.INFORMATION_SCHEMA.KEY_COLUMN_USAGE ab, um die Primärschlüssel für jede replizierte Tabelle zu bestimmen. Ohne Zugriff auf Projektebene schlägt die Abfrage mit einem Access Denied-Fehler fehl und der Konnektor wird nicht korrekt ausgeführt.

  1. Generieren Sie die entsprechende JSON-Schlüsseldatei für das Dienstkonto und laden Sie diese herunter. Sie benötigen den vollständigen Inhalt dieser Datei für die Konfiguration des Konnektors.

  2. Aktivieren Sie den Änderungsverlauf für jede Quelltabelle, damit der Konnektor eine inkrementelle Replikation durchführen kann. Dieses Feature ermöglicht BigQuery, Änderungen auf Zeilenebene (Einfügungen, Aktualisierungen und Löschungen) zu verfolgen, die der Konnektor verwendet, um Daten effizient zu synchronisieren.

    Führen Sie die folgende Abfrage in der BigQuery-Konsole für jede Tabelle aus:

    ALTER TABLE `project.dataset.table`
    SET OPTIONS (enable_change_history = TRUE);
    

Einrichten Ihres Snowflake-Kontos

Führen Sie als Openflow-Admin die folgenden Aufgaben aus, um Ihr Snowflake-Konto einzurichten:

  1. Snowflake-Servicebenutzer erstellen:

    USE ROLE USERADMIN;
    CREATE USER <openflow_service_user>
      TYPE=SERVICE
      COMMENT='Service user for Openflow automation';
    
  2. Speichern Sie den privaten Schlüssel für diesen Benutzenden in einer Datei, um sie für die Konfiguration des Konnektors bereitzustellen. Weitere Informationen finden Sie unter Schlüsselpaar-Authentifizierung.

    ALTER USER <openflow_service_user> SET RSA_PUBLIC_KEY = '<pubkey>';
    
  3. Erstellen Sie eine Datenbank, in der die replizierten Daten gespeichert werden, und richten Sie Berechtigungen für den Snowflake-Benutzenden zum Erstellen von Objekten in dieser Datenbank durch Gewähren der USAGE- undCREATESCHEMA-Berechtigungen ein.

    USE ROLE ACCOUNTADMIN;
    CREATE DATABASE IF NOT EXISTS <destination_database>;
    GRANT USAGE ON DATABASE <destination_database> TO USER <openflow_service_user>;
    GRANT CREATE SCHEMA ON DATABASE <destination_database> TO USER <openflow_service_user>;
    
  4. Erstellen Sie ein neues Warehouse oder verwenden Sie ein bestehendes Warehouse für den Konnektor.

    So erstellen Sie ein neues Warehouse:

    CREATE WAREHOUSE <openflow_warehouse>
    WITH
       WAREHOUSE_SIZE = 'MEDIUM'
       AUTO_SUSPEND = 300
       AUTO_RESUME = TRUE;
    GRANT USAGE, OPERATE ON WAREHOUSE <openflow_warehouse> TO USER <openflow_service_user>;
    

    Beginnen Sie mit dem Warehouse-Größe MEDIUM. Experimentieren Sie dann mit der Größe abhängig von der Menge der zu replizierenden Tabellen und der übertragenen Datenmenge.

    Um festzustellen, ob Sie die Größe erhöhen sollten, überwachen Sie den Konnektor und die Datenbank, während die Datenreplikation läuft. Wenn Sie erhebliche Verzögerungen bei der inkrementellen Replikation feststellen, experimentieren Sie mit einer größeren Warehouse-Größe. Eine große Anzahl von Tabellen können normalerweise besser mit Multi-Cluster-Warehouses und nicht anhand einer höheren Warehouse-Größe skaliert werden.

  5. Erstellen Sie eine Integration für den externen Zugriff, um den Zugriff auf das Netzwerk außerhalb von Snowflake zu ermöglichen.

    Vorsicht

    Wenn Ihre Laufzeit in Openflow – BYOC ausgeführt wird, müssen Sie keine Integration für den externen Zugriff (EAI) erstellen. Konfigurieren Sie stattdessen den ausgehenden Datenverkehr Ihres Cloud-Netzwerks so, dass der TLS 443-Zugriff auf die unten aufgeführten Endpunkte möglich ist.

    Erforderliche Host:Port-Endpunkte sind unter Erforderliche Endpunkte aufgeführt.

    Damit der Konnektor die erforderliche Google-APIs von einer Snowflake-gehosteten Laufzeitumgebung aus aufrufen kann, müssen Sie eine Netzwerkregel und eine Integration für den externen Zugriff (EAI) erstellen. Erteilen Sie dann der Snowflake-Rolle die Nutzungsberechtigung für die EAI.

    Um die Integration für den externen Zugriff und die Netzwerkregel zu erstellen und den Zugriff zu gewähren, führen Sie die folgenden Schritte aus:

    1. Erstellen Sie eine Netzwerkregel, um dem Konnektor den Zugriff auf die erforderlichen Google-APIs zu ermöglichen:

      USE ROLE ACCOUNTADMIN;
      USE DATABASE <openflow_network_db>;
      
      CREATE OR REPLACE NETWORK RULE openflow_<runtime_name>_network_rule
        TYPE = HOST_PORT
        MODE = EGRESS
        VALUE_LIST = (
          'bigquery.googleapis.com:443',
          'bigquerystorage.googleapis.com:443',
          'oauth2.googleapis.com:443'
        );
      
    2. Erstellen einer Integration für den externen Zugriff, die auf die Netzwerkregel verweist:

      CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION openflow_<runtime_name>_eai
        ALLOWED_NETWORK_RULES = (openflow_<runtime_name>_network_rule)
        ENABLED = TRUE;
      
    3. Zuweisen der USAGE-Berechtigung zur Ihrer Snowflake-Rolle für die Integration:

      GRANT USAGE ON INTEGRATION openflow_<runtime_name>_eai
        TO ROLE openflow_runtime_role_<runtime_name>;
      

Konnektor installieren

Um den Konnektor zu installieren, gehen Sie als Data Engineer wie folgt vor:

  1. Navigieren Sie zur Übersichtsseite von Openflow. Wählen Sie im Abschnitt Featured connectors die Option View more connectors aus.

  2. Suchen Sie auf der Seite Openflow-Konnektoren den Konnektor und wählen Sie Add to runtime.

  3. Wählen Sie im Dialogfeld Select runtime Ihre Laufzeitumgebung aus der Dropdown-Liste Available runtimes aus, und klicken Sie auf Add.

    Bemerkung

    Bevor Sie den Konnektor installieren, stellen Sie sicher, dass Sie in Snowflake eine Datenbank und ein Schema für den Konnektor erstellt haben, in dem die aufgenommenen Daten gespeichert werden.

  4. Authentifizieren Sie sich bei der Bereitstellung mit den Anmeldedaten Ihres Snowflake-Kontos und wählen Sie Allow, wenn Sie dazu aufgefordert werden, damit die Laufzeitanwendung auf Ihr Snowflake-Konto zugreifen kann. Die Installation des Konnektors nimmt einige Minuten in Anspruch.

  5. Authentifizieren Sie sich bei der Laufzeit mit den Anmeldeinformationen Ihres Snowflake-Kontos.

Das Openflow-Canvas wird mit der hinzugefügten Prozessgruppe des Konnektors angezeigt.

Konnektor konfigurieren

Um den Konnektor zu konfigurieren, führen Sie die folgenden Schritte aus:

  1. Klicken Sie mit der rechten Maustaste auf die hinzugefügte Laufzeitumgebung, und wählen Sie Parameters aus.

  2. Füllen Sie die erforderlichen Parameterwerte, wie unter Ablaufparameter angeben beschrieben.

Ablaufparameter angeben

In diesem Abschnitt werden die Ablaufparameter beschrieben, die Sie anhand der folgenden Parameterkontexte konfigurieren können:

  • `BigQuery-Quellparameter `_: Werden verwendet, um die Konfiguration für das Lesen von Daten aus BigQuery zu definieren.

  • `BigQuery-Zielparameter `_: Wird verwendet, um eine Verbindung zu Snowflake herzustellen.

  • `BigQuery-Aufnahmeparameter `_: Werden verwendet, um die zu replizierenden Tabellen und Ansichten anzugeben.

BigQuery-Quellparameter

Parameter

Beschreibung

BigQuery Project Name

Der eindeutige Bezeichner des Google Cloud-Projekts, das BigQuery-Datensets und -Tabellen enthält.

Wo zu finden: Öffnen Sie BigQuery Studio (Google Cloud Console >BigQuery) und bewegen Sie den Mauszeiger im linken Explorer-Bereich über Ihr Projekt, um die Projekt-ID anzuzeigen.

Beispiel: example-team-gcp

GCP Service Account JSON

Der gesamte Inhalt der JSON-Schlüsseldatei für das Google Cloud Platform-Dienstkonto, das für die Authentifizierung verwendet wird. Stellen Sie sicher, dass das Dienstkonto über die erforderliche IAM- Berechtigungen zum Ausführen vonBigQuery-Operationen verfügt, wie z. B. BigQuery Job User- und BigQuery Data Viewer-Rollen.

Wo zu finden: Google Cloud Console > IAM & Admin > Service Accounts > Dienstkonto auswählen > Registerkarte „Keys“ > Add key > Create new key > JSON. Dadurch wird eine .json-Datei heruntergeladen. Öffnen Sie diese und fügen Sie den gesamten Dateiinhalt (einschließlich der Klammern) in dieses Feld ein.

BigQuery-Zielparameter

Parameter

Beschreibung

Snowflake Authentication Strategy

Bei Verwendung von SPCS verwenden Sie SNOWFLAKE_SESSION_TOKEN als Wert für Authentifizierungsstrategie. Bei Verwendung von BYOC verwenden Sie KEY_PAIR als Wert für Authentifizierungsstrategie.

Beispiel: KEY_PAIR

Snowflake Account Identifier

Bei Verwendung von:

  • Session Token Authentication Strategy: Muss leer sein.

  • KEY_PAIR: Name des Snowflake-Kontos, in dem die Daten persistent gespeichert werden.

Destination Database

Der Name der Zieldatenbank, in die repliziert werden soll. Gemischte Groß-/Kleinschreibung wird unterstützt.

Snowflake Private Key File

Bei Verwendung von:

  • Strategie für die Authentifizierung mit Sitzungstoken: Die private Schlüsseldatei muss leer sein.

  • KEY_PAIR: Laden Sie die Datei hoch, die den RSA Private Key für die Authentifizierung bei Snowflake enthält, formatiert nach PKCS8-Standards und mit Standard-PEM-Header und -Footer. Die Header-Zeile beginnt mit -----BEGIN PRIVATE. Um die Datei des privaten Schlüssels hochzuladen, aktivieren Sie das Kontrollkästchen „Reference asset“.

Snowflake Private Key Password

Bei Verwendung von:

  • Session Token Authentication Strategy: Muss leer sein.

  • KEY_PAIR: Geben Sie das Kennwort an, das mit der privaten Snowflake-Schlüsseldatei verbunden ist.

Snowflake Role

Bei Verwendung von:

  • Session Token Authentication Strategy: Verwenden Sie Ihre Snowflake-Rolle. Sie finden Ihre Snowflake-Rolle in der Openflow-UI, indem Sie zu „View Details“ für Ihre Laufzeitumgebung navigieren.

  • KEY_PAIR Authentication Strategy: Verwenden Sie eine gültige Rolle, die für Ihren Dienstbenutzer konfiguriert ist.

Snowflake-Benutzername

Bei Verwendung von:

  • Session Token Authentication Strategy: Muss leer sein.

  • KEY_PAIR: Geben Sie den Benutzernamen an, der für die Verbindung mit der Snowflake-Instanz verwendet wird.

Snowflake Warehouse

Der Name des Warehouses, das vom Konnektor verwendet werden soll.

BigQuery-Aufnahmeparameter

Parameter

Beschreibung

BigQuery-Regionen

Gibt eine durch Kommas getrennte Liste der Speicherorte an, die für BigQuery-Datensets abgefragt werden sollen. Sie können sowohl regionale als auch multiregionale Standorte in derselben Liste kombinieren.

Beispiel: us,eu,us-west1

Included Dataset Names

Durch Kommas getrennte Liste der zu replizierenden Datensets (abgefragt über alle ausgewählten Regionen hinweg).

Beispiel: sales_data,marketing_leads

Included Dataset Names Regex

Regulärer Ausdruck zur Angabe der Namen der zu replizierenden Datasets (abgefragt über alle ausgewählten Regionen hinweg). Kombiniert mit den Namen der enthaltenen Datensets, um alle übereinstimmenden Datensets einzuschließen. Hinweis: Der REGEXP-Ausdruck sollte mit der RE2-Syntax von Google übereinstimmen.

Beispiel: ^sales_.*

Included Table Names

Durch Kommas getrennte Liste von Tabellen, die über mehrere Datasets hinweg repliziert werden sollen.

Beispiel: transactions,customers

Included Table Names Regex

Regulärer Ausdruck zur Angabe von Tabellennamen, die über Datensets hinweg repliziert werden sollen. Kombiniert mit den Namen der enthaltenen Tabellen, um alle übereinstimmenden Tabellen einzuschließen. Hinweis: Der REGEXP-Ausdruck sollte mit der RE2-Syntax von Google übereinstimmen.

Beispiel: ^revenue_.*

Included View Names

Durch Kommas getrennte Liste von Ansichten, die über Datasets hinweg repliziert werden sollen.

Beispiel: customer_summary,revenue_report

Included View Names Regex

Regulärer Ausdruck zur Angabe von Ansichtsnamen, die über Datensets hinweg repliziert werden sollen. Kombiniert mit den Namen der enthaltenen Ansichten, um alle übereinstimmenden Ansichten einzuschließen. Hinweis: Der REGEXP-Ausdruck sollte mit der RE2-Syntax von Google übereinstimmen.

Beispiel: ^report_.*

Incremental Sync Frequency

Wie oft der Konnektor eine inkrementelle Synchronisierung für jede Tabelle durchführt. Ausführungen überlappen sich nicht. Wenn ein Zyklus länger dauert als das konfigurierte Intervall, wartet der nächste Ausführung, bis der vorherige beendet ist. Weil BigQuery die maximale Größe des Fensters auf 24 Stunden begrenzt, muss der Zeitplan häufiger ausgeführt werden.

Beispiel: 10m

View Sync Frequency

Wie oft der Konnektor die Synchronisierung für jede Ansicht ausführt. Ausführungen überlappen sich nicht. Wenn ein Zyklus länger dauert als das konfigurierte Intervall, wartet der nächste Ausführung, bis der vorherige beendet ist. Die Ansichtserfassung unterstützt nichtCDC, nur Abschneiden und Laden.

Beispiel: 1h

Temporary Table Dataset

Datenset, in dem die erforderlichen temporären Tabellen erstellt werden, z. B.CDC-Journaltabellen oder temporäre Tabellen für die Ansichtserfassung. Snowflake empfiehlt, für temporäre Tabellen ein separates Datenset zu verwenden und das aufgenommene Datenset für diesen Zweck nicht zu verwenden.

Beispiel: openflow_temp

Führen Sie den Ablauf aus

  1. Klicken Sie mit der rechten Maustaste auf die Ebene, und wählen Sie Enable all Controller Services.

  2. Klicken Sie mit der rechten Maustaste auf die importierte Prozessgruppe und wählen Sie Start. Der Konnektor startet die Datenaufnahme.

Nächste Schritte

  • Informationen zu Aufgaben, die Sie nach der Installation des Konnektors ausführen können, finden Sie unter Konnektor verwenden.

  • Informationen zur Überwachung des Ablaufs finden Sie unter Ablauf überwachen.