メインコンテンツまでスキップ

レイクハウスフェデレーションのパフォーマンスに関する推奨事項

この記事では、レイクハウスフェデレーション クエリのパフォーマンスを向上させるためのガイダンスを提供します。

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)