Limites de la taille du texte de requête

Snowflake recommande de limiter la taille du texte de requête (c.-à-d. instructions SQL) soumis par les clients Snowflake à 1 MB par instruction. Les requêtes plus importantes sont traitées normalement, mais vous ne pouvez pas les réexécuter ou faire de nouvelles tentatives, car Snowflake tronque les requêtes de plus de 1MB par instruction avant de les rendre persistantes dans le magasin de métadonnées.

Cette limite inclut tous les littéraux, tels que les littéraux de chaîne ou les littéraux binaires, qui font partie de l’instruction, que ce soit dans le cadre d’une clause WHERE, d’une clause SET (dans une instruction UPDATE), etc.

Cette limite s’applique également lors de la liaison de valeurs dans des applications clientes qui utilisent des connecteurs et des pilotes Snowflake, tels que le pilote JDBC.

Si plusieurs instructions SQL sont combinées en une seule chaîne (séparées par des points-virgules), la limite de longueur s’applique à la chaîne entière, pas aux instructions individuelles de la chaîne.

De même, si les données sont groupées, par exemple en utilisant la méthode JDBC PreparedStatement.addBatch() , le lot entier doit tenir dans la limite.

Note

Snowflake compresse les données lors de leur envoi entre le client et le serveur. La limite s’applique à la taille après la compression. Cependant, étant donné que le taux de compression des données varie considérablement, il est plus sûr de conserver la taille non compressée dans la limite.

Pour charger des données dépassant la limite, chargez-les à partir de fichiers de données comme décrit dans Chargement de données dans Snowflake.