Option 1: Load data with the Snowpipe REST API¶
Unter diesem Thema wird beschrieben, wie Sie die öffentlichen REST-Endpunkte aufrufen, um Daten zu laden und Berichte über den Ladeverlauf abzurufen. Die Anweisungen gehen davon aus, dass Sie die Setup-Anweisungen unter Data loading preparation using the Snowpipe REST API abgeschlossen haben.
Load data¶
Das Laden erfolgt in zwei Schritten:
- Schritt 1::
Stellen Sie die Datendateien im Stagingbereich bereit:
Interner Stagingbereich: Verwenden Sie den Befehl PUT, um Ihre Dateien im Stagingbereich bereitzustellen.
Externer Stagingbereich: Verwenden Sie die Clienttools des Cloudanbieters, um Ihre Dateien in den Stagingbereich (Amazon S3, Google Cloud Storage oder Microsoft Azure) zu kopieren.
- Schritt 2::
Senden Sie eine Anfrage an den REST-Endpunkt insertFile, um die Staging-Datendateien zu laden.
Unter diesem Thema finden Sie Beispiele für Java- und Python-Programme, die veranschaulichen, wie ein REST-Endpunkt übermittelt wird.
Beispielprogramm für das Java-SDK¶
In diesem Beispiel werden die Bouncy Castle Crypto-APIs verwendet. Um dieses Beispiel kompilieren und ausführen zu können, müssen Sie Ihrem Klassenpfad die folgenden JAR-Dateien hinzufügen:
die Anbieter-JAR-Datei (
bcprov-jdkversions.jar)die PKIX/CMS/EAC/PKCS/OCSP/TSP/OPENSSL-JAR-Datei (
bcpkix-jdkversions.jar)
wobei versions die Versionen der JDK angibt, die von der JAR-Datei unterstützt werden.
Bevor Sie den Beispielcode kompilieren, ersetzen Sie die folgenden Platzhalterwerte:
PRIVATE_KEY_FILE = "/<Pfad>/rsa_key.p8"Geben Sie den lokalen Pfad zu der privaten Schlüsseldatei an, die Sie in Use key pair authentication & key rotation (unter Data loading preparation using the Snowpipe REST API) erstellt haben.
return "<Passphrase_des_privaten_Schlüssels >"ingetPrivateKeyPassphrase()Wenn Sie einen verschlüsselten Schlüssel generiert haben, implementieren Sie die
getPrivateKeyPassphrase()-Methode, um die Passphrase zum Entschlüsseln dieses Schlüssels zurückzugeben.host = "<Kontobezeichner>.snowflakecomputing.com"Geben Sie Ihre Hostinformationen in Form einer URL an.
Das bevorzugte Format für den Kontobezeichner ist wie folgt:
organization_name-account_nameNamen Ihrer Snowflake-Organisation und Ihres Snowflake-Kontos. Weitere Details dazu finden Sie unter Format 1 (bevorzugt): Kontoname in Ihrer Organisation.
Geben Sie alternativ Ihren Konto-Locator an, ggf. zusammen mit der Region und der Cloudplattform, auf der das Konto gehostet wird. Weitere Details dazu finden Sie unter Format 2: Konto-Locator in einer Region.
user = "<Benutzeranmeldename>"Geben Sie Ihren Snowflake-Anmeldenamen an.
pipe = "<Datenbankname>.<Schemaname>.<Pipename>"Geben Sie den vollqualifizierten Namen der Pipe an, die zum Laden der Daten verwendet werden soll.
files.add("<Pfad>/<Dateiname>", <Dateigröße_in_Byte>)Geben Sie in der Liste der Dateiobjekte den Pfad zu den zu ladenden Dateien an:
Geben Sie optional die Größe jeder Datei in Byte an, um Verzögerungen bei der Berechnung der zum Laden der Daten erforderlichen Operationen durch Snowpipe zu vermeiden.
Der von Ihnen angegebene Pfad muss relativ zu dem Stagingbereich sein, in dem sich die Dateien befinden. Geben Sie den vollständigen Namen für jede Datei an, einschließlich der Dateiendung. Eine CSV-Datei, die gzip-komprimiert ist, könnte beispielsweise die Erweiterung
.csv.gzhaben.
Beispielprogramm für das Python-SDK¶
Bevor Sie den Beispielcode ausführen, ersetzen Sie die folgenden Platzhalterwerte:
<Pfad_zu_privatem_Schlüssel>Geben Sie den lokalen Pfad zu der privaten Schlüsseldatei an, die Sie in Use key pair authentication & key rotation (unter Data loading preparation using the Snowpipe REST API) erstellt haben.
return "<Passphrase_des_privaten_Schlüssels >"inget_private_key_passphrase()Wenn Sie einen verschlüsselten Schlüssel generiert haben, implementieren Sie die Funktion
get_private_key_passphrase(), um die Passphrase zum Entschlüsseln dieses Schlüssels zurückzugeben.account='<Kontobezeichner>'Geben Sie den eindeutigen Bezeichner für Ihr Konto an (wird von Snowflake bereitgestellt). Siehe auch die Beschreibung von
host.host='<Kontobezeichner>.snowflakecomputing.com'Geben Sie den eindeutigen Hostnamen für Ihr Snowflake-Konto an.
Das bevorzugte Format für den Kontobezeichner ist wie folgt:
organization_name-account_nameNamen Ihrer Snowflake-Organisation und Ihres Snowflake-Kontos. Weitere Details dazu finden Sie unter Format 1 (bevorzugt): Kontoname in Ihrer Organisation.
Geben Sie alternativ Ihren Konto-Locator an, ggf. zusammen mit der Region und der Cloudplattform, auf der das Konto gehostet wird. Weitere Details dazu finden Sie unter Format 2: Konto-Locator in einer Region.
user='<user_login_name>'Geben Sie Ihren Snowflake-Anmeldenamen an.
pipe='<db_name>.<schema_name>.<pipe_name>'Geben Sie den vollqualifizierten Namen der Pipe an, die zum Laden der Daten verwendet werden soll.
file_list=['<path>/<filename>', '<path>/<filename>']|staged_file_list=[StagedFile('<path>/<filename>', <file_size_in_bytes>), StagedFile('<path>/<filename>', <file_size_in_bytes>)]Geben Sie in der Liste der Dateiobjekte den Pfad zu den zu ladenden Dateien an:
Der von Ihnen angegebene Pfad muss relativ zu dem Stagingbereich sein, in dem sich die Dateien befinden. Geben Sie den vollständigen Namen für jede Datei an, einschließlich der Dateiendung. Eine CSV-Datei, die gzip-komprimiert ist, könnte beispielsweise die Erweiterung
.csv.gzhaben.Geben Sie optional die Größe jeder Datei in Byte an, um Verzögerungen bei der Berechnung der zum Laden der Daten erforderlichen Operationen durch Snowpipe zu vermeiden.
View the load history¶
Snowflake bietet REST-Endpunkte und eine Tabellenfunktion Snowflake Information Schema zum Anzeigen des Ladeverlaufs:
REST-Endpunkte:
Information Schema-Tabellenfunktion:
Account Usage-Ansicht:
Beachten Sie, dass die Abfrage der Information Schema-Tabellenfunktion oder der Account Usage-Ansicht im Gegensatz zum Aufruf der REST-Endpunkte ein aktives Warehouse erfordert.
Delete staged files¶
Löschen Sie die Stagingdateien, nachdem Sie die Daten erfolgreich geladen haben und die Dateien nicht mehr benötigen. Eine Anleitung dazu finden Sie unter Löschen von Stagingdateien, nachdem Snowpipe die Daten geladen hat.