Bereitstellen von Daten im Stagingbereich¶
Dieses Thema enthält bewährte Verfahren, allgemeine Richtlinien und wichtige Hinweise für die Vorbereitung Ihrer Datendateien zum Laden.
Unter diesem Thema:
Organisieren von Daten nach Pfaden¶
Referenzen auf interne (d. h. Snowflake) und externe (Amazon S3, Google Cloud Storage oder Microsoft Azure) Stagingbereiche können einen Pfad (oder ein Präfix in AWS-Terminologie) beinhalten. Beim Staging regulärer Datasets empfehlen wir, die Daten in logische Pfade zu partitionieren, die Identifizierungsdetails wie geografische Lage oder andere Quellenbezeichner sowie das Datum, an dem die Daten geschrieben wurden, enthalten.
Durch die Organisation Ihrer Datendateien nach Pfad können Sie jeden Bruchteil der partitionierten Daten mit einem einzigen Befehl in Snowflake kopieren. Auf diese Weise können Sie gleichzeitige COPY-Anweisungen ausführen, die einer Teilmenge von Dateien entsprechen, wobei Sie die Vorteile paralleler Operationen nutzen.
Wenn Sie beispielsweise Daten für ein nordamerikanisches Unternehmen nach geografischer Lage speichern, können Sie Bezeichner wie Kontinent, Land und Stadt in Pfaden zusammen mit dem Datum der Datenschreibvorgänge angeben:
Canada/Ontario/Toronto/2016/07/10/05/
United_States/California/Los_Angeles/2016/06/01/11/
United_States/New York/New_York/2016/12/21/03/
United_States/California/San_Francisco/2016/08/03/17/
Wenn Sie einen benannten Stagingbereich erstellen, können Sie einen beliebigen Teil eines Pfades angeben. Erstellen Sie beispielsweise einen externen Stagingbereich mit einem der oben genannten Beispielpfade:
CREATE STAGE my_stage URL='s3://mybucket/United_States/California/Los_Angeles/' CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z');
Sie können auch einen Pfad hinzufügen, wenn Sie Dateien in einem internen Benutzer- oder Tabellen-Stagingbereich bereitstellen. Beispiel: Stagingbereich mydata.csv
in einem bestimmten Pfad des Tabellen-Stagingbereichs t1
:
PUT file:///data/mydata.csv @%t1/United_States/California/Los_Angeles/2016/06/01/11/
Wenn Sie Ihre bereitgestellten Daten laden, schränken Sie den Pfad auf die detaillierteste Ebene ein, die Ihre Daten enthält, um die Leistung des Ladens von Daten zu verbessern.
Verwenden Sie eine der folgenden Optionen, um die Liste der zu ladenden Dateien weiter einzuschränken:
Wenn die Dateinamen bis auf ein Suffix oder eine Erweiterung übereinstimmen, nehmen Sie den entsprechenden Teil der Dateinamen in den Pfad auf, z. B:
COPY INTO t1 from @%t1/United_States/California/Los_Angeles/2016/06/01/11/mydata;Fügen Sie die Optionen FILES oder PATTERN hinzu (siehe Optionen für die Auswahl der Staging-Datendateien), z. B.:
COPY INTO t1 from @%t1/United_States/California/Los_Angeles/2016/06/01/11/ FILES=('mydata1.csv', 'mydata1.csv'); COPY INTO t1 from @%t1/United_States/California/Los_Angeles/2016/06/01/11/ PATTERN='.*mydata[^[0-9]{1,3}$$].csv';