レイクハウスフェデレーションのパフォーマンスに関する推奨事項
この記事では、レイクハウスフェデレーション クエリのパフォーマンスを向上させるためのガイダンスを提供します。
JDBC fetchSize パラメーターの設定
JDBC フェッチ・サイズは、ラウンド・トリップごとにフェッチするロー数を決定します。 デフォルトでは、ほとんどの JDBC コネクターはデータをアトミックにフェッチします。 これにより、データ量が使用可能なメモリ量を超える可能性があります。
メモリ不足エラーを回避するには、 fetchSize
パラメーターを設定します。 fetchSize
が 0 以外の値に設定されている場合、コネクタはデータをバッチで読み取ります。バッチあたりの最大行数は、 fetchSize
の値と等しくなります。Databricks では、バッチ内の行数が少なすぎるとクエリ全体の実行時間が長くなる可能性があるため、大きな fetchSize
値 ( 100,000
など) を指定することをお勧めします。
このパラメーターを使用すると、ワーカー ノードはデータをバッチで読み取ることができますが、並列で読み取ることはできません。
コンピュートの要件:
- コンピュートは Databricks Runtime 16.1以上で使用する必要があります。 SQLウェアハウスは Pro または サーバレスで、2024.50 を使用する必要があります。
SQL
SELECT * FROM catalog.schema.jdbcTable WITH ('fetchSize' 100000)
partition_size_in_mb パラメーター (Snowflake) を設定します。
partition_size_in_mb
パラメーターは、複数の DataFrame パーティションに分割する必要がある大規模なクエリ結果セットに設定します。このオプションは、各 DataFrame パーティションの推奨非圧縮サイズを指定します。 パーティションの数を減らすには、より大きな値を指定します。 デフォルトは 100
(MB) です。
partition_size_in_mb
を推奨サイズとして使用します。パーティションの実際のサイズは、これより小さい場合も大きい場合もあります。
コンピュートの要件:
- コンピュートは Databricks Runtime 16.1以上で使用する必要があります。 SQLウェアハウスは Pro または サーバレスで、2024.50 を使用する必要があります。
SQL
SELECT * FROM catalog.schema.snowflakeTable WITH ('partition_size_in_mb' 1000)