Microsoft Fabric 现在支持 预定义的 Spark 资源配置文件,这是数据工程师根据工作负载需求优化 Spark 配置的简单而强大的方法。 通过这些配置文件,用户可以使用基于属性包的方法快速应用针对常见模式(例如读取密集型、写入密集型或混合工作负荷)的优化最佳做法。
无论是引入 TB 的流媒体数据还是运行高性能分析查询,资源配置文件都提供了快速的性能路径,无需手动调优 Spark。
资源概况的优点
- ✅ 默认性能 – 直接应用经过验证的负载优化的 Spark 设置。
- ✅ 灵活性 - 根据引入和查询模式选择或自定义配置文件。
- ✅ 微调的 Spark 配置 - 避免反复试验调整并减少操作开销。
注释
所有 新的 Fabric 工作区 现在默认设置为 writeHeavy
配置文件,以实现最佳的引入性能。 这包括为大规模 ETL 和流式处理数据工作流定制的默认配置。
可用资源档案
Microsoft Fabric 目前支持以下用户配置文件:
个人资料 | 用例 | 配置属性 |
---|---|---|
readHeavyForSpark |
针对频繁读取的 Spark 工作负荷进行优化 | spark.fabric.resourceProfile = readHeavyForSpark |
readHeavyForPBI |
针对 Delta 表的 Power BI 查询进行了优化 | spark.fabric.resourceProfile = readHeavyForPBI |
writeHeavy |
针对高频率输入和写入进行优化 | spark.fabric.resourceProfile = writeHeavy |
custom |
完全用户定义的配置 | spark.fabric.resourceProfile = custom |
每个配置文件的默认配置值
资源概况 | 配置 |
---|---|
writeHeavy |
{"spark.sql.parquet.vorder.default": "false", "spark.databricks.delta.optimizeWrite.enabled": "false", "spark.databricks.delta.optimizeWrite.binSize": "128", "spark.databricks.delta.optimizeWrite.partitioned.enabled": "true", "spark.databricks.delta.stats.collect": "false"} |
readHeavyForPBI |
{"spark.sql.parquet.vorder.default": "true", "spark.databricks.delta.optimizeWrite.enabled": "true", "spark.databricks.delta.optimizeWrite.binSize": "1g"} |
readHeavyForSpark |
{"spark.databricks.delta.optimizeWrite.enabled": "true", "spark.databricks.delta.optimizeWrite.partitioned.enabled": "true", "spark.databricks.delta.optimizeWrite.binSize": "128"} |
custom (例如, fastIngestProfile ) |
由用户完全定义的设置。 示例:{"spark.sql.shuffle.partitions": "800", "spark.sql.adaptive.enabled": "true", "spark.serializer": "org.apache.spark.serializer.KryoSerializer"} |
小窍门
可以使用一个有意义的名称来命名自定义配置文件,以反映工作负荷模式,例如 fastIngestProfile
或 lowLatencyAnalytics
。
如何配置资源模板
可以使用两种不同的方法在 Microsoft Fabric 中配置资源配置文件:
1. 使用环境设置资源配置集
可以在 环境级别定义默认的 Spark 资源配置文件。 应用后,除非重写,否则所选配置文件将自动用于环境中的所有 Spark 作业。
步骤:
- 导航到 Fabric 工作区。
- 编辑或创建新环境。
- 在 Spark 配置下,设置以下属性
- spark.fabric.resourceProfile = writeHeavy 或 readHeavyForPBI 或 readHeavyForSpark,或者您可以选择自己的配置文件名称,并根据您的需求通过配置进行自定义。
- 可以选择一个已有的配置文件,还可以修改默认值,例如,可以选择 readHeavyForSpark 并将 binsize 从 128 增加到 256。
2. 在运行时配置资源配置文件 spark.conf.set
还可以使用以下命令替代笔记本执行期间的默认资源配置文件或 Spark 作业运行:
spark.conf.set("spark.fabric.resourceProfile", "readHeavyForSpark")
此方法提供执行时的灵活性,可以根据作业逻辑、时间安排或工作负荷类型更改行为,从而为笔记本的不同部分分配不同的配置文件。
注释
如果同时设置了环境和运行时配置,则运行时设置优先。
默认情况下会发生什么情况?
在 Microsoft Fabric 中,所有新建的工作区默认使用 writeHeavy
配置文件。 这可确保:
- 高效处理数据引入管道
- 批处理和流式处理作业的优化吞吐量
- 适用于常见 ETL 工作负载的开箱即用性能更佳
如果工作负荷不同(例如交互式查询、仪表板服务),可以在环境级别更新默认设置,或在执行期间动态重写它们。
⚠️ 重要说明:
在所有新的 Fabric 工作区上,VOrder
默认处于禁用状态 (spark.sql.parquet.vorder.default=false
)。
此默认配置针对 写入密集型数据工程工作负荷进行了优化,可在大规模引入和转换期间实现更高的性能。对于读取优化场景(例如 Power BI 仪表板或交互式 Spark 查询),请考虑切换到
readHeavyforSpark
或readHeavyForPBI
资源配置文件,或者通过启用VOrder
来修改属性,从而提升 Power BI 和数据仓库工作负载的查询性能。