Oracle-Daten in BigQuery laden

Mit dem BigQuery Data Transfer Service für Oracle-Connector können Sie Daten aus Oracle in BigQuery laden. Mit dem BigQuery Data Transfer Service können Sie wiederkehrende Übertragungsjobs planen, mit denen Ihre neuesten Daten aus Oracle in BigQuery eingefügt werden.

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.
  • Sie müssen einen Netzwerkanhang einrichten, wenn für eine Oracle-Datenbankverbindung keine öffentliche IP-Adresse verfügbar ist. Beachten Sie dabei die folgenden Anforderungen:
    • Die Datenquelle muss über das Subnetz zugänglich sein, in dem sich der Netzwerkanhang befindet.
    • Der Netzwerkanhang darf sich nicht im Subnetz im Bereich 240.0.0.0/24 befinden.
    • Netzwerkanhänge können nicht gelöscht werden, wenn aktive Verbindungen zum Anhang bestehen. Wenn Sie einen Netzwerkanhang löschen möchten, wenden Sie sich an Cloud Customer Care.
    • Für die Multi-Region us muss sich der Netzwerkanhang in der Region us-central1 befinden. Für die Multi-Region eu muss sich der Netzwerkanhang in der Region europe-west4 befinden.
  • Das Mindestintervall zwischen wiederkehrenden Oracle Übertragungen beträgt 15 Minuten. Das Standardintervall für eine wiederkehrende Übertragung beträgt 24 Stunden.
  • Für eine einzelne Übertragungskonfiguration kann jeweils nur eine Datenübertragung ausgeführt werden. 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 sich Ihre konfigurierte Netzwerkverbindung und Ihre VM-Instanz in verschiedenen Regionen befinden, kann es bei der Übertragung von Daten von Oracle zu regionsübergreifenden Datenübertragungen kommen.

Optionen für die Datenaufnahme

In den folgenden Abschnitten finden Sie Informationen zu den Optionen für die Datenaufnahme, wenn Sie eine Oracle-Datenübertragung einrichten.

TLS-Konfiguration

Der Oracle-Connector unterstützt die Konfiguration für Transport Layer Security (TLS), um Ihre Datenübertragungen nach BigQuery zu verschlüsseln. Der Oracle-Connector unterstützt die folgenden TLS-Konfigurationen:

  • Daten verschlüsseln und Zertifizierungsstelle und Hostname bestätigen: In diesem Modus wird der Server mit TLS über das TCPS-Protokoll vollständig validiert. Sie verschlüsselt alle übertragenen Daten und prüft, ob das Zertifikat des Datenbankservers von einer vertrauenswürdigen Zertifizierungsstelle signiert wurde. In diesem Modus wird auch geprüft, ob der Hostname, zu dem Sie eine Verbindung herstellen, genau mit dem allgemeinen Namen (Common Name, CN) oder einem alternativen Antragstellernamen (Subject Alternative Name, SAN) im Zertifikat des Servers übereinstimmt. In diesem Modus wird verhindert, dass Angreifer ein gültiges Zertifikat für eine andere Domain verwenden, um sich als Ihr Datenbankserver auszugeben.
    • Wenn Ihr Hostname nicht mit dem CN oder SAN des Zertifikats übereinstimmt, schlägt die Verbindung fehl. Sie müssen eine DNS-Auflösung konfigurieren, die dem Zertifikat entspricht, oder einen anderen Sicherheitsmodus verwenden.
    • Verwenden Sie diesen Modus, um PITM-Angriffe (Person-in-the-Middle) zu verhindern.
  • Daten verschlüsseln und nur Zertifizierungsstelle bestätigen: In diesem Modus werden alle Daten mit TLS über das TCPS-Protokoll verschlüsselt und es wird geprüft, ob das Zertifikat des Servers von einer Zertifizierungsstelle signiert wurde, der der Client vertraut. In diesem Modus wird der Hostname des Servers jedoch nicht überprüft. In diesem Modus wird eine Verbindung hergestellt, solange das Zertifikat gültig ist und von einer vertrauenswürdigen Zertifizierungsstelle ausgestellt wurde. Dabei spielt es keine Rolle, ob der Hostname im Zertifikat mit dem Hostnamen übereinstimmt, mit dem Sie eine Verbindung herstellen.
    • Verwenden Sie diesen Modus, wenn Sie sicherstellen möchten, dass Sie eine Verbindung zu einem Server herstellen, dessen Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle signiert ist, der Hostname jedoch nicht überprüft werden kann oder Sie keine Kontrolle über die Hostname-Konfiguration haben.
  • Nur Verschlüsselung: In diesem Modus werden alle Daten, die zwischen dem Client und dem Server übertragen werden, mit der nativen Netzwerkverschlüsselung von Oracle über den standardmäßigen TCP-Port verschlüsselt. Es wird keine Zertifikats- oder Hostname-Validierung durchgeführt.
    • Dieser Modus bietet ein gewisses Maß an Sicherheit, da Daten während der Übertragung geschützt werden. Er kann jedoch anfällig für PITM-Angriffe sein.
    • Verwenden Sie diesen Modus, wenn Sie sicherstellen müssen, dass alle Daten verschlüsselt sind, aber die Identität des Servers nicht überprüfen können oder möchten. Wir empfehlen, diesen Modus zu verwenden, wenn Sie mit privaten VPCs arbeiten.
  • Keine Verschlüsselung oder Bestätigung: In diesem Modus werden keine Daten verschlüsselt und es wird keine Zertifikats- oder Hostname-Bestätigung durchgeführt. Alle Daten werden als Nur-Text gesendet.
    • Wir empfehlen, diesen Modus nicht in einer Umgebung zu verwenden, in der vertrauliche Daten verarbeitet werden.
    • Wir empfehlen, diesen Modus nur zu Testzwecken in einem isolierten Netzwerk zu verwenden, in dem Sicherheit kein Problem darstellt.

Vertrauenswürdiges Serverzertifikat (PEM)

Wenn Sie den Modus Daten verschlüsseln und CA und Hostname bestätigen oder Daten verschlüsseln und CA bestätigen verwenden, können Sie auch ein oder mehrere PEM-codierte Zertifikate angeben. Diese Zertifikate sind in einigen Szenarien erforderlich, in denen der BigQuery Data Transfer Service die Identität Ihres Datenbankservers während der TLS-Verbindung bestätigen muss:

  • Wenn Sie ein Zertifikat verwenden, das von einer privaten Zertifizierungsstelle in Ihrer Organisation signiert wurde, oder ein selbst signiertes Zertifikat, müssen Sie die vollständige Zertifikatskette oder das einzelne selbst signierte Zertifikat angeben. Dies ist für Zertifikate erforderlich, die von internen Zertifizierungsstellen verwalteter Cloud-Anbieterdienste wie Amazon Relational Database Service (RDS) ausgestellt werden.
  • Wenn das Zertifikat Ihres Datenbankservers von einer öffentlichen Zertifizierungsstelle signiert wurde (z. B. Let's Encrypt, DigiCert oder GlobalSign), müssen Sie kein Zertifikat angeben. Die Stammzertifikate für diese öffentlichen Zertifizierungsstellen sind vorinstalliert und werden vom BigQuery Data Transfer Service als vertrauenswürdig eingestuft.

Sie können PEM-codierte Zertifikate im Feld Vertrauenswürdiges PEM-Zertifikat angeben, wenn Sie eine Oracle-Übertragungskonfiguration erstellen. Dabei gelten die folgenden Anforderungen:

  • Das Zertifikat muss eine gültige PEM-codierte Zertifikatskette sein.
  • Das Zertifikat muss vollständig korrekt sein. Fehlende Zertifikate in der Kette oder falsche Inhalte führen dazu, dass die TLS-Verbindung fehlschlägt.
  • Für ein einzelnes Zertifikat können Sie ein einzelnes, selbst signiertes Zertifikat vom Datenbankserver bereitstellen.
  • Für eine vollständige Zertifikatskette, die von einer privaten Zertifizierungsstelle ausgestellt wurde, müssen Sie die vollständige Vertrauenskette angeben. Dazu gehören das Zertifikat des Datenbankservers sowie alle Zwischen- und Stammzertifikate der Zertifizierungsstelle.

Hinweise

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 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.

Oracle-Daten in BigQuery laden

Fügen Sie Oracle-Daten in BigQuery ein, 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 Vertrauenswürdiges PEM-Zertifikat das öffentliche Zertifikat der Zertifizierungsstelle ein, die das TLS-Zertifikat des Datenbankservers ausgestellt hat. Weitere Informationen finden Sie unter Vertrauenswürdiges Serverzertifikat (PEM).
    • Klicken Sie für Zu übertragende Oracle-Objekte auf DURCHSUCHEN, um alle Tabellen auszuwählen, 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.
  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 die Ein/Aus-Schaltfläche E-Mail-Benachrichtigung. Wenn Sie diese Option aktivieren, erhält der Übertragungsadministrator eine E-Mail-Benachrichtigung, wenn eine Übertragung fehlschlägt.
    • Klicken Sie auf die Ein/Aus-Schaltfläche Pub/Sub-Benachrichtigungen, um Pub/Sub-Benachrichtigungen über die Ausführung von Übertragungen 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 für diese Übertragung verwendet werden soll:
      • ENCRYPT_VERIFY_CA_AND_HOST zum Verschlüsseln von Daten und zum Überprüfen von Zertifizierungsstelle und Hostname
      • ENCRYPT_VERIFY_CA zum Verschlüsseln von Daten und zum Überprüfen der Zertifizierungsstelle
      • ENCRYPT_VERIFY_NONE nur für die Datenverschlüsselung
      • DISABLE für keine Verschlüsselung oder Bestätigung
    • connector.tls.trustedServerCertificate: (optional) Geben Sie ein oder mehrere PEM-codierte Zertifikate an. Nur erforderlich, wenn connector.tls.mode ENCRYPT_VERIFY_CA_AND_HOST oder ENCRYPT_VERIFY_CA ist.
    • assets: der Pfad zu den Oracle-Objekten, die in BigQuery übertragen werden sollen, im Format DATABASE_NAME/SCHEMA_NAME/TABLE_NAME

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"}'

API

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

Wenn Sie die Übertragungskonfiguration speichern, löst der Oracle-Connector automatisch einen Übertragungslauf gemäß Ihrer Zeitplanoption aus. Bei jeder Übertragung werden mit dem Oracle-Connector alle verfügbaren Daten aus Oracle 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.

Datentypzuordnung

In der folgenden Tabelle werden Oracle-Datentypen den entsprechenden BigQuery-Datentypen zugeordnet.

Oracle-Datentyp BigQuery-Datentyp
BFILE BYTES
BINARY_DOUBLE FLOAT
BINARY_FLOAT FLOAT
BLOB BYTES
CHAR STRING
CLOB STRING
DATE DATETIME
FLOAT FLOAT
INTERVAL DAY TO SECOND STRING
INTERVAL YEAR TO MONTH STRING
LONG STRING
LONG RAW BYTES
NCHAR STRING
NCLOB STRING
NUMBER (without precision and scale) STRING
NUMBER (with precision and scale lower than the BigQuery Numeric range) NUMERIC
NUMBER (with precision and scale lower than the BigQuery BigNumeric range) BIGNUMERIC
NUMBER (with precision and scale greater than the BigQuery BigNumeric range) STRING
NVARCHAR2 STRING
RAW BYTES
ROWID STRING
TIMESTAMP DATETIME
TIMESTAMP WITH LOCAL TIME ZONE DATETIME
TIMESTAMP WITH TIME ZONE TIMESTAMP
UROWID STRING
VARCHAR STRING
VARCHAR2 STRING

Fehler bei der Übertragungseinrichtung beheben

Unterstützung bei Problemen mit der Einrichtung von Datenübertragungen finden Sie unter Oracle-Übertragungsprobleme.

Preise

Während sich dieses Feature in der Vorschau befindet, fallen keine Kosten für die Übertragung von Oracle-Daten in BigQuery an.

Nächste Schritte