数据库

创建数据库和数据表时,除了直接指定函数参数进行配置,DolphinDB 还提供了一部分配置文件中的配置项:

数据库

配置参数

解释

enableChunkGranularityConfig=false

DolphinDB 内 chunk 的粒度决定了事务锁的位置。写入一个 chunk 时,系统会对该 chunk 上锁,不允许其他事务写入。

2.00.4之前的版本,chunk 的粒度为数据库级别,即数据库的每个分区(partition)为一个 chunk。此时,不允许并发写入同一个分区的不同表。

2.00.4版本引入了该配置项,默认为 false,表示 chunk 的粒度为表级别,即每个分区(partition)下的每个表为一个 chunk。此时,允许并发写入同一分区的不同表。

设置为 true 时,允许通过 database 的 chunkGranularity 参数指定 chunk 的粒度为数据库级或表级。

enableDropPartitionSchema=false

布尔值,默认为 false,表示删除数据库中指定分区的数据时,是否删除分区数据对应的数据库结构信息中 partitionSchema。

仅在满足以下条件时开启该功能才能生效:

1. 数据库只包含一个表;

2. 单级分区时采用 VALUE 分区,且分区字段为 STRING/SYMBOL;或多级分区的第一级为 VALUE 分区,且分区字段为 STRING/SYMBOL;

3. dropPartition 仅删除第一级分区数据。

newValuePartitionPolicy=skip

对于值分区(或复合分区中的值分区)的数据库,若新增数据不属于已有分区,如何处理。它的取值可以是 add, skip 和 fail。

默认值是 skip,表示如果新增数据中包含分区方案外的数据,系统会保留分区方案中的数据,不保留分区方案外的数据。

如果 newValuePartitionPolicy = add,表示系统会自动划分新的分区,保留分区方案外的数据。

如果 newValuePartitionPolicy = fail,表示如果新增数据中包含分区方案外的数据,系统不会保留任何数据,且抛出异常。

根据大多数场景需求,推荐设置 newValuePartitionPolicy = add。

2.00.7 新版功能: 参数 enableDropPartitionSchema

数据表

配置参数

解释

enableConcurrentDimensionalTableWrite=false

是否允许维度表并发写入、修改、删除。默认值为 false。若为 true,表示允许维度表并发写入、修改、删除。

removeSpecialCharInColumnName=false

是否规范化包含特殊符号的列名,默认值是 false,表示自动产生的数据表的列名允许包含特殊符号,即列名可以以非字母和中文开头,且可以包含下划线之外的符号。如果要跟以前版本兼容,可以将该变量配置为 true。

2.00.1 新版功能: 参数 enableConcurrentDimensionalTableWrite

2.00.2 新版功能: 参数 removeSpecialCharInColumnName