Types pris en charge pour la projection de partition - Amazon Athena

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Types pris en charge pour la projection de partition

Une table peut avoir n'importe quelle combinaison de types de colonnes de partition enum, integer, date, ou injected.

Type d'énumération

Utilisez le enum type pour les colonnes de partition dont les valeurs sont membres d'un ensemble énuméré (par exemple, des codes d'aéroport ou Régions AWS).

Définissez les propriétés de partition dans le tableau comme suit :

Nom de la propriété Exemples de valeur Description
projection.columnName.type

enum

Obligatoire. Type de projection à utiliser pour la colonne columnName. La valeur doit être enum (insensible à la casse) pour signaler l'utilisation du type énumération. L'espace de début et de fin est autorisé.
projection.columnName.values

A,B,C,D,E,F,G,Unknown

Obligatoire. Liste séparée par des virgules des valeurs de partition énumérées pour la colonne columnName. Tout espace est considéré comme faisant partie d'une valeur d'énumération.
Note

En tant que bonne pratique, nous recommandons de limiter l'utilisation des projections de partitions basées sur enum à quelques dizaines ou moins. Bien qu'il n'existe aucune limite spécifique pour les enum projections, la taille totale des métadonnées de votre table ne peut pas dépasser la AWS Glue limite d'environ 1 Mo lors de la compression gzip. Notez que cette limite est partagée entre les éléments clés de votre table, comme les noms de colonnes, l'emplacement, le format de stockage, etc. Si vous utilisez plus de quelques dizaines d'identifiants uniques dans votre projection enum, envisagez une autre approche, comme le compartimentage en un plus petit nombre de valeurs uniques dans un champ de substitution. En échangeant la cardinalité, vous pouvez contrôler le nombre de valeurs uniques dans votre champ enum.

Type d'entier

Utilisez le type entier pour les colonnes de partition dont les valeurs possibles peuvent être interprétées comme des entiers dans une plage définie. Les colonnes d'entier projetées sont actuellement limitées à la plage d'un entier Java long signé (-263 à 263-1 inclus).

Nom de la propriété Exemples de valeur Description
projection.columnName.type

integer

Obligatoire. Type de projection à utiliser pour la colonne columnName. La valeur doit être integer (insensible à la casse) pour signaler l'utilisation du type entier. L'espace de début et de fin est autorisé.
projection.columnName.range

0,10

-1,8675309

0001,9999

Obligatoire. Liste à deux éléments séparée par des virgules, qui fournit les valeurs de plage minimale et maximale à renvoyer par les requêtes dans la colonne columnName. Notez que les valeurs doivent être séparées par une virgule, et non par un tiret. Ces valeurs sont inclusives, peuvent être négatives et peuvent contenir des zéros de début. L'espace de début et de fin est autorisé.
projection.columnName.interval

1

5

Facultatif. Entier positif qui spécifie l'intervalle entre les valeurs de partition successives pour la colonne columnName. Par exemple, la valeur range « 1,3 » avec une valeur interval correspondant à « 1 » génère les valeurs 1, 2 et 3. La même valeur range avec une valeur interval correspondant à « 2 » génère les valeurs 1 et 3 et ignore 2. L'espace de début et de fin est autorisé. La valeur par défaut est 1.
projection.columnName.digits

1

5

Facultatif. Entier positif spécifiant le nombre de chiffres à inclure dans la représentation finale de la valeur de partition pour la colonne columnName. Par exemple, la valeur range « 1,3 » avec une valeur digits correspondant à « 1 » génère les valeurs 1, 2 et 3. La même valeur range avec une valeur digits correspondant à « 2 » génère les valeurs 01, 02 et 03. L'espace de début et de fin est autorisé. La valeur par défaut est un nombre non statique de chiffres et ne contient aucun zéro de début.

Type de date

Utilisez le type de date pour les colonnes de partition dont les valeurs sont interprétables comme des dates (avec des heures facultatives) dans une plage définie.

Important

Les colonnes de date projetée sont générées en temps universel coordonné (UTC) au moment de l'exécution de la requête.

Nom de la propriété Exemples de valeur Description
projection.columnName.type

date

Obligatoire. Type de projection à utiliser pour la colonne columnName. La valeur doit être date (insensible à la casse) pour signaler l'utilisation du type date. L'espace de début et de fin est autorisé.
projection.columnName.range

201701,201812

01-01-2010,12-31-2018

NOW-3YEARS,NOW

201801,NOW+1MONTH

Obligatoire. Liste à deux éléments séparée par des virgules, qui fournit les valeurs range minimale et maximale à renvoyer par les requêtes dans la colonne columnName. Ces valeurs sont inclusives et peuvent utiliser n'importe quel format compatible avec les types de date Java java.time.*. Les valeurs minimales et maximales doivent utiliser le même format. Le format spécifié dans la propriété .format doit correspondre au format utilisé pour ces valeurs.

Cette colonne peut également contenir des chaînes de date relatives, formatées dans ce modèle d'expression régulière :

\s*NOW\s*(([\+\-])\s*([0-9]+)\s*(YEARS?|MONTHS?|WEEKS?|DAYS?|HOURS?|MINUTES?|SECONDS?)\s*)?

Les espaces sont autorisés, mais les littéraux de type date sont considérés comme faisant partie des chaînes de date elles-mêmes.

projection.columnName.format

yyyyMM

dd-MM-yyyy

dd-MM-yyyy-HH-mm-ss

Obligatoire. Chaîne de format de date basée sur le format de date Java DateTimeFormatter. Il peut s'agir de n'importe quel type Java.time.* pris en charge.
projection.columnName.interval

1

5

Entier positif qui spécifie l'intervalle entre les valeurs de partition successives pour la colonne columnName. Par exemple, la valeur range 2017-01,2018-12 avec une valeur interval correspondant à 1 et une valeur interval.unit correspondant à MONTHS génère les valeurs 2017-01, 2017-02, 2017-03, etc. La même valeur range avec une valeur interval correspondant à 2 et une valeur interval.unit correspondant MONTHS génère les valeurs 2017-01, 2017-03, 2017-05, etc. L'espace de début et de fin est autorisé.

Lorsque les dates fournies sont précises à un jour ou à un mois, la valeur interval est facultative, et la valeur par défaut est 1 jour ou 1 mois, respectivement. Dans le cas contraire, la valeur interval est obligatoire.

projection.columnName.interval.unit

YEARS

MONTHS

WEEKS

DAYS

HOURS

MINUTES

SECONDS

MILLIS

Un mot d'unité de temps qui représente la forme sérialisée de a. ChronoUnit Les valeurs possibles sont YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS ou MILLIS. Ces valeurs ne sont pas sensibles à la casse.

Lorsque les dates fournies sont précises à un jour ou à un mois, la valeur interval.unit est facultative, et la valeur par défaut est 1 jour ou 1 mois, respectivement. Dans le cas contraire, la valeur interval.unit est obligatoire.

Type injecté

Utilisez le type injecté pour les colonnes de partition avec des valeurs possibles qui ne peuvent pas être générées de manière procédurale dans une plage logique, mais qui sont fournies dans la clause WHERE d'une requête en tant que valeur unique.

Il est important de garder à l'esprit les points suivants :

  • Les requêtes au niveau des colonnes injectées échouent si aucune expression de filtre n'est fournie pour chaque colonne injectée.

  • Les requêtes comportant plusieurs valeurs pour une expression de filtre sur une colonne injectée réussissent uniquement si les valeurs sont disjointes.

  • Seules les colonnes de type string sont prises en charge.

Nom de la propriété Valeur Description
projection.columnName.type

injected

Obligatoire. Type de projection à utiliser pour la colonne columnName. Seul le type string est pris en charge. La valeur spécifiée doit être injected (insensible à la casse). L'espace de début et de fin est autorisé.

Pour plus d’informations, consultez Utilisation du type de projection injected.