JDBC フェッチサイズパラメータの設定 - Amazon Redshift

Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、ブログ記事を参照してください。

JDBC フェッチサイズパラメータの設定

デフォルトでは、Redshift JDBC ドライバーはリングバッファを使用してメモリを効率的に管理し、メモリ不足エラーを防止します。フェッチサイズパラメータは、リングバッファが明示的に無効になっている場合にのみ適用できます。詳細については、「link」を参照してください。この設定では、各バッチで取得される行数を制御するようにフェッチサイズを設定する必要があります。

フェッチサイズを使用するタイミング

次の場合は、フェッチサイズパラメータを使用します。

  • 行ベースのバッチ処理をきめ細かく制御する必要がある

  • 従来のフェッチサイズ動作を必要とするレガシーアプリケーションを使用している

フェッチサイズの設定

リングバッファが無効な場合、デフォルトでは、JDBC ドライバーはクエリに対して一度にすべての結果を収集します。大きな結果セットを返すクエリは、過剰なメモリを消費する可能性があります。一度にすべてではなくバッチで結果セットを取得するには、アプリケーションで JDBC フェッチサイズパラメータを設定します。

注記

フェッチサイズは ODBC ではサポートされません。

最適なパフォーマンスのためには、メモリ不足エラーが発生しない最大の値にフェッチサイズを設定します。フェッチサイズの値を低く設定すると、サーバートリップが増え、それにより実行時間が長くなります。サーバーは、クライアントが結果セット全体を取得するまで、WLM クエリスロットおよび関連メモリを含むリソースを予約します。そうでない場合、クエリはキャンセルされます。フェッチサイズを適切に調整すると、それらのリソースはより迅速に解放され、他のクエリに利用できるようになります。

注記

大きなデータセットを抽出する必要がある場合は、UNLOAD ステートメントを使用してデータを Amazon S3 に転送することをお勧めします。UNLOAD を使用するときは、コンピューティングノードは並行してデータの転送を高速化します。

JDBC フェッチサイズパラメータの詳細については、PostgreSQL のドキュメントで「Getting results based on a cursor」を参照してください。