Oracle-Daten in BigQuery laden
Wenn Sie wiederkehrende Datenübertragungen von Ihrer Oracle-Datenbank nach BigQuery planen möchten, erstellen Sie eine Übertragungskonfiguration, um festzulegen, 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 gemäß dem angegebenen Zeitplan in eine BigQuery-Tabelle.
Informationen zur Funktionsweise einer Oracle-Übertragung 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.
- 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/24befinden. - 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
usmuss sich der Netzwerkanhang in der Regionus-central1befinden. Für die Multi-Regioneumuss sich der Netzwerkanhang in der Regioneurope-west4befinden.
- Wenn Ihr Netzwerkanhang in einem Google Cloud -Projekt erstellt wurde, das sich vom Google Cloud -Projekt der Datenübertragung unterscheidet, müssen Sie dem Dienst-Agent, der zum Google Cloud -Projekt gehört, in dem die Datenübertragung erstellt wurde, die Berechtigungen
compute.networkAttachments.getundcompute.networkAttachments.updategewähren. - 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übertragungsausführung unterstützen. Wenn eine zweite Datenübertragung geplant ist, bevor die erste Übertragung abgeschlossen ist, wird nur die erste Datenübertragung abgeschlossen. Alle anderen Datenübertragungen, die sich mit der ersten Übertragung ü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.
- Während einer Datenübertragung identifiziert der Oracle-Connector indexierte und partitionierte Schlüsselspalten, um Ihre Daten in parallelen Batches zu übertragen. Daher empfehlen wir, Primärschlüsselspalten anzugeben oder indexierte Spalten in der Tabelle zu verwenden, um die Leistung zu verbessern und die Fehlerrate bei Datenübertragungen zu reduzieren.
- Wenn Sie Index- oder Primärschlüsseleinschränkungen haben, werden nur die folgenden Spaltentypen für das Erstellen paralleler Batches unterstützt:
INTEGERTINYINTSMALLINTFLOATREALDOUBLENUMERICBIGINTDECIMALDATE
- Oracle-Datenübertragungen,die keine Primärschlüssel oder indexierten Spalten verwenden,können nicht mehr als 2.000.000 Einträge pro Tabelle unterstützen.
- Wenn Sie Index- oder Primärschlüsseleinschränkungen haben, werden nur die folgenden Spaltentypen für das Erstellen paralleler Batches unterstützt:
- Wenn sich der konfigurierte Netzwerkanhang und die VM-Instanz in verschiedenen Regionen befinden, kann es beim Übertragen von Daten aus Oracle zu regionsübergreifenden Datenverschiebungen kommen.
Einschränkungen bei inkrementellen Übertragungen
Inkrementelle Oracle-Ü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 Oracle-Übertragung ausführen müssen.
Voraussetzungen für Oracle
- Erstellen Sie Nutzeranmeldedaten in der Oracle-Datenbank.
- Weisen Sie dem Nutzer
Create Session-Systemberechtigungen zu, um das Erstellen von Sitzungen zu ermöglichen. - Weisen Sie dem Nutzerkonto einen Tablespace zu.
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
- Ü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.
Oracle-Daten in BigQuery laden
Fügen Sie Oracle-Daten zu BigQuery hinzu, indem Sie eine Transferkonfiguration 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 Oracle aus.
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,SIDoderTNS. - 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 (Zertifikat für vertrauenswürdigen PEM) 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.
- Wenn Sie Inkrementell (Vorschau) auswählen, wählen Sie für Schreibmodus entweder Append oder Upsert aus. Weitere Informationen zu den verschiedenen Schreibmodi finden Sie unter Vollständige oder inkrementelle Übertragungen.
- 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.
Wählen Sie im Abschnitt Zieleinstellungen für 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, 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.
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_idnicht 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.databaseist 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.1520connector.connectionType: der URL-Typ der Verbindung, entwederSERVICE,SIDoderTNS.connector.tls.mode: Geben Sie eine TLS-Konfiguration für diese Übertragung an:ENCRYPT_VERIFY_CA_AND_HOST, um Daten zu verschlüsseln und Zertifizierungsstelle und Hostnamen zu überprüfenENCRYPT_VERIFY_CA, um Daten zu verschlüsseln und nur die Zertifizierungsstelle zu überprüfenENCRYPT_VERIFY_NONEnur für die DatenverschlüsselungDISABLEfür keine Verschlüsselung oder Überprüfung
connector.tls.trustedServerCertificate: (Optional) Geben Sie ein oder mehrere PEM-codierte Zertifikate an. Nur erforderlich, wennconnector.tls.modeENCRYPT_VERIFY_CA_AND_HOSToderENCRYPT_VERIFY_CAist.ingestionType: Geben Sie entwederfulloderincrementalan. Inkrementelle Übertragungen werden in der Vorabversion unterstützt. 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 Oracle-Objekten, die in BigQuery übertragen werden sollen, im FormatDATABASE_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 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 Oracle-Übertragungsprobleme.
Nächste Schritte
- Weitere Informationen zum BigQuery Data Transfer Service finden Sie unter Was ist der 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 Übertragungen verwalten.
- Informationen zum Laden von Daten mit BigQuery Omni-Vorgängen finden Sie unter Daten mit BigQuery Omni-Vorgängen laden.