Oracle-Daten in BigQuery laden

Wenn Sie wiederkehrende Datenübertragungen aus Ihrer Oracle-Datenbank in 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. Nachdem Sie die Übertragungskonfiguration eingerichtet haben, überträgt der BigQuery Data Transfer Service die neuesten Daten nach dem angegebenen Zeitplan in eine BigQuery-Tabelle.

Allgemeine Informationen zu Oracle-Übertragungen, einschließlich Konfigurationsoptionen, finden Sie unter Einführung in Oracle-Datenübertragungen.

Beschränkungen

Oracle-Übertragungen unterliegen den folgenden Einschränkungen:

  • Die maximale Anzahl gleichzeitiger Verbindungen zu einer Oracle-Datenbank ist begrenzt. Daher ist die Anzahl der gleichzeitigen Übertragungen zu einer einzelnen Oracle-Datenbank auf diesen Höchstwert begrenzt.
  • Das Mindestintervall zwischen wiederkehrenden Oracle Übertragungen beträgt 15 Minuten. Das Standardintervall für eine wiederkehrende Übertragung beträgt 24 Stunden.
  • 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 Übertragung ü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.
  • Während einer Datenübertragung identifiziert der Oracle-Connector indexierte und partitionierte Schlüsselspalten, um Ihre Daten in parallelen Batches zu übertragen. Aus diesem Grund empfehlen wir, Primärschlüsselspalten anzugeben oder indexierte Spalten in Ihrer Tabelle zu verwenden, um die Leistung zu verbessern und die Fehlerrate bei Ihren Datenübertragungen zu senken.
    • Wenn Sie indexierte oder Primärschlüssel-Einschränkungen haben, werden nur die folgenden Spaltentypen für die Erstellung paralleler Batches unterstützt:
      • INTEGER
      • TINYINT
      • SMALLINT
      • FLOAT
      • REAL
      • DOUBLE
      • NUMERIC
      • BIGINT
      • DECIMAL
      • DATE
    • Oracle-Datenübertragungen,bei denen keine Primärschlüssel- oder indexierten Spalten verwendet werden,können nicht mehr als 2.000.000 Datensätze pro Tabelle unterstützen.
  • Wenn sich Ihr konfigurierter Netzwerkanhang und Ihre VM-Instanz (Virtual Machine) in verschiedenen Regionen befinden, kann es zu regionsübergreifenden Datenbewegungen kommen, wenn Sie Daten aus Oracle übertragen.

Einschränkungen bei inkrementellen Übertragungen

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

  • Sie können nur TIMESTAMP-Spalten als Watermark-Spalten auswählen.
  • Die inkrementelle Aufnahme wird nur für Assets mit gültigen Watermark-Spalten unterstützt.
  • Die Werte in einer Watermark-Spalte müssen monoton steigend sein.
  • Bei inkrementellen Übertragungen können keine Löschvorgänge in der Quelltabelle synchronisiert werden.
  • Eine einzelne Übertragungskonfiguration kann nur entweder die inkrementelle oder die vollständige Aufnahme unterstützen.
  • Sie können Objekte in der Liste asset nach der ersten inkrementellen Aufnahme nicht mehr aktualisieren.
  • Sie können den Schreibmodus in einer Übertragungskonfiguration nach der ersten inkrementellen Aufnahme nicht mehr ändern.
  • Sie können die Watermark-Spalte oder den Primärschlüssel nach der ersten inkrementellen Aufnahme 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 in den inkrementellen Aufnahmemodus aktualisieren, werden bei der ersten Datenübertragung nach dieser Aktualisierung 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 inkrementeller Übertragungen finden Sie unter Vollständige oder inkrementelle Übertragungen.

Hinweis

In den folgenden Abschnitten werden die Schritte beschrieben, die Sie vor dem Erstellen einer Oracle-Übertragung ausführen müssen.

Voraussetzungen für Oracle

Beim Erstellen einer Oracle-Übertragung benötigen Sie außerdem die folgenden Oracle-Datenbankinformationen.

Parametername Beschreibung
database Name der Datenbank.
host

Hostname oder IP-Adresse der Datenbank.

port

Portnummer der Datenbank.

username

Nutzername für den Zugriff auf die Datenbank.

password

Passwort für den Zugriff auf die Datenbank.

Voraussetzungen für BigQuery

Erforderliche BigQuery-Rollen

Bitten Sie Ihren Administrator, Ihnen die BigQuery-Administrator (roles/bigquery.admin) IAM-Rolle für Ihr Projekt zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Erstellen einer Datenübertragung mit dem BigQuery Data Transfer Service 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 Datenübertragung mit dem BigQuery Data Transfer Service erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen , um die notwendigen Berechtigungen anzuzeigen, die erforderlich sind:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um eine Datenübertragung mit dem 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.

Oracle-Daten in BigQuery laden

Fügen Sie Oracle-Daten in BigQuery hinzu, 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 Oracle aus.

  4. Führen Sie im Abschnitt Details zur Datenquelle folgende Schritte aus:

    • Wählen Sie unter Netzwerkanhang einen vorhandenen Netzwerkanhang aus oder klicken Sie auf Netzwerkanhang erstellen.
    • Geben Sie unter Host den Hostnamen oder die IP-Adresse der Datenbank ein.
    • Geben Sie unter Port die Portnummer ein, die die Oracle-Datenbank für eingehende Verbindungen verwendet, z. B. 1521.
    • Geben Sie unter Datenbankname den Namen der Oracle-Datenbank ein.
    • Geben Sie unter Verbindungstyp den URL-Typ der Verbindung ein, entweder SERVICE, SID oder TNS.
    • Geben Sie unter Nutzername den Nutzernamen des Nutzers ein, der die Oracle-Datenbankverbindung initiiert.
    • Geben Sie unter Passwort das Passwort des Nutzers ein, der die Oracle-Datenbankverbindung initiiert.
    • Wählen Sie für TLS-Modus eine Option aus dem Drop-down-Menü aus. Weitere Informationen zu TLS-Modi finden Sie unter TLS-Konfiguration.
    • Geben Sie für Trusted PEM Certificate das öffentliche Zertifikat der Zertifizierungsstelle ein, die das TLS-Zertifikat des Datenbankservers ausgestellt hat. Weitere Informationen finden Sie unter Zertifikat für vertrauenswürdigen Serverzertifikat (PEM).
    • Wählen Sie für Aufnahmetyp die Option Vollständig oder Inkrementell aus.
    • Klicken Sie unter Zu übertragende Oracle-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 für 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, wenn eine Übertragung fehlschlägt.
    • Klicken Sie auf den Ein/Aus-Button Pub/Sub-Benachrichtigungen, um Pub/Sub-Ausführungsbenachrichtigungen für diese Übertragung zu aktivieren. Sie können den Namen für das 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=DISPLAY_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 – oracle.
  • DISPLAY_NAME: Der Anzeigename für die Übertragungskonfiguration. Der Datenü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 Oracle-Datenübertragung:

    • connector.networkAttachment (optional): Name des Netzwerkanhangs, der eine Verbindung zur Oracle-Datenbank herstellen soll.
    • connector.authentication.Username: der Nutzername des Oracle-Kontos.
    • connector.authentication.Password: das Passwort des Oracle-Kontos.
    • connector.database ist der Name der Oracle-Datenbank.
    • connector.endpoint.host: der Hostname oder die IP-Adresse der Datenbank.
    • connector.endpoint.port: die Portnummer, die die Oracle-Datenbank für eingehende Verbindungen verwendet, z. B. 1520
    • connector.connectionType: der URL-Typ der Verbindung, entweder SERVICE, SID oder TNS.
    • connector.tls.mode: Geben Sie eine TLS-Konfiguration an, die mit dieser Übertragung verwendet werden soll:
      • ENCRYPT_VERIFY_CA_AND_HOST zum Verschlüsseln von Daten und Überprüfen der Zertifizierungsstelle und des Hostnamens
      • ENCRYPT_VERIFY_CA zum Verschlüsseln von Daten und Überprüfen nur der Zertifizierungsstelle
      • ENCRYPT_VERIFY_NONE nur für die Datenverschlüsselung
      • DISABLE für keine Verschlüsselung oder Überprüfung
    • connector.tls.trustedServerCertificate: (optional) Geben Sie ein oder mehrere PEM-codierte Zertifikate an. Nur erforderlich, wenn connector.tls.mode auf ENCRYPT_VERIFY_CA_AND_HOST oder ENCRYPT_VERIFY_CA gesetzt ist.
    • ingestionType: Geben Sie entweder full oder incremental an. Inkrementelle Übertragungen werden in der Vorschauunterstützt. Weitere Informationen finden Sie unter Vollständige oder inkrementelle Übertragungen.
    • writeMode: Geben Sie entweder WRITE_MODE_APPEND oder WRITE_MODE_UPSERT an.
    • watermarkColumns: Geben Sie Spalten in Ihrer Tabelle als Watermark-Spalten 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 Oracle-Objekten, die in BigQuery übertragen werden sollen, im Format: DATABASE_NAME/SCHEMA_NAME/TABLE_NAME

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 dep_id der Tabelle DB1/USER1/DEPARTMENT, während report_by und report_title der Tabelle DB1/USER1/EMPLOYEES entsprechen.

      "primaryKeys":[['dep_id'], ['report_by','report_title']],
      "assets":["DB1/USER1/DEPARTMENT","DB1/USER1/EMPLOYEES"],
  

Mit dem folgenden Befehl wird beispielsweise eine Oracle-Datenübertragung im Standardprojekt mit allen erforderlichen Parametern erstellt:

bq mk
    --transfer_config
    --target_dataset=mydataset
    --data_source=oracle
    --display_name='My Transfer'
    --params='{"assets":["DB1/USER1/DEPARTMENT","DB1/USER1/EMPLOYEES"],
        "connector.authentication.username": "User1",
        "connector.authentication.password":"ABC12345",
        "connector.database":"DB1",
        "connector.endpoint.host":"192.168.0.1",
        "connector.endpoint.port":1520,
        "connector.connectionType":"SERVICE",
        "connector.tls.mode": "ENCRYPT_VERIFY_CA_AND_HOST",
        "connector.tls.trustedServerCertificate": "PEM-encoded certificate",
        "connector.networkAttachment":
        "projects/dev-project1/regions/us-central1/networkattachments/na1"
        "ingestionType":"incremental",
        "writeMode":"WRITE_MODE_APPEND",
        "watermarkColumns":["createdAt","createdAt"],
        "primaryKeys":[['dep_id'], ['report_by','report_title']]}'

API

Verwenden Sie die projects.locations.transferConfigs.create Methode und geben Sie eine Instanz der TransferConfig Ressource an.

Wenn Sie die Übertragungskonfiguration speichern, löst der Oracle-Connector automatisch eine Übertragungsausführung gemäß Ihrer Zeitplanoption aus. Bei jeder Übertragungsausführung überträgt der Oracle-Connector alle verfügbaren Daten aus Oracle in BigQuery.

Wenn Sie eine Datenübertragung außerhalb des 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 Oracle-Übertragungsprobleme.

Nächste Schritte