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.

Unloading data to Cloud Storage

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

Klicken Sie auf Databases Databases tab » <DB-Name> » Stages

SQL

CREATE STAGE

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:

Entladen von Daten in den benannten Stagingbereich

  1. 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 Tabelle mytable in eine oder mehrere Dateien des Cloud Storage-Buckets zu entladen. Alle Dateien erhalten das Dateinamen-Präfix d1:

    COPY INTO @my_ext_unload_stage/d1
    FROM mytable;
    
    Copy
  2. 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

  1. 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äfix unload/ entladen:

    COPY INTO 'gcs://mybucket/unload/'
      FROM mytable
      STORAGE_INTEGRATION = gcs_int;
    
    Copy
  2. 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.