Catégories :

Fonctions de chaîne et fonctions binaires (Compression/Décompression)

COMPRESS

Compresse la chaîne d’entrée ou la valeur binaire avec une méthode de compression.

Voir aussi :

DECOMPRESS_BINARY , DECOMPRESS_STRING

Syntaxe

COMPRESS(<input>, <method>)

Arguments

Obligatoire :

entrée

Une valeur BINARY ou une valeur de chaîne (ou une expression) à compresser.

méthode

Une chaîne avec méthode de compression et niveau de compression optionnel. Les méthodes prises en charge sont les suivantes :

  • SNAPPY.

  • ZLIB.

  • ZSTD.

  • BZ2.

Le niveau de compression est spécifié entre parenthèses, par exemple : zlib(1). Le niveau de compression est un entier non négatif. 0 signifie le niveau par défaut (équivalent à l’omission du niveau de compression). Le niveau de compression est ignoré si la méthode ne prend pas en charge les niveaux de compression.

Renvoie

Un BINARY avec des données compressées.

Notes sur l’utilisation

  • Si la méthode de compression est inconnue ou non valide, la requête échoue.

  • Le nom de la méthode de compression, par exemple ZLIB, ne distingue pas la casse.

  • Toutes les entrées ne sont pas compressibles. Pour des valeurs d’entrée très courtes ou difficiles à compresser, la valeur de sortie peut avoir la même longueur, voire même être légèrement supérieure à la valeur d’entrée.

Exemples

L’exemple ci-dessous montre comment utiliser la fonction COMPRESS avec la méthode de compression SNAPPY.

La sortie de la fonction est BINARY, mais SNOWSQL l’affiche sous forme de chaîne de caractères hexadécimaux afin d’en améliorer la lisibilité.

SELECT COMPRESS('Snowflake', 'SNAPPY');
+---------------------------------+
| COMPRESS('SNOWFLAKE', 'SNAPPY') |
|---------------------------------|
| 0920536E6F77666C616B65          |
+---------------------------------+