本文介绍一些Delta中比较重要的参数。
Delta的设置参数分为三类:
- Spark SQL设置,即设置SQL运行时的参数。
- 运行时参数,即可以在Session中动态设置的参数,以
spark.databricks.delta.
前缀开头。 - 非运行时参数,只能够在Spark的配置文件中配置为全局参数,或者建表时在
TBLPROPERTIES
中指定为表参数。表参数的优先级高于全局参数。当设置为全局参数时,配置前缀为spark.databricks.delta.properties.defaults.
,当设置为TBLPROPERTIES
时,前缀为delta.
。
参数 | 描述 |
---|---|
spark.databricks.delta.snapshotPartitions |
默认值为10。
此参数为delta log元数据的partition数量。当delta log特别大时,需要增大此值,反之减小此值的设置。该值的大小对于delta table的解析性能影响较大。 |
spark.databricks.delta.retentionDurationCheck.enabled |
默认值为true。
清理墓碑文件时是否进行安全期检查。
警告 如果您想删除近期合并过的小文件,可以设置此参数为false,来关闭此安全检查,但不建议您关闭此检查,这样可能会删除近期的数据而造成数据读写失败。
|
spark.databricks.delta.schema.autoMerge.enabled |
默认值为false。
Delta有校验写入数据是否符合表定义Schema的功能,用于保证写入数据的正确性。当您数据的Schema发生变更后,需要在写入数据时在option中显示指定 |
spark.databricks.delta.properties.defaults.deletedFileRetentionDuration 或delta.deletedFileRetentionDuration |
默认值为interval 1 week。
Delta墓碑文件的安全期。清空未超过安全期内的墓碑文件将会抛出异常(如果
spark.databricks.delta.retentionDurationCheck.enabled 为true的话)。
说明 此值应当大于等于1个小时。
|
spark.databricks.delta.properties.defaults.logRetentionDuration 或delta.logRetentionDuration |
默认值为interval 30 days。
Delta log文件过期时间。Delta log过期被定义为:
|
spark.sql.sources.parallelPartitionDiscovery.parallelism |
默认值为1000。
此参数为Delta扫描文件时所用的并行度。如果文件数量较少,则减小此值。目前仅使用在Vacuum中。如果设置不当,影响Vacuum扫描文件的效率。
说明 此参数为Spark SQL参数。
|