Mettre les données en zone de préparation

Ce chapitre fournit des bonnes pratiques, des lignes directrices générales et des considérations importantes concernant la préparation de vos fichiers de données en vue d’un chargement.

Dans ce chapitre :

Organisation des données par chemin

Tant la mise en zone de préparation en interne (c.-à-d. Snowflake) qu’externe (Amazon S3, Google Cloud Storage ou Microsoft Azure) peuvent inclure un chemin (ou préfixe selon la terminologie AWS). Lors de la mise en zone de préparation d’ensembles de données réguliers, nous recommandons de diviser les données en chemins logiques qui comprennent des détails d’identification tels que l’emplacement géographique ou d’autres identificateurs sources, ainsi que la date à laquelle les données ont été écrites.

L’organisation de vos fichiers de données en chemins vous permet de copier n’importe quelle fraction des données partitionnées dans Snowflake avec une seule commande. Cela vous permet d’exécuter des instructions COPY concurrentes qui correspondent à un sous-ensemble de fichiers, en tirant parti des opérations parallèles.

Par exemple, si vous stockez les données d’une entreprise nord-américaine par emplacement géographique, vous pouvez inclure des identificateurs tels que le continent, le pays et la ville dans des chemins avec des dates d’écriture des données :

  • Canada/Ontario/Toronto/2016/07/10/05/

  • États-Unis/Californie/Los_Angeles/2016/06/01/11/

  • États-Unis/NewYork/New_York/2016/12/21/03/

  • États-Unis/Californie/San_Francisco/2016/08/03/17/

Lorsque vous créez une zone de préparation nommée, vous pouvez spécifier n’importe quelle partie d’un chemin. Par exemple, créez une zone de préparation externe à l’aide de l’un des chemins d’exemple ci-dessus :

CREATE STAGE my_stage URL='s3://mybucket/United_States/California/Los_Angeles/' CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z');

De même, vous pouvez également ajouter un chemin d’accès lorsque vous préparez des fichiers dans une zone de préparation d’utilisateur ou de table interne. Par exemple, la zone de préparation mydata.csv dans un chemin spécifique de la zone de préparation t1 table :

PUT file:///data/mydata.csv @%t1/United_States/California/Los_Angeles/2016/06/01/11/

Lorsque vous chargez vos données préparées, réduisez le chemin au niveau le plus granulaire qui inclut vos données pour améliorer les performances de chargement des données.

Utilisez l’une des options suivantes pour limiter davantage la liste des fichiers à charger :

  • Si les noms de fichiers correspondent, à l’exception d’un suffixe ou d’une extension, incluez la partie correspondante des noms de fichiers dans le chemin, par exemple :

    COPY INTO t1 from @%t1/United_States/California/Los_Angeles/2016/06/01/11/mydata;
    
  • Ajoutez les options FILES ou PATTERN (voir Options de sélection des fichiers de données préparés), par ex :

    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';