MySQL-Übertragung planen
Mit dem BigQuery Data Transfer Service-MySQL-Connector können Sie Daten aus Ihrer MySQL-Instanz in BigQuery aufnehmen. Es unterstützt MySQL-Instanzen, die in Ihrer lokalen Umgebung, in Cloud SQL und bei anderen öffentlichen Cloud-Anbietern wie Amazon Web Services (AWS) und Microsoft Azure gehostet werden. Mit dem BigQuery Data Transfer Service für den MySQL-Connector können Sie auch On-Demand- und wiederkehrende Datenübertragungsjobs zum Übertragen von Daten aus einer MySQL-Datenbank in BigQuery erstellen.
Hinweise
- Erstellen Sie einen Nutzer in der MySQL-Datenbank.
- Prü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.
- Sie benötigen die erforderlichen Rollen, um die Aufgaben in diesem Dokument ausführen zu können.
Erforderliche Rollen
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.
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 MySQL-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 MySQL-Datenübertragung erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um eine MySQL-Datenübertragung zu erstellen:
-
bigquery.transfers.update
-
bigquery.datasets.get
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Netzwerkverbindungen
Wenn für die MySQL-Datenbankverbindung keine öffentliche IP-Adresse verfügbar ist, müssen Sie einen Netzwerkanhang einrichten.
Eine ausführliche Anleitung zur erforderlichen Netzwerkeinrichtung findest du in den folgenden Dokumenten:
- Wenn Sie von Cloud SQL migrieren, lesen Sie den Hilfeartikel Zugriff auf Cloud SQL-Instanzen konfigurieren.
- Wenn Sie von AWS migrieren, lesen Sie den Hilfeartikel AWS-Google Cloud -VPN und Netzwerkanhänge einrichten.
- Wenn Sie von Azure migrieren, lesen Sie den Hilfeartikel Azure-Google Cloud -VPN und Netzwerkanpassung einrichten.
Beschränkungen
MySQL-Datenübertragungen unterliegen den folgenden Einschränkungen:
- Die maximale Anzahl gleichzeitiger Verbindungen zu einer MySQL-Datenbank wird durch den MySQL-Konfigurationsparameter
max_connections
bestimmt. Standardmäßig ist dieser Wert auf 151 Verbindungen festgelegt. Bei Bedarf kann er jedoch auf einen höheren Wert konfiguriert werden. Daher ist die Anzahl der gleichzeitigen Übertragungen zu einer einzelnen MySQL-Datenbank auf diesen Höchstwert begrenzt. Diese Einschränkung bedeutet auch, dass die Anzahl der gleichzeitigen Übertragungsjobs auf einen Wert begrenzt werden sollte, der unter der maximalen Anzahl gleichzeitiger Verbindungen liegt, die von der MySQL-Datenbank unterstützt werden. - In MySQL werden einige Datentypen dem Stringtyp in BigQuery zugeordnet, um Datenverluste zu vermeiden. Beispielsweise werden in MySQL definierte numerische Typen ohne definierte Genauigkeit und Skalierung dem Stringtyp in BigQuery zugeordnet.
MySQL-Datenübertragung einrichten
Wählen Sie eine der folgenden Optionen aus:
Konsole
Rufen Sie die Seite Datenübertragungen auf.
Klicken Sie auf
Übertragung erstellen.Wählen Sie im Abschnitt Source type (Quelltyp) für Source (Quelle) die Option MySQL aus.
Geben Sie im Abschnitt Konfigurationsname für Übertragung für Anzeigename einen Namen für die Übertragung ein. Der Übertragungsname kann ein beliebiger Wert sein, mit dem Sie die Übertragung identifizieren können, wenn Sie sie später ändern müssen.
Führen Sie im Abschnitt Zeitplanoptionen folgende Schritte aus:
- Wählen Sie eine Wiederholungshäufigkeit aus. Wenn Sie Stunden, Tage (Standardeinstellung), Wochen oder Monate auswählen, müssen Sie auch eine Häufigkeit angeben. Sie können auch die Option Benutzerdefiniert auswählen, um eine genauere Wiederholungshäufigkeit festzulegen. Wenn Sie die Option On-Demand auswählen, wird diese Datenübertragung nur ausgeführt, wenn Sie die Übertragung manuell auslösen.
- Wählen Sie gegebenenfalls Jetzt starten oder Zum festgelegten Zeitpunkt starten aus und geben Sie ein Startdatum und eine Laufzeit an.
Wählen Sie im Abschnitt Zieleinstellungen für Dataset das Dataset aus, das Sie zum Speichern Ihrer Daten erstellt haben, oder klicken Sie auf Neues Dataset erstellen und erstellen Sie ein Dataset, das als Ziel-Dataset verwendet werden soll.
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. Weitere Informationen finden Sie im Abschnitt Netzwerkverbindungen dieses Dokuments.
- Geben Sie unter Host den Hostnamen oder die IP-Adresse des MySQL-Datenbankservers ein.
- Geben Sie unter Portnummer die Portnummer für den MySQL-Datenbankserver ein.
- Geben Sie unter Datenbankname den Namen der MySQL-Datenbank ein.
- Geben Sie unter Username den Nutzernamen des MySQL-Nutzers ein, der die MySQL-Datenbankverbindung initiiert.
- Geben Sie unter Passwort das Passwort des MySQL-Nutzers ein, der die MySQL-Datenbankverbindung initiiert.
- Wählen Sie für Verschlüsselungsmodus im Menü die Option Vollständig aus, um die vollständige SSL-Validierung beim Herstellen einer Verbindung zur MySQL-Datenbank zu aktivieren. Wählen Sie Deaktivieren aus, wenn keine SSL-Validierung erfolgen soll.
Führen Sie für zu übertragende MySQL-Objekte einen der folgenden Schritte aus:
- Klicken Sie auf Durchsuchen, um die für die Übertragung erforderlichen MySQL-Tabellen auszuwählen, und dann auf Auswählen.
- Geben Sie die Namen der Tabellen in den zu übertragenden MySQL-Objekten manuell ein.
Optional: Geben Sie im Menü Dienstkonto ein benutzerdefiniertes Dienstkonto an, um die Übertragung zu autorisieren. Prüfen Sie, ob das verwendete Dienstkonto alle erforderlichen Rollen und Berechtigungen hat. Weitere Informationen finden Sie unter Übertragungs-Inhaber als Dienstkonto.
Optional: Gehen Sie im Abschnitt Benachrichtigungsoptionen so vor:
- Klicken Sie zum Aktivieren von E-Mail-Benachrichtigungen auf die Ein/Aus-Schaltfläche E-Mail-Benachrichtigungen. Wenn Sie diese Option aktivieren, erhält der Übertragungsadministrator eine E-Mail-Benachrichtigung, wenn ein Übertragungsvorgang fehlschlägt.
- Wenn Sie Pub/Sub-Ausführungsbenachrichtigungen für Ihre Übertragung konfigurieren möchten, klicken Sie auf die Ein/Aus-Schaltfläche Pub/Sub-Benachrichtigungen. 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'
Ersetzen Sie Folgendes:
- PROJECT_ID (optional): Ihre Google Cloud -Projekt-ID.
Wenn das Flag
--project_id
nicht bereitgestellt wird, um ein bestimmtes Projekt anzugeben, wird das Standardprojekt verwendet. - DATA_SOURCE: die Datenquelle, also
mysql
. - DISPLAY_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 Datenü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 MySQL-Übertragung:networkAttachment
(optional): Name des Netzwerkanhangs, der eine Verbindung zur MySQL-Datenbank herstellen soll.connector.database
: Der Name der MySQL-Datenbank.connector.endpoint.host
: Hostname oder IP-Adresse der Datenbank.connector.endpoint.port
: die Portnummer der Datenbank.connector.authentication.username
: Der Nutzername des Datenbanknutzers.connector.authentication.password
: Das Passwort des Datenbanknutzers. connector.connectionTypeconnector.connectionType
(optional): der Verbindungstyp, anhand dessen die Verbindungs-URL bestimmt wird. Das kannSERVICE
,SID
oderTNS
sein. Wenn keine Angabe gemacht wird, lautet der StandardwertSERVICE
.connector.encryptionMode
: den Verschlüsselungsmodus. Dies kannFULL
für eine vollständige SSL-Validierung bei der Verbindung mit der MySQL-Datenbank oderDISABLE
für keine SSL-Validierung sein.assets
: Eine Liste der Namen der MySQL-Tabellen, die im Rahmen der Übertragung aus der MySQL-Datenbank kopiert werden sollen.
Mit dem folgenden Befehl wird beispielsweise eine MySQL-Übertragung namens My Transfer
erstellt:
bq mk \ --transfer_config \ --target_dataset=mydataset \ --data_source=mysql \ --display_name='My Transfer' \ --params='{"assets":["DB1/DEPARTMENT","DB1/EMPLOYEES"], \ "connector.authentication.username": "User1", \ "connector.authentication.password":"ABC12345", \ "connector.encryptionMode":"FULL", \ "connector.database":"DB1", \ "connector.endpoint.host":"54.74.220.23", \ "connector.endpoint.port":"3306"}'
API
Verwenden Sie die Methode projects.locations.transferConfigs.create
und geben Sie eine Instanz der Ressource TransferConfig
an.
Datentypzuordnung
In der folgenden Tabelle werden MySQL-Datentypen den entsprechenden BigQuery-Datentypen zugeordnet.
MySQL-Datentyp | BigQuery-Datentyp |
---|---|
BIT |
BOOLEAN |
TINYINT |
INTEGER |
BOOL , BOOLEAN |
BOOLEAN |
SMALLINT |
INTEGER |
MEDIUMINT |
INTEGER |
INT , INTEGER |
INTEGER |
BIGINT |
BIGNUMERIC |
FLOAT |
FLOAT |
DOUBLE |
FLOAT |
DECIMAL |
BIGNUMERIC |
DATE |
DATE |
DATETIME |
TIMESTAMP |
TIMESTAMP |
TIMESTAMP |
TIME |
TIME |
YEAR |
DATE |
CHAR |
STRING |
VARCHAR |
STRING |
BINARY |
BYTES |
VARBINARY |
BYTES |
TINYBLOB |
BYTES |
TINYTEXT |
STRING |
BLOB |
BYTES |
TEXT |
STRING |
MEDIUMBLOB |
BYTES |
MEDIUMTEXT |
STRING |
LONGBLOB |
BYTES |
LONGTEXT |
STRING |
ENUM |
STRING |
SET |
STRING |
Fehlerbehebung
Unterstützung bei Problemen mit der Einrichtung von Datenübertragungen finden Sie unter MySQL-Übertragungsprobleme.
Nächste Schritte
- Eine Übersicht über den BigQuery Data Transfer Service finden Sie unter Was ist 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.
- Daten mit cloudübergreifenden Vorgängen laden