本文档介绍了系统配置参数中 数据表类别的相关参数。
注意!
为确保系统稳定与安全,请务必谨慎手动修改相关参数。
当 CREATE TABLE
命令未显式指定访问方式时,设置默认的表访问方式。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
enum | heap | heap / ao_row / ao_column / mars2 / mars3 | master;session |
使用不包含 DISTRIBUTED BY
子句的 CREATE TABLE
或 CREATE TABLE AS
创建 HEAP 表时,控制表的创建。
CREATE TABLE
,如果此参数值为 off
(缺省值),并且创建表命令不包含 DISTRIBUTED BY
子句,YMatrix 数据库将根据以下命令选择表分布键:LIKE
或 INHERITS
子句,则 YMatrix 将从源表或父表复制分布键。PRIMARY KEY
或 UNIQUE
约束,则 YMatrix 会选择所有键列的最大子集作为分布键。LIKE
或 INHERITS
子句,则 YMatrix 选择第一个合适的列作为分布键。(具有几何或用户定义数据类型的列不符合 YMatrix 分布键列的条件。)on
,则当未指定 DISTRIBUTED BY
子句时,YMatrix 数据库将遵循这些规则来创建表:PRIMARY KEY
或 UNIQUE
列,则表的分布是随机的(DISTRIBUTED RANDOMLY
)。即使表创建命令包含 LIKE
或 INHERITS
子句,表分发也是随机的。PRIMARY KEY
或 UNIQUE
列,则还必须指定 DISTRIBUTED BY
子句。如果未将 DISTRIBUTED BY
子句指定为表创建命令的一部分,则该命令将失败。CREATE TABLE AS
命令:off
,则根据该命令确定表分发策略。on
,则表分发策略是随机的。数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | master;system;reload |
使用 CREATE TABLE 命令创建表时,设置以下表存储选项的默认值。
ALTER DATABASE mytest SET gp_default_storage_options = 'orientation=column, compresstype=rle_type'
。使用面向列的表和 RLE 压缩在 mytest 数据库中创建追加优化的表。你需要在 WITH
子句中仅指定 appendoptimized=TRUE
。gpconfig -c 'gp_default_storage_options' -v 'appendoptimized=true, orientation=column'
。gpconfig -s 'gp_default_storage_options'
。默认值 | 取值范围 | 设置分类 |
---|---|---|
appendoptimized=FALSE blocksize=32768 checksum=TRUE compresstype=none compresslevel=0 orientation=ROW |
appendoptimized= TRUE / FALSE blocksize= integer between 8192 and 2097152 checksum= TRUE / FALSE compresstype= ZLIB / ZSTD / QUICKLZ2 / RLE_TYPE / NONE compresslevel= integer between 0 and 19 orientation= ROW / COLUMN |
使用 gpconfig 工具指定:master;session;reload 建表时指定:table |
在 VACUUM
命令期间启用压缩 Segment 文件。
VACUUM
仅将 Segment 文件截断为 EOF
值,当前行为也是如此。数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | on | master;session;reload;superuser |
指定在没有 FULL
选项(惰性 VACUUM
)的情况下运行 VACUUM
时隐藏行与触发压缩 Segment 文件的总行的阈值比率(百分比)。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 10 | 0 ~ 100 | master;session;reload |
指定在非成熟文件系统中,对 AO 表进行安全写入操作的最小尺寸。
0
的字节数时,追加优化的写入器将填充数据添加到该数字,以防止由于文件系统错误导致的数据损坏。32768
。数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 0 | 0 ~ INT_MAX | master;system;restart |
压缩阈值。用于控制单表多少元组(Tuple)进行一次压缩,是同一个单元中压缩的 Tuple 数上限。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 1000 | 1 ~ 10000 | table |
用于控制所有的 MARS2 表,L0 达到多少个 Run 触发合并。
level0_merge_threshold
。数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 32 | 10 ~ 2048 | master;session/system;reload |
用于控制单表 L0 达到多少个 Run 触发合并。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 32 | 1 ~ 2048 | table |
控制单表 L0 -> L1 升级的大小(MB),当 L0 发生合并后结果 Run 超过这个大小将升级到 L1。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 25 | 1 ~ 10000 | table |
控制单表 L1 -> L2 升级的大小(MB),当 L1 发生合并后结果 Run 超过这个大小将升级到 L2。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 1000 | 1 ~ 10000 | table |
控制单个插入的排序内存大小(KB),如果插入目标表是分区表,它们将共享这个大小。
2097152KB
,即 2GB。取值范围为 128KB ~ 2147483647KB
(即 2048GB)。数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 2097152 | 128 ~ 2147483647 | master;session/system;reload |
控制单个分区表至少分配多少排序内存。
16384KB
,即 16MB。取值范围为 128KB ~ 2147483647KB
(即 2048GB)。数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 16384 | 128 ~ 2147483647 | master;session/system;reload |
注意!
此部分参数需在建表时使用WITH
子句配置,适用于单表,且一旦配置便无法修改。
压缩阈值。用于控制单表多少元组(Tuple)进行一次压缩,是同一个单元中压缩的 Tuple 数上限。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 1200 | 1 ~ 100000 | table |
指定 Level 尺寸的放大系数。
rowstore_size * (level_size_amplifier ^ level)
。其值越大,读速越慢,写速越快。数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 8 | 1 ~ 1000 | table |
指定 MARS3 内部的数据加载模式。
normal
表示正常模式,新写入数据先写到 L0 层的行存 Run 中,积累到 rowstore_size
之后,落至 L1 层的列存 Run,相对于 bulk
模式会多一次 I/O,列存转换由同步变成了异步,但适用于 I/O 能力充足且对延迟敏感的高频次小批量写入场景。bluk
表示批量加载模式,适用于低频大批量写入场景,直接写至 L1 层的列存 Run,相对于 normal
模式,减少了一次 I/O,列存转换由异步变成了同步,适用于 I/O 能力不足且对延迟不敏感的低频大批量的数据写入。数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
enum | normal | normal / bluk | table |
用于控制 L0 Run 何时切换。当数据大小超过该参数值(以 MB 为单位),将会切换下一个 Run。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 64 | 8 ~ 1024 | table |
开启/关闭对象存储的文件系统缓存。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | master;session;reload |
设置多久更新一次会话的访问授权。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 0 | 0 ~ INT_MAX | master;system;reload |
数据库后台任务定时探测满足数据转储要求与否的时间间隔(单位 s)。
mxstop -u
重启加载配置才能生效数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 3600 | 1 ~ INT_MAX | master;system;reload |
开启/关闭对象存储的内存缓存。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | master;session;reload |
开启/关闭自动转储功能。
mxstop -u
重启加载配置才能生效数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | master;system;reload |
启用或禁用在 Segment 主机上执行操作系统命令或脚本的外部表的使用(CREATE EXTERNAL TABLE EXECUTE
语法)。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | on | master;system;restart |
从外部表读取数据时启用过滤器下推。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | on | master;session;reload |
设置在外部表操作期间扫描外部表数据的 Segment 数量,目的是使系统不要超载扫描数据并从其他并发操作中夺走资源。
gpfdist://
协议访问外部表数据的外部表。数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 64 | 1 ~ INT_MAX | master;session;reload |
假设此参数值为 n
,YMatrix 数据库在使用 COPY
命令或从外部表导入数据时,如果处理的前 n
行包含格式错误,则停止处理输入行。
n
行中处理有效行,则 YMatrix 数据库继续处理输入行。0
将禁用此限制。COPY
命令或外部表定义指定 SEGMENT REJECT LIMIT
子句,以限制被拒绝的行数。INT_MAX
是可以作为整数存储在系统中的最大值。数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 1000 | 0 ~ INT_MAX | master;session;reload |
对于 COPY
和外部表 SELECT
上的单行错误处理,设置在 SEGMENT REJECT LIMIT n PERCENT
开始计算之前处理的行数。
数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 300 | 0 ~ INT_MAX | master;session;reload |
丢弃来自 gpfdist v1 协议的数据包。
数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | off | master;session;reload |
当 SQL 查询从外部表读取时,参数值指定当数据停止从外部表返回时,YMatrix 数据库在取消查询之前等待的时间(以秒为单位)。
0
,指定没有超时。YMatrix 数据库不会取消查询。gpfdist
的查询运行很长时间然后返回错误间歇性网络连接问题
,则可以为 readable_external_table_timeout
设定值。 如果 gpfdist
在指定的时间内没有返回任何数据,YMatrix 数据库将取消该查询。数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 0 | 0 ~ INT_MAX | master;system;reload |
YMatrix 数据库用于网络通信的缓冲区大小(KB),例如 gpfdist
实用程序和外部 Web 表(使用 HTTP)。
32KB ~ 131072KB
(即 128MB)。数据类型 | 默认值 | 取值范围 | 设置分类 |
---|---|---|---|
int | 64 | 32 ~ 131072 | segments;session;reload |
使用 gpfdists
协议定义 YMatrix 数据库外部表以使用 SSL 安全性时,此参数控制是否启用 SSL 证书身份验证。
on
,当 YMatrix 数据库与 gpfdist
实用程序通信以从外部数据源读取数据或将数据写入外部数据源时,将启用 SSL 身份验证。off
将禁用 SSL 证书身份验证。忽略这些 SSL 异常:gpfdist
使用的自签名 SSL 证书。gpfdist
的主机名不匹配。off
以在测试 YMatrix 数据库外部表与提供外部数据的 gpfdist
实用程序之间的通信时禁用身份验证。gpfdists
SSL 证书来禁用 SSL 证书身份验证会暴露安全风险。数据类型 | 默认值 | 设置分类 |
---|---|---|
boolean | on | master;session;reload |