返回首页

gbase数据、南大通用产品文档:GBase8sEILSEQ_COMPAT_MODE 配置参数

更新日期:2024年09月11日

使用 EILSEQ_COMPAT_MODE 配置参数来控制 GBase 8s 是否检查客户端应用程序插入的字
符数据,该数据是否包含指向队列的代码或当前数据库语言环境不识别。
onconfig.std 值
EILSEQ_COMPAT_MODE 0

0 = GBase 8s 以当前的语言环境验证来到的字符序列是否有效,如果有无效字符则返回错
误 -202。
1 = GBase 8s 不验证来到的字符序列是否有效。
生效

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 76 -

编辑 onconfig 文件并重启数据库服务器之后。
用法
如果设置 EILSEQ_COMPAT_MODE 配置参数为 0,则仅可将有效的字节序列插入数据库。
EILSEQ_COMPAT_MODE 配置参数在这些情况下防止 202 错误:
l 当从数据库检索数据时。
l 当无效字符位于字符串尾部且该字符是部分字符时。

语法格式
CREATE INDEX index_name ON [database_name.]table_name(column_name)
[key_dc_size = dc_value][key_block_size = size_value] USING HASH [GLOBAL];

index_name:索引名。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 664

GLOBAL:默认创建GLOBAL 的哈希索引。创建全局哈希索引,全局创建索
引针对整列,
数据按页存储,
每个数据块占用多少个页可以在创建索引时指定。


key_dc_size = dc_value:当使用GLOBAL 关键字时,可以配合使用它,这个参
数表示指定创建分段Hash Index。分段hash 是在用户指定的DC 窗口内创建
Hash Index,每个分段hash index 内部沿用了原有global hash 的逻辑和存储结
构。由于分段Hash Index 的具有数据局部性,因此可以与数据一同进行空间的
分段回收。
表 5-2 dc_value 值
最小值
最大值
备注
0
2147483646
默认为0(即在整列上创建HASH)

key_block_size = size_value:当使用GLOBAL 关键字时,可以配合使用它,这
个参数表示指定每个数据块的大小。
表 5-3 size_value 值
最小值
最大值
备注
4096
32768
size_value 必须是4096 的整数倍
一般来说,二进制类型的列不适合使用HASH INDEX,或者该列数据量较大,但
DISTINCT 值较少时,也不适合使用HASH INDEX。
同一表上不能创建相同名称的哈希索引,
同一表的同一列上能且只能创建一个哈希
索引,并且除去BLOB 和TEXT 数据类型外,任何GBase UP 支持的数据类型的列
上都可以创建哈希索引。
创建索引时,
只能指定单列,
不能指定多列创建联合索引。

示例
示例1:创建GLOBAL 哈希索引。
gbase> CREATE INDEX idx2 on t1(b) USING HASH GLOBAL;
Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0
示例2:创建GLOBAL 哈希索引,设置key_block_size 值为16384。
gbase> CREATE INDEX idx3 on t1(b) key_block_size=16384 USING HASH GLOBAL;
Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0
示例3:创建GLOBAL 哈希索引,设置key_dc_size 值为50。
gbase> CREATE INDEX idx4 on t1(b) key_dc_size=50 USING HASH GLOBAL;
Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0
语法格式(只能用于Hive 表):

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 665
CREATE INDEX index_name ON TABLE base_table_name (col_name, ...)
AS ‘index.handler.class.name’
[WITH DEFERRED REBUILD]
[IDXPROPERTIES (property_name=property_value, ...)]
[IN TABLE index_table_name]
[PARTITION BY (index_table_col_name, …)]
[
[ ROW FORMAT ...] STORED AS ...
| STORED BY ...
]
[LOCATION hdfs_path]
[TBLPROPERTIES (...)]
[COMMENT "index comment"];

index_name:索引名。

base_table_name:需要创建索引的表名

col_name:需要创建索引的列名

index.handler.class.name:
索引处理器,
也就是一个实现了索引接口的JAVA 类,
也可以采用第三方的实现

WITH DEFERRED REBUILD:表明创建一个空索引,需要执行 alter index 指
令来创建索引数据

IDXPROPERTIES:索引的自定义属性,比如创建人,创建时间等

index_table_name:保存索引数据的表名,后续的partition by,ROW FOWMAT
等属性,参考 create table 中的设置

hdfs_path:索引数据存储在HDFS 中的路径

TBLPROPERTIES:表的自定义属性,比如创建人,创建时间等

index comment:索引的注释信息
示例4:在表 src 上创建索引

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 666
gbase> create index src_index_1
-> on table src(i)
-> as 'compact'
-> WITH DEFERRED REBUILD
-> idxproperties('creator' = 'yuwei','date' = '2016-03-17')
-> in table index_table_1
-> ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
-> STORED AS TEXTFILE
-> location '/tmp/gbase8up'
-> tblproperties ('creator' = 'yuwei', 'date' = '2016-03-17')
-> comment 'index_table';
Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0

参数说明:设置触发ANALYZE 操作的阈值。当表上被删除、插入或更新的记录数超
过设定的阈值时才会对这个表执行ANALYZE 操作。
该参数属于SIGHUP 类型参数,
请参考表GUC 参数设置方式中对应设置方法进行设置。
取值范围:整型,最小值为0,最大值为2147483647。
默认值:50

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1316