Snowflake-Übertragung planen
Mit dem Snowflake-Connector, der vom BigQuery Data Transfer Service bereitgestellt wird, können Sie automatisierte Übertragungsjobs planen und verwalten, um Daten aus Snowflake in BigQuery zu migrieren. Dazu verwenden Sie Zulassungslisten für öffentliche IP-Adressen.
Übersicht
Der Snowflake-Connector aktiviert die Migrations-Agents in Google Kubernetes Engine und löst einen Ladevorgang von Snowflake zu einem Staging-Bereich beim selben Cloud-Anbieter aus, bei dem Snowflake gehostet wird. Bei AWS-gehosteten Snowflake-Konten werden die Daten zuerst in Ihrem Amazon S3-Bucket bereitgestellt und dann mit dem BigQuery Data Transfer Service zu BigQuery übertragen.
Das folgende Diagramm zeigt, wie Daten aus einem in AWS gehosteten Snowflake-Data Warehouse in BigQuery übertragen werden.
Beschränkungen
Für Datenübertragungen mit dem Snowflake-Connector gelten die folgenden Einschränkungen:
- Datenübertragungen werden nur von Snowflake-Konten unterstützt, die auf AWS gehostet werden. Datenübertragungen von Snowflake-Konten, die auf Google Cloud oder Microsoft Azure gehostet werden, werden nicht unterstützt.
- Der Snowflake-Connector unterstützt keine inkrementellen Datenübertragungen.
- Der Snowflake-Connector unterstützt nur Übertragungen aus Tabellen in einer einzelnen Snowflake-Datenbank und einem einzelnen Snowflake-Schema. Wenn Sie Daten aus Tabellen mit mehreren Snowflake-Datenbanken oder ‑Schemas übertragen möchten, können Sie jeden Übertragungsjob separat einrichten.
- Die Geschwindigkeit des Ladens von Daten aus Snowflake in Ihren Amazon S3-Bucket wird durch das Snowflake-Warehouse begrenzt, das Sie für diese Übertragung ausgewählt haben.
Daten werden aus Snowflake im Parquet-Datenformat extrahiert, bevor sie in BigQuery geladen werden:
- Die folgenden Parquet-Datentypen werden nicht unterstützt:
TIMESTAMP_TZ
,TIMESTAMP_LTZ
OBJECT
,VARIANT
,ARRAY
- Weitere Informationen finden Sie unter Snowflake-Daten analysieren.
Der folgende Parquet-Datentyp wird nicht unterstützt, kann aber konvertiert werden:
TIMESTAMP_NTZ
Verwenden Sie die globale YAML-Konfiguration für die Typkonvertierung, um das Standardverhalten der
DATETIME
-Konvertierung inTIMESTAMP
zu überschreiben, wenn Sie Metadaten generieren und die Übersetzungs-Engine ausführen.Die YAML-Konfiguration könnte so aussehen:
type: experimental_object_rewriter global: typeConvert: datetime: TIMESTAMP
- Die folgenden Parquet-Datentypen werden nicht unterstützt:
Hinweise
Bevor Sie einen Snowflake-Transfer einrichten, müssen Sie alle in diesem Abschnitt aufgeführten Schritte ausführen. Im Folgenden finden Sie eine Liste aller erforderlichen Schritte.
- Google Cloud -Projekt vorbereiten
- Erforderliche BigQuery-Rollen
- Amazon S3-Bucket vorbereiten
- Snowflake-Nutzer mit den erforderlichen Berechtigungen erstellen
- Netzwerkrichtlinien hinzufügen
- Metadaten generieren und Übersetzungsmodul ausführen
- Snowflake auf nicht unterstützte Datentypen prüfen
- Übertragungsinformationen erfassen
Google Cloud -Projekt vorbereiten
So erstellen und konfigurieren Sie Ihr Google Cloud Projekt für eine Snowflake-Übertragung:
Erstellen Sie ein Google Cloud Projekt oder wählen Sie ein vorhandenes Projekt aus.
Ü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. Sie müssen keine Tabellen erstellen.
Erforderliche BigQuery-Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle BigQuery-Administrator (roles/bigquery.admin
) zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen einer Ü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 Übertragung erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind zum Erstellen einer Übertragung erforderlich:
-
bigquery.transfers.update
für das Nutzer- oder Dienstkonto, mit dem die Übertragungskonfiguration erstellt wird -
bigquery.datasets.get
für das Nutzer- oder Dienstkonto, mit dem die Übertragungskonfiguration erstellt wird -
bigquery.datasets.update
für das Nutzer- oder Dienstkonto, mit dem die Übertragungskonfiguration erstellt wird
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Amazon S3-Bucket vorbereiten
Um eine Snowflake-Datenübertragung abzuschließen, müssen Sie einen Amazon S3-Bucket erstellen und ihn so konfigurieren, dass Snowflake Schreibzugriff hat.
Amazon S3-Bucket erstellen Der Amazon S3-Bucket wird verwendet, um die Daten bereitzustellen, bevor sie in BigQuery geladen werden.
Erstellen und konfigurieren Sie ein Snowflake-Speicherintegrationsobjekt, damit Snowflake Daten als externe Phase in den Amazon S3-Bucket schreiben kann.
Damit Lesezugriff auf Ihren Amazon S3-Bucket möglich ist, müssen Sie außerdem Folgendes tun:
Erstellen Sie einen dedizierten Amazon IAM-Nutzer und weisen Sie ihm die Richtlinie AmazonS3ReadOnlyAccess zu.
Erstellen Sie ein Amazon-Zugriffsschlüsselpaar für den IAM-Nutzer.
Snowflake-Nutzer mit den erforderlichen Berechtigungen erstellen
Bei einer Snowflake-Übertragung wird über eine JDBC-Verbindung eine Verbindung zwischen dem Snowflake-Connector und Ihrem Snowflake-Konto hergestellt. Sie müssen einen neuen Snowflake-Nutzer mit einer benutzerdefinierten Rolle erstellen, die nur die erforderlichen Berechtigungen für die Datenübertragung hat:
// Create and configure new role, MIGRATION_ROLE GRANT USAGE ON WAREHOUSE WAREHOUSE_NAME TO ROLE MIGRATION_ROLE; GRANT USAGE ON DATABASE DATABASE_NAME TO ROLE MIGRATION_ROLE; GRANT USAGE ON SCHEMA DATABASE_NAME.SCHEMA_NAME TO ROLE MIGRATION_ROLE; // You can modify this to give select permissions for all tables in a schema GRANT SELECT ON TABLE DATABASE_NAME.SCHEMA_NAME.TABLE_NAME TO ROLE MIGRATION_ROLE; GRANT USAGE ON STORAGE_INTEGRATION_OBJECT_NAME TO ROLE MIGRATION_ROLE;
Ersetzen Sie Folgendes:
MIGRATION_ROLE
: der Name der benutzerdefinierten Rolle, die Sie erstellenWAREHOUSE_NAME
: der Name Ihres Data WarehouseDATABASE_NAME
: der Name Ihrer Snowflake-DatenbankSCHEMA_NAME
: der Name Ihres Snowflake-SchemasTABLE_NAME
: der Name der Snowflake-Instanz, die in dieser Datenübertragung enthalten istSTORAGE_INTEGRATION_OBJECT_NAME
: der Name Ihres Snowflake-Speicherintegrationsobjekts.
Netzwerkrichtlinien hinzufügen
Bei öffentlichen Verbindungen ist im Snowflake-Konto standardmäßig eine öffentliche Verbindung mit Datenbankanmeldedaten zulässig. Möglicherweise haben Sie jedoch Netzwerkregeln oder ‑richtlinien konfiguriert, die verhindern, dass der Snowflake-Connector eine Verbindung zu Ihrem Konto herstellt. In diesem Fall müssen Sie die erforderlichen IP-Adressen Ihrer Zulassungsliste hinzufügen.
In der folgenden Tabelle finden Sie eine Liste der IP-Adressen für die regionalen und multiregionalen Standorte, die für öffentliche Übertragungen verwendet werden. Sie können entweder die IP-Adressen hinzufügen, die dem Speicherort Ihres Datasets entsprechen, oder alle in der Tabelle aufgeführten IP-Adressen. Dies sind IP-Adressen, die von Google für BigQuery Data Transfer Service-Datenübertragungen reserviert sind.
So fügen Sie eine IP-Adresse einer Zulassungsliste hinzu:
- Netzwerkregel erstellen mit
type
=IPV4
. Der BigQuery Data Transfer Service verwendet eine JDBC-Verbindung, um eine Verbindung zum Snowflake-Konto herzustellen. - Erstellen Sie eine Netzwerkrichtlinie mit der Netzwerkregel, die Sie zuvor erstellt haben, und der IP-Adresse aus der folgenden Tabelle.
Regionale Standorte
Beschreibung der Region | Name der Region | IP-Adressen | |
---|---|---|---|
Amerika | |||
Columbus, Ohio | us-east5 |
34.162.72.184 34.162.173.185 34.162.205.205 34.162.81.45 34.162.182.149 34.162.59.92 34.162.157.190 34.162.191.145 |
|
Dallas | us-south1 |
34.174.172.89 34.174.40.67 34.174.5.11 34.174.96.109 34.174.148.99 34.174.176.19 34.174.253.135 34.174.129.163 |
|
Iowa | us-central1 |
34.121.70.114 34.71.81.17 34.122.223.84 34.121.145.212 35.232.1.105 35.202.145.227 35.226.82.216 35.225.241.102 |
|
Las Vegas | us-west4 |
34.125.53.201 34.125.69.174 34.125.159.85 34.125.152.1 34.125.195.166 34.125.50.249 34.125.68.55 34.125.91.116 |
|
Los Angeles | us-west2 |
35.236.59.167 34.94.132.139 34.94.207.21 34.94.81.187 34.94.88.122 35.235.101.187 34.94.238.66 34.94.195.77 |
|
Mexiko | northamerica-south1 |
34.51.6.35 34.51.7.113 34.51.12.83 34.51.10.94 34.51.11.219 34.51.11.52 34.51.2.114 34.51.15.251 |
|
Montreal | northamerica-northeast1 |
34.95.20.253 35.203.31.219 34.95.22.233 34.95.27.99 35.203.12.23 35.203.39.46 35.203.116.49 35.203.104.223 |
|
Northern Virginia | us-east4 |
35.245.95.250 35.245.126.228 35.236.225.172 35.245.86.140 35.199.31.35 35.199.19.115 35.230.167.48 35.245.128.132 35.245.111.126 35.236.209.21 |
|
Oregon | us-west1 |
35.197.117.207 35.199.178.12 35.197.86.233 34.82.155.140 35.247.28.48 35.247.31.246 35.247.106.13 34.105.85.54 |
|
Salt Lake City | us-west3 |
34.106.37.58 34.106.85.113 34.106.28.153 34.106.64.121 34.106.246.131 34.106.56.150 34.106.41.31 34.106.182.92 |
|
São Paolo | southamerica-east1 |
35.199.88.228 34.95.169.140 35.198.53.30 34.95.144.215 35.247.250.120 35.247.255.158 34.95.231.121 35.198.8.157 |
|
Santiago | southamerica-west1 |
34.176.188.48 34.176.38.192 34.176.205.134 34.176.102.161 34.176.197.198 34.176.223.236 34.176.47.188 34.176.14.80 |
|
South Carolina | us-east1 |
35.196.207.183 35.237.231.98 104.196.102.222 35.231.13.201 34.75.129.215 34.75.127.9 35.229.36.137 35.237.91.139 |
|
Toronto | northamerica-northeast2 |
34.124.116.108 34.124.116.107 34.124.116.102 34.124.116.80 34.124.116.72 34.124.116.85 34.124.116.20 34.124.116.68 |
|
Europa | |||
Belgien | europe-west1 |
35.240.36.149 35.205.171.56 34.76.234.4 35.205.38.234 34.77.237.73 35.195.107.238 35.195.52.87 34.76.102.189 |
|
Berlin | europe-west10 |
34.32.28.80 34.32.31.206 34.32.19.49 34.32.33.71 34.32.15.174 34.32.23.7 34.32.1.208 34.32.8.3 |
|
Finnland | europe-north1 |
35.228.35.94 35.228.183.156 35.228.211.18 35.228.146.84 35.228.103.114 35.228.53.184 35.228.203.85 35.228.183.138 |
|
Frankfurt | europe-west3 |
35.246.153.144 35.198.80.78 35.246.181.106 35.246.211.135 34.89.165.108 35.198.68.187 35.242.223.6 34.89.137.180 |
|
London | europe-west2 |
35.189.119.113 35.189.101.107 35.189.69.131 35.197.205.93 35.189.121.178 35.189.121.41 35.189.85.30 35.197.195.192 |
|
Madrid | europe-southwest1 |
34.175.99.115 34.175.186.237 34.175.39.130 34.175.135.49 34.175.1.49 34.175.95.94 34.175.102.118 34.175.166.114 |
|
Mailand | europe-west8 |
34.154.183.149 34.154.40.104 34.154.59.51 34.154.86.2 34.154.182.20 34.154.127.144 34.154.201.251 34.154.0.104 |
|
Niederlande | europe-west4 |
35.204.237.173 35.204.18.163 34.91.86.224 34.90.184.136 34.91.115.67 34.90.218.6 34.91.147.143 34.91.253.1 |
|
Paris | europe-west9 |
34.163.76.229 34.163.153.68 34.155.181.30 34.155.85.234 34.155.230.192 34.155.175.220 34.163.68.177 34.163.157.151 |
|
Stockholm | europe-north2 |
34.51.133.48 34.51.136.177 34.51.128.140 34.51.141.252 34.51.139.127 34.51.142.55 34.51.134.218 34.51.138.9 |
|
Turin | europe-west12 |
34.17.15.186 34.17.44.123 34.17.41.160 34.17.47.82 34.17.43.109 34.17.38.236 34.17.34.223 34.17.16.47 |
|
Warschau | europe-central2 |
34.118.72.8 34.118.45.245 34.118.69.169 34.116.244.189 34.116.170.150 34.118.97.148 34.116.148.164 34.116.168.127 |
|
Zürich | europe-west6 |
34.65.205.160 34.65.121.140 34.65.196.143 34.65.9.133 34.65.156.193 34.65.216.124 34.65.233.83 34.65.168.250 |
|
Asiatisch-pazifischer Raum | |||
Delhi | asia-south2 |
34.126.212.96 34.126.212.85 34.126.208.224 34.126.212.94 34.126.208.226 34.126.212.232 34.126.212.93 34.126.212.206 |
|
Hongkong | asia-east2 |
34.92.245.180 35.241.116.105 35.220.240.216 35.220.188.244 34.92.196.78 34.92.165.209 35.220.193.228 34.96.153.178 |
|
Jakarta | asia-southeast2 |
34.101.79.105 34.101.129.32 34.101.244.197 34.101.100.180 34.101.109.205 34.101.185.189 34.101.179.27 34.101.197.251 |
|
Melbourne | australia-southeast2 |
34.126.196.95 34.126.196.106 34.126.196.126 34.126.196.96 34.126.196.112 34.126.196.99 34.126.196.76 34.126.196.68 |
|
Mumbai | asia-south1 |
34.93.67.112 35.244.0.1 35.200.245.13 35.200.203.161 34.93.209.130 34.93.120.224 35.244.10.12 35.200.186.100 |
|
Osaka | asia-northeast2 |
34.97.94.51 34.97.118.176 34.97.63.76 34.97.159.156 34.97.113.218 34.97.4.108 34.97.119.140 34.97.30.191 |
|
Seoul | asia-northeast3 |
34.64.152.215 34.64.140.241 34.64.133.199 34.64.174.192 34.64.145.219 34.64.136.56 34.64.247.158 34.64.135.220 |
|
Singapur | asia-southeast1 |
34.87.12.235 34.87.63.5 34.87.91.51 35.198.197.191 35.240.253.175 35.247.165.193 35.247.181.82 35.247.189.103 |
|
Sydney | australia-southeast1 |
35.189.33.150 35.189.38.5 35.189.29.88 35.189.22.179 35.189.20.163 35.189.29.83 35.189.31.141 35.189.14.219 |
|
Taiwan | asia-east1 |
35.221.201.20 35.194.177.253 34.80.17.79 34.80.178.20 34.80.174.198 35.201.132.11 35.201.223.177 35.229.251.28 35.185.155.147 35.194.232.172 |
|
Tokio | asia-northeast1 |
34.85.11.246 34.85.30.58 34.85.8.125 34.85.38.59 34.85.31.67 34.85.36.143 34.85.32.222 34.85.18.128 34.85.23.202 34.85.35.192 |
|
Naher Osten | |||
Dammam | me-central2 |
34.166.20.177 34.166.10.104 34.166.21.128 34.166.19.184 34.166.20.83 34.166.18.138 34.166.18.48 34.166.23.171 |
|
Doha | me-central1 |
34.18.48.121 34.18.25.208 34.18.38.183 34.18.33.25 34.18.21.203 34.18.21.80 34.18.36.126 34.18.23.252 |
|
Tel Aviv | me-west1 |
34.165.184.115 34.165.110.74 34.165.174.16 34.165.28.235 34.165.170.172 34.165.187.98 34.165.85.64 34.165.245.97 |
|
Afrika | |||
Johannesburg | africa-south1 |
34.35.11.24 34.35.10.66 34.35.8.32 34.35.3.248 34.35.2.113 34.35.5.61 34.35.7.53 34.35.3.17 |
Multiregionale Standorte
Beschreibung des multiregionalen Standorts | Name des multiregionalen Standorts | IP-Adressen |
---|---|---|
Rechenzentren in Mitgliedsstaaten der Europäischen Union1 | EU |
34.76.156.158 34.76.156.172 34.76.136.146 34.76.1.29 34.76.156.232 34.76.156.81 34.76.156.246 34.76.102.206 34.76.129.246 34.76.121.168 |
Rechenzentren in den USA | US |
35.185.196.212 35.197.102.120 35.185.224.10 35.185.228.170 35.197.5.235 35.185.206.139 35.197.67.234 35.197.38.65 35.185.202.229 35.185.200.120 |
1 Daten in der Multiregion EU
werden nicht in den Rechenzentren europe-west2
(London) oder europe-west6
(Zürich) gespeichert.
Metadaten generieren und Übersetzungsmodul ausführen
Der BigQuery Data Transfer Service für den Snowflake-Connector verwendet die Übersetzungs-Engine des BigQuery-Migrationsdienstes für die Schemazuordnung bei der Migration von Snowflake-Tabellen in BigQuery. Um eine Snowflake-Datenübertragung abzuschließen, müssen Sie zuerst Metadaten für die Übersetzung generieren und dann die Übersetzungs-Engine ausführen:
- Führen Sie
dwh-migration-tool
für Snowflake aus. Weitere Informationen finden Sie unter Metadaten für Übersetzung und Bewertung generieren. - Laden Sie die generierte Datei
metadata.zip
in einen Cloud Storage-Bucket hoch. Die Dateimetadata.zip
wird als Eingabe für die Übersetzungs-Engine verwendet. Führen Sie den Batchübersetzungsdienst aus und geben Sie das Feld
target_types
alsmetadata
an. Weitere Informationen finden Sie unter SQL-Abfragen mit der Translation API übersetzen.- Im Folgenden finden Sie ein Beispiel für einen Befehl zum Ausführen einer Batchübersetzung für Snowflake:
curl -d "{ \"name\": \"sf_2_bq_translation\", \"displayName\": \"Snowflake to BigQuery Translation\", \"tasks\": { string: { \"type\": \"Snowflake2BigQuery_Translation\", \"translation_details\": { \"target_base_uri\": \"gs://sf_test_translation/output\", \"source_target_mapping\": { \"source_spec\": { \"base_uri\": \"gs://sf_test_translation/input\" } }, \"target_types\": \"metadata\", } } }, }" \ -H "Content-Type:application/json" \ -H "Authorization: Bearer TOKEN" -X POST https://bigquerymigration.googleapis.com/v2alpha/projects/project_id/locations/location/workflows
- Sie können den Status dieses Befehls in BigQuery auf der Seite SQL-Übersetzung prüfen.
Die Ausgabe des Batchübersetzungsjobs wird in
gs://translation_target_base_uri/metadata/config/
gespeichert.
Erforderliche Dienstkontoberechtigungen
Bei einem Snowflake-Transfer wird ein Dienstkonto verwendet, um Daten aus der Ausgabe der Übersetzungs-Engine im angegebenen Cloud Storage-Pfad zu lesen.
Sie müssen dem Dienstkonto die Berechtigungen storage.objects.get
und storage.objects.list
erteilen.
Wenn das Dienstkonto aus einem Google Cloud -Projekt stammt, das sich von dem Projekt unterscheidet, in dem die BigQuery-Datenübertragung erstellt wurde, müssen Sie auch die projektübergreifende Dienstkontoautorisierung aktivieren.
Weitere Informationen finden Sie unter BigQuery-IAM-Rollen und -Berechtigungen.
Snowflake-Daten bewerten
BigQuery schreibt Daten aus Snowflake als Parquet-Dateien in Cloud Storage. Die Datentypen TIMESTAMP_TZ
und TIMESTAMP_LTZ
werden in Parquet-Dateien nicht unterstützt. Wenn Ihre Daten diese Typen enthalten, können Sie sie als CSV-Dateien in Amazon S3 exportieren und die CSV-Dateien dann in BigQuery importieren. Weitere Informationen finden Sie unter Übersicht über Amazon S3-Übertragungen.
Übertragungsinformationen erfassen
Erfassen Sie die Informationen, die Sie zum Einrichten der Migration mit BigQuery Data Transfer Service benötigen:
- Ihre Snowflake-Konto-ID, das Präfix in Ihrer Snowflake-Konto-URL. Beispiel:
ACCOUNT_IDENTIFIER.snowflakecomputing.com
. - Der Nutzername und das Passwort eines Nutzers mit den entsprechenden Berechtigungen für Ihre Snowflake-Datenbank. Es kann nur die erforderlichen Berechtigungen zum Ausführen der Datenübertragung haben.
- Der URI des Amazon S3-Buckets, den Sie für die Übertragung verwenden möchten, und das AWS-Nutzerzugriffsschlüsselpaar. Wir empfehlen, für diesen Bucket eine Lebenszyklusrichtlinie einzurichten, um unnötige Gebühren zu vermeiden.
- Der URI des Cloud Storage-Bucket, in dem Sie die von der Übersetzungs-Engine abgerufenen Schemazuordnungsdateien gespeichert haben.
Snowflake-Übertragung einrichten
Wählen Sie eine der folgenden Optionen aus:
Console
Rufen Sie in der Google Cloud -Console die Seite „Datenübertragungen“ auf.
Klicken Sie auf
Übertragung erstellen.Wählen Sie im Abschnitt Quelltyp die Option Snowflake-Migration aus der Liste Quelle aus.
Geben Sie im Abschnitt Transfer config name (Konfigurationsname für Übertragung) im Feld Display name (Anzeigename) einen Namen für die Übertragung ein, z. B.
My migration
. Der Anzeigename kann ein beliebiger Wert sein, mit dem Sie die Übertragung identifizieren können, wenn Sie sie später ändern müssen.Wählen Sie im Abschnitt Destination settings (Zieleinstellungen) das von Ihnen erstellte Dataset aus der Liste Dataset aus.
Führen Sie im Abschnitt Details zur Datenquelle folgende Schritte aus:
- Geben Sie für Konto-ID eine eindeutige Kennung für Ihr Snowflake-Konto ein, die eine Kombination aus Ihrem Organisationsnamen und Ihrem Kontonamen ist. Die ID ist das Präfix der Snowflake-Konto-URL und nicht die vollständige URL. Beispiel:
ACCOUNT_IDENTIFIER.snowflakecomputing.com
. - Geben Sie unter Nutzername den Nutzernamen des Snowflake-Nutzers ein, dessen Anmeldedaten und Autorisierung für den Zugriff auf Ihre Datenbank verwendet werden, um die Snowflake-Tabellen zu übertragen. Wir empfehlen, den Nutzer zu verwenden, den Sie für diese Übertragung erstellt haben.
- Geben Sie unter Passwort das Passwort des Snowflake-Nutzers ein.
- Geben Sie unter Warehouse ein Warehouse ein, das für die Ausführung dieses Datentransfers verwendet wird.
- Geben Sie unter Dienstkonto ein Dienstkonto ein, das für diese Datenübertragung verwendet werden soll. Das Dienstkonto sollte zu demselbenGoogle Cloud -Projekt gehören, in dem die Übertragungskonfiguration und das Ziel-Dataset erstellt werden. Das Dienstkonto muss die erforderlichen Berechtigungen
storage.objects.list
undstorage.objects.get
haben. - Geben Sie unter Datenbank den Namen der Snowflake-Datenbank ein, die die in dieser Datenübertragung enthaltenen Tabellen enthält.
- Geben Sie unter Schema den Namen des Snowflake-Schemas ein, das die in dieser Datenübertragung enthaltenen Tabellen enthält.
Geben Sie bei Table name patterns (Tabellennamensmuster) eine zu übertragende Tabelle an, indem Sie einen Namen oder ein Muster eingeben, das mit dem Tabellennamen im Schema übereinstimmt. Sie können das Muster mit regulären Ausdrücken angeben, z. B.
table1_regex;table2_regex
. Das Muster sollte der Java-Syntax für reguläre Ausdrücke folgen. Beispiel:lineitem;ordertb
führt zu Übereinstimmungen mit Tabellen, dielineitem
undordertb
heißen..*
führt zu Übereinstimmung mit allen Tabellen.
Geben Sie unter GCS-Pfad für Übersetzungsausgabe einen Pfad zum Cloud Storage-Ordner mit den Dateien für die Schemazuordnung der Übersetzungs-Engine an.
- Der Pfad muss dem Format
gs:/translation_target_base_uri/metadata/config/db/schema/
entsprechen und mit/
enden.
- Der Pfad muss dem Format
Geben Sie unter Name des Speicherintegrationsobjekts den Namen des Snowflake-Speicherintegrationsobjekts ein. In diesem Fall
S3
.Wählen Sie für Cloudanbieter die Option
AWS
aus.Lassen Sie die Felder GCS URI, Azure storage account name, Azure container name, Azure SAS (GCS-URI, Name des Azure-Speicherkontos, Name des Azure-Containers, Azure SAS) leer.
Geben Sie im Feld Amazon S3 URI (Amazon S3-URI) den URI des S3-Buckets ein, der als Staging-Bereich verwendet werden soll.
Geben Sie bei Access key ID (Zugriffsschlüssel-ID) und Secret access key (Geheimer Zugriffsschlüssel) das Zugriffsschlüsselpaar ein.
- Geben Sie für Konto-ID eine eindeutige Kennung für Ihr Snowflake-Konto ein, die eine Kombination aus Ihrem Organisationsnamen und Ihrem Kontonamen ist. Die ID ist das Präfix der Snowflake-Konto-URL und nicht die vollständige URL. Beispiel:
Optional: Gehen Sie im Abschnitt Benachrichtigungsoptionen so vor:
- Klicken Sie auf den Umschalter, um E-Mail-Benachrichtigungen zu aktivieren. Wenn Sie diese Option aktivieren, erhält der Übertragungsadministrator eine E-Mail-Benachrichtigung, wenn ein Übertragungsvorgang fehlschlägt.
- Wählen Sie unter Pub/Sub-Thema auswählen Ihr Thema aus oder klicken Sie auf Thema erstellen. Mit dieser Option werden Pub/Sub-Ausführungsbenachrichtigungen für Ihre Übertragung konfiguriert.
Klicken Sie auf Speichern.
In der Google Cloud Console werden alle Details zur Übertragungseinrichtung angezeigt, darunter ein Ressourcenname für diese Übertragung.
bq
Geben Sie den Befehl bq mk
ein und geben Sie das Flag --transfer_config
für die Übertragungserstellung an. Folgende Flags sind ebenfalls erforderlich:
--project_id
--data_source
--target_dataset
--display_name
--params
bq mk \ --transfer_config \ --project_id=project_id \ --data_source=data_source \ --target_dataset=dataset \ --display_name=name \ --service_account_name=service_account \ --params='parameters'
Ersetzen Sie Folgendes:
- project_id: Ihre Google Cloud -Projekt-ID. Wenn
--project_id
nicht angegeben ist, wird das Standardprojekt verwendet. - data_source: Die Datenquelle
snowflake_migration
. - dataset ist das BigQuery-Ziel-Dataset für die Übertragungskonfiguration.
- name: Der Anzeigename für die Übertragungskonfiguration. Der Übertragungsname kann ein beliebiger Wert sein, mit dem Sie die Übertragung identifizieren können, wenn Sie sie später ändern müssen.
- service_account: (Optional) der Name des Dienstkontos, der zur Authentifizierung der Übertragung verwendet wird. Das Dienstkonto sollte zum selben
project_id
gehören, das für die Erstellung der Übertragung verwendet wurde, und sollte alle erforderlichen Rollen haben. - parameters: die Parameter für die erstellte Übertragungskonfiguration im JSON-Format. Beispiel:
--params='{"param":"param_value"}'
.
Folgende Parameter sind für eine Snowflake-Übertragungskonfiguration erforderlich:
account_identifier
: Eine eindeutige Kennung für Ihr Snowflake-Konto, die sich aus dem Namen Ihrer Organisation und dem Kontonamen zusammensetzt. Die ID ist das Präfix der Snowflake-Konto-URL und nicht die vollständige URL. Beispiel:account_identifier.snowflakecomputing.com
.username
: Der Nutzername des Snowflake-Nutzers, dessen Anmeldedaten und Autorisierung für den Zugriff auf Ihre Datenbank zum Übertragen der Snowflake-Tabellen verwendet werden.password
: Geben Sie das Passwort des Snowflake-Nutzers ein.warehouse
: Geben Sie ein Warehouse ein, das für die Ausführung dieser Datenübertragung verwendet wird.service_account
: Geben Sie ein Dienstkonto ein, das für diese Datenübertragung verwendet werden soll. Das Dienstkonto sollte zu demselben Google Cloud -Projekt gehören, in dem die Übertragungskonfiguration und das Ziel-Dataset erstellt werden. Das Dienstkonto muss die erforderlichen Berechtigungenstorage.objects.list
undstorage.objects.get
haben.database
: Geben Sie den Namen der Snowflake-Datenbank ein, die die in dieser Datenübertragung enthaltenen Tabellen enthält.schema
: Geben Sie den Namen des Snowflake-Schemas ein, das die in dieser Datenübertragung enthaltenen Tabellen enthält.table_name_patterns
: Geben Sie eine zu übertragende Tabelle an, indem Sie einen Namen oder ein Muster eingeben, das mit dem Tabellennamen im Schema übereinstimmt. Sie können das Muster mit regulären Ausdrücken angeben, z. B.table1_regex;table2_regex
. Das Muster sollte der Java-Syntax für reguläre Ausdrücke folgen. Beispiel:lineitem;ordertb
führt zu Übereinstimmungen mit Tabellen, dielineitem
undordertb
heißen..*
führt zu Übereinstimmung mit allen Tabellen.Sie können dieses Feld auch leer lassen, um alle Tabellen aus dem angegebenen Schema zu migrieren.
translation_output_gcs_path
: Geben Sie einen Pfad zum Cloud Storage-Ordner an, der die Schemazuordnungsdateien der Übersetzungs-Engine enthält.- Der Pfad muss dem Format
gs:/translation_target_base_uri/metadata/config/db/schema/
entsprechen und mit/
enden.
- Der Pfad muss dem Format
storage_integration_object_name
: Geben Sie den Namen des Snowflake-Speicherintegrationsobjekts ein. In diesem FallS3
.cloud_provider
: Geben SieAWS
ein.amazon_s3_uri
: Geben Sie den URI des S3-Buckets ein, der als Staging-Bereich verwendet werden soll.aws_access_key_id
: Geben Sie das Zugriffsschlüsselpaar ein.aws_secret_access_key
: Geben Sie das Zugriffsschlüsselpaar ein.
Mit dem folgenden Befehl erstellen Sie beispielsweise eine Snowflake-Übertragung mit dem Namen snowflake transfer config
, einem Ziel-Dataset namens your_bq_dataset
und einem Projekt mit der ID your_project_id
.
PARAMS='{ "account_identifier": "your_account_identifier", "aws_access_key_id": "your_access_key_id", "aws_secret_access_key": "your_aws_secret_access_key", "cloud_provider": "AWS", "database": "your_sf_database", "password": "your_sf_password", "schema": "your_snowflake_schema", "service_account": "your_service_account", "storage_integration_object_name": "your_storage_integration_object", "staging_s3_uri": "s3://your/s3/bucket/uri", "table_name_patterns": ".*", "translation_output_gcs_path": "gs://sf_test_translation/output/metadata/config/database_name/schema_name/", "username": "your_sf_username", "warehouse": "your_warehouse" }' bq mk --transfer_config \ --project_id=your_project_id \ --target_dataset=your_bq_dataset \ --display_name='snowflake transfer config' \ --params="$PARAMS" \ --data_source=snowflake_migration
API
Verwenden Sie die Methode projects.locations.transferConfigs.create
und geben Sie eine Instanz der Ressource TransferConfig
an.
Kontingente und Limits
BigQuery hat ein Ladekontingent von 15 TB pro Ladejob und für jede Tabelle. Snowflake komprimiert die Tabellendaten intern. Daher ist die exportierte Tabellengröße größer als die von Snowflake gemeldete Tabellengröße. Wenn Sie eine Tabelle mit mehr als 15 TB migrieren möchten, wenden Sie sich bitte an dts-migration-preview-support@google.com.
Aufgrund des Konsistenzmodells von Amazon S3 kann es sein, dass einige Dateien nicht in die Übertragung nach BigQuery einbezogen werden.
Preise
Die Preise für BigQuery Data Transfer Service finden Sie auf der Seite Preise.
- Wenn sich das Snowflake-Warehouse und der Amazon S3-Bucket in verschiedenen Regionen befinden, berechnet Snowflake Ausgänge, wenn Sie eine Snowflake-Datenübertragung ausführen. Für Snowflake-Datenübertragungen fallen keine Egress-Gebühren an, wenn sich sowohl das Snowflake-Warehouse als auch der Amazon S3-Bucket in derselben Region befinden.
- Wenn Daten von AWS zu Google Cloudübertragen werden, fallen Gebühren für ausgehenden Traffic zwischen Clouds an.
Nächste Schritte
- Weitere Informationen zum BigQuery Data Transfer Service
- Migrieren Sie SQL-Code mit der Batch-SQL-Übersetzung.