Entladen in Google Cloud Storage¶
Wenn Sie bereits ein Google Cloud Storage-Konto haben und Cloud Storage-Container für die Speicherung und Verwaltung Ihrer Dateien verwenden, können Sie Ihre vorhandenen Buckets und Ordnerpfade für das Entladen von Daten aus Snowflake-Tabellen verwenden. Unter diesem Thema wird beschrieben, wie Sie mit dem Befehl COPY Daten aus einer Tabelle in einen Cloud Storage-Bucket entladen. Sie können die entladenen Datendateien dann in Ihr lokales Dateisystem herunterladen.
Wie in der folgenden Abbildung dargestellt, erfolgt das Entladen von Daten in einen Cloud Storage-Bucket in zwei Schritten:
- Schritt 1::
Verwenden Sie den Befehl COPY INTO <Speicherort>, um die Daten aus der Snowflake-Datenbanktabelle in eine oder mehrere Dateien eines Cloud Storage-Buckets zu kopieren. Geben Sie im Befehl ein benanntes externes Stagingobjekt an, das auf den Cloud Storage-Bucket verweist (empfohlen), oder wählen Sie aus, dass die Daten direkt in den Bucket entladen werden, indem Sie die URI und die Speicherintegration (falls erforderlich) für den Bucket angeben.
Unabhängig davon, welche Methode Sie verwenden, erfordert dieser Schritt ein aktives, aktuelles virtuelles Warehouse für die Sitzung, wenn Sie den Befehl manuell oder aus einem Skript heraus ausführen. Das Warehouse stellt die Computeressourcen zur Verfügung, um Zeilen aus der Tabelle zu schreiben.
- Schritt 2::
Verwenden Sie die von Google bereitgestellten Schnittstellen/Tools, um die Dateien aus dem Cloud Storage-Bucket herunterzuladen.
Tipp
Die unter diesem Thema bereitgestellten Anleitungen gehen davon aus, dass Sie Vorbereiten des Entladens von Daten gelesen und ggf. ein benanntes Dateiformat erstellt haben.
Bevor Sie beginnen, sollten Sie vielleicht auch Hinweise zum Entladen von Daten für bewährte Verfahren, Tipps und andere Hinweise lesen.
Unter diesem Thema:
Konfigurieren von Cloud Storage zum Entladen von Daten¶
Um in Snowflake in einen Cloud Storage-Bucket zu schreiben, müssen Sie ein Speicherintegrationsobjekt konfigurieren, damit die Authentifizierungsverantwortung für den externen Cloudspeicher an eine Snowflake-Entität der Identitäts- und Zugriffsverwaltung (IAM) zu delegieren.
Weitere Informationen zur Konfiguration finden Sie unter Konfigurieren einer Integration für Google Cloud Storage.
Entladen von Daten in einen externen Stagingbereich¶
Externe Stagingbereiche sind benannte Datenbankobjekte, die ein Höchstmaß an Flexibilität beim Entladen von Daten bieten. Da es sich um Datenbankobjekte handelt, können Berechtigungen für benannte Stagingbereiche jeder Rolle zugewiesen werden.
Sie können einen externen benannten Stagingbereich entweder über die Weboberfläche oder mit SQL erstellen:
- Classic Console:
- SQL:
Erstellen eines benannten Stagingbereichs¶
Im folgenden Beispiel wird ein externer Stagingbereich namens my_ext_unload_stage
mit einem Ordnerpfad namens unload
erstellt. Der Stagingbereich verweist auf folgende Objekte:
Benannte Speicherintegration mit dem Namen
gcs_int
, die in Konfigurieren einer Integration für Google Cloud Storage erstellt wurde.Benanntes Dateiformat mit dem Namen
my_csv_unload_format
, das in Vorbereiten des Entladens von Daten erstellt wurde.CREATE OR REPLACE STAGE my_ext_unload_stage URL='gcs://mybucket/unload' STORAGE_INTEGRATION = gcs_int FILE_FORMAT = my_csv_unload_format;
Entladen von Daten in den benannten Stagingbereich¶
Verwenden Sie den Befehl COPY INTO <Speicherort>, um Daten aus einer Tabelle über einen externen Stagingbereich in einen Cloud Storage-Bucket zu entladen.
Im folgenden Beispiel wird der Stagingbereich
my_ext_unload_stage
verwendet, um alle Zeilen der Tabellemytable
in eine oder mehrere Dateien des Cloud Storage-Buckets zu entladen. Alle Dateien erhalten das Dateinamen-Präfixd1
:COPY INTO @my_ext_unload_stage/d1 FROM mytable;
Verwenden Sie die von Cloud Storage bereitgestellten Tools, um die Objekte (d. h. die durch den Befehl generierten Dateien) aus dem Bucket abzurufen.
Entladen von Daten direkt in einen Cloud Storage-Bucket¶
Verwenden Sie den Befehl COPY INTO <Speicherort>, um Daten aus einer Tabelle direkt in einen angegebenen Cloud Storage-Bucket zu entladen. Diese Option eignet sich gut für die Ad-hoc-Entladung, wenn Sie keine regelmäßige Datenentladung mit den gleichen Tabellen- und Bucketparametern planen.
Sie müssen im Befehl die URI des Cloud Storage-Buckets und die Speicherintegration für den Zugriff auf den Bucket angeben.
Im folgenden Beispiel werden alle Zeilen der Tabelle
mytable
in eine oder mehrere Dateien des Cloud Storage-Buckets mit dem Ordnerpfadpräfixunload/
entladen:COPY INTO 'gcs://mybucket/unload/' FROM mytable STORAGE_INTEGRATION = gcs_int;
Verwenden Sie die Cloud Storage-Konsole (oder eine ähnliche Clientanwendung), um die Objekte (d. h. die durch den Befehl generierten Dateien) aus dem Bucket abzurufen.