閱讀英文

共用方式為

Lakehouse 联邦性能建议

本文提供如何提高 Lakehouse 联合查询性能的指导。

设置 JDBC fetchSize 参数

JDBC 提取大小确定每个往返提取的行数。 默认情况下,大多数 JDBC 连接器以原子方式提取数据。 这可能会导致数据量超过可用内存量。

若要避免内存不足错误,请设置 fetchSize 参数。 当设置为非零值时 fetchSize ,连接器会分批读取数据。 每个批处理的最大行数等于值 fetchSize。 Databricks 建议指定一 fetchSize 个大值(例如 100,000),因为如果批处理中的行数太小,则可以延长整个查询执行时间。

此参数允许工作器节点分批读取数据,但不能并行读取数据。

计算要求:

  • 必须在 Databricks Runtime 16.1 或更高版本上使用计算。 SQL 仓库必须是 Pro,并且必须使用 2024.50。
SELECT * FROM catalog.schema.jdbcTable WITH ('fetchSize' 100000)

设置“partition_size_in_mb”参数(Snowflake)

为需要拆分为多个 DataFrame 分区的大型查询结果集设置 partition_size_in_mb 参数。 此选项指定每个 DataFrame 分区的建议未压缩大小。 若要减少分区数,请指定更大的值。 默认值为 100 (MB)。

partition_size_in_mb 用于推荐的尺寸。 分区的实际大小可能较小或更大。

计算要求:

  • 必须在 Databricks Runtime 16.1 或更高版本上使用计算。 SQL 仓库必须是 Pro,并且必须使用 2024.50。
SELECT * FROM catalog.schema.snowflakeTable WITH ('partition_size_in_mb' 1000)