クエリテキストサイズの制限¶
Snowflakeは、Snowflakeクライアントを介して送信されるクエリテキスト(つまり、 SQL ステートメント)のサイズをステートメントごとに1 MB に制限することをお勧めします。それ以上のクエリも正常に処理されますが、Snowflakeでは1ステートメントあたり 1MB を超えるクエリはメタデータストアに永続化される前に切り捨てられるため、再実行や再試行はできませんでした。
この制限には、 WHERE 句、 SET 句( UPDATE ステートメント内)の一部など、ステートメントの一部である文字列リテラルやバイナリリテラルなどのリテラルが含まれます。
この制限は、 JDBC ドライバーなどのSnowflakeコネクターとドライバーを使用するクライアントアプリケーションで値をバインドする場合にも適用されます。
複数の SQL ステートメントが(セミコロンで区切られた)単一の文字列に結合される場合、長さの制限は、文字列内の個々のステートメントではなく、文字列全体に適用されます。
同様に、たとえば JDBC PreparedStatement.addBatch()
メソッドを使用してデータをバッチ処理する場合は、バッチ全体を制限内に収める必要があります。
注釈
Snowflakeは、クライアントとサーバー間でデータを送信するときにデータを圧縮します。この制限は、圧縮 後 のサイズに適用されます。ただし、データの圧縮率は大きく異なるため、圧縮されていないサイズを制限内に収めるのが最も安全です。
制限を超えるデータをロードするには、 Snowflakeにデータをロードする の説明に従ってデータファイルからロードします。