Encodage Mostly - Amazon Redshift

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.

Encodage Mostly

Les encodages Mostly sont utiles lorsque le type de données d’une colonne est plus volumineux que la plupart des valeurs stockées le nécessitent. En spécifiant un encodage Mostly pour ce type de colonne, vous pouvez compresser la majorité des valeurs de la colonne dans une taille de stockage standard inférieure. Les autres valeurs qui ne peuvent pas être compressées sont stockées dans leur format brut. Par exemple, vous pouvez compresser une colonne de 16 bits, par exemple une colonne INT2, en un stockage 8 bits.

En général, les encodages Mostly fonctionnent avec les types de données suivants :

  • SMALLINT/INT2 (16 bits)

  • INTEGER/INT (32 bits)

  • BIGINT/INT8 (64 bits)

  • DECIMAL/NUMERIC (64 bits)

Choisissez la variation appropriée de l’encodage Mostly en fonction de la taille du type de données de la colonne. Par exemple, appliquez l’encodage MOSTLY8 à une colonne qui est définie comme une colonne de nombres entiers de 16 bits. L’application de l’encodage MOSTLY16 à une colonne contenant un type de données de 16 bits ou de l’encodage MOSTLY32 à une colonne contenant un type de données de 32 bits est refusé.

Les encodages Mostly peuvent être moins efficaces qu’aucune compression du tout, si bon nombre des valeurs de la colonne ne peuvent pas être compressées. Avant d’appliquer l’un de ces encodages à une colonne, effectuez une vérification. La plupart des valeurs que vous allez charger maintenant (et que vous êtes susceptible de charger à l’avenir) devraient se situer dans les plages indiquées dans le tableau suivant.

Encodage Taille de stockage compressée Plage de valeurs qui peuvent être compressées (les valeurs situées en dehors de la plage sont stockées dans un format brut)
MOSTLY8 1 octet (8 bits) -128 à 127
MOSTLY16 2 octets (16 bits) -32768 à 32767
MOSTLY32 4 octets (32 bits) -2147483648 à +2147483647
Note

Pour les valeurs décimales, ignorez la virgule pour déterminer si la valeur correspond à la plage. Par exemple, le nombre 1 234,56 est traité comme 123 456 et peut être compressé dans une colonne MOSTLY32.

Par exemple, la colonne VENUEID de la table VENUE est définie comme une colonne de nombres entiers bruts, ce qui signifie que ses valeurs consomment 4 octets de stockage. Toutefois, la plage de valeurs actuelle de la colonne s’étend de 0 à 309. Par conséquent, recréer et recharger cette table avec l’encodage MOSTLY16 pour VENUEID réduirait le stockage de chaque valeur dans cette colonne à 2 octets.

Si les valeurs VENUEID référencées dans une autre table se situaient principalement dans la plage de 0 à 127, il peut être judicieux d’encoder cette colonne de clé étrangère avec MOSTLY8. Avant de faire votre choix, exécutez plusieurs requêtes sur les données de la table de référencement pour savoir si les valeurs se situent principalement dans une plage de 8, 16 ou 32 bits

Le tableau suivant présente les tailles compressés de valeurs numériques spécifiques lorsque les encodages MOSTLY8, MOSTLY16 et MOSTLY32 sont utilisés :

Valeur d’origine Taille INT ou BIGINT d’origine (octets) Taille compressée MOSTLY8 (octets) Taille compressée MOSTLY16 (octets) Taille compressée MOSTLY32 (octets)
1 4 1 2 4
10 4 1 2 4
100 4 1 2 4
1 000 4 Identique à la taille des données brutes 2 4
10 000 4 2 4
20 000 4 2 4
40 000 8 Identique à la taille des données brutes 4
100 000 8 4
2 000 000 000 8 4