可以使用 onstat -g shard 命令显示有关分片高速缓存的信息。
cdr define shardCollection collection_1 database_1:josh.customers_1 --type=delete --key=column_2 --strategy=hash --versionCol=column_3 g_shard_server_A g_shard_server_B g_shard_server_C g_shard_server_D
以下示例显示了当 onstat -g shard 命令在 g_shard_server_A 、g_shard_server_B 、g_shard_server_C 或 g_shard_server_D 上运行的输出。
图: 使用哈希算法将数据分布到多个数据库服务器的分片定义的 onstat -g shard 命令的输出。
GBase 8s Database Server Version 8.5 -- On-Line -- Up 00:00:20 -- 162316 Kbytes collection_1 database_1:josh.customers_1 key:column_2 HASH:DELETE SHARD OPTIMIZATION:ENABLED Matching for delete:column_3 g_shard_server_A (65545) mod(ifx_checksum(column_2::LVARCHAR, 0), 4) = 0 g_shard_server_B (65546) mod(ifx_checksum(column_2::LVARCHAR, 0), 4) in (1, -1) g_shard_server_C (65547) mod(ifx_checksum(column_2::LVARCHAR, 0), 4) in (2, -2) g_shard_server_D (65548) mod(ifx_checksum(column_2::LVARCHAR, 0), 4) in (3, -3)
mod(ifx_checksum(col2::LVARCHAR,0),4)=0
cdr define shardCollection collection_2 database_2:john.customers_2 --type=keep --key=state --strategy=expression --versionCol=version_column g_shard_server_F "IN ('AL','MS','GA')" g_shard_server_G "IN ('TX','OK','NM')" g_shard_server_H "IN ('NY','NJ')" g_shard_server_I REMAINDER
以下示例显示了运行在 g_shard_server_F 、g_shard_server_G 、g_shard_server_H 或 g_shard_server_I 上的 onstat -g shard 命令的输出。
图: 使用一个表达式将数据分布到多个数据库服务器的分片定义的 onstat -g shard 命令的输出。
GBase 8s Database Server Version 8.5.U -- On-Line -- Up 00:19:07 -- 162316 Kbytes collection_2 database_2:john.customers_2 key:state EXPRESSION:KEEP SHARD OPTIMIZATION:ENABLED Matching for delete:version_column g_shard_server_F (65564) state IN ('AL','MS','GA') g_shard_server_G (65565) state IN ('TX','OK','NM') g_shard_server_H (65566) state IN ('NY','NJ') g_shard_server_I (65567) not ((state IN ('AL','MS','GA')) or (state IN('TX','OK','NM')) or (state IN ('NY','NJ')))
state in ('AL','MS','GA')
not ((state in ('AL','MS','GA')) or (state in ('TX','OK','NM')) or (state in ('NY','NJ')))
cdr define shardCollection collection_3 database_3:susan.customers_3 -t delete -k bson_value_lvarchar(data,'age') -s expression -v version g_shard_server_J "BETWEEN 0 and 20" g_shard_server_K "BETWEEN 21 and 62" g_shard_server_L "BETWEEN 63 and 100" g_shard_server_M REMAINDER
以下示例显示运行在 shard_server_J 、shard_server_K 、shard_server_L 或 shard_server_M 上的 onstat -g shard 命令的输出。
图: 使用 BSON 分片键和表达式将数据分布到多个数据库服务器的分片定义的 onstat -g shard 的命令的输出。
GBase 8s Database Server Version 8.5 -- On-Line -- Up 01:34:01 -- 354721 Kbytes collection_3 database_3:susan.customers_3 key:bson_value_lvarchar(data,'age') EXPRESSION:DELETE SHARD OPTIMIZATION:ENABLED Matching for delete:version g_shard_server_J (65568) bson_value_lvarchar(data,'age') BETWEEN 0 and 20" g_shard_server_K (65569) bson_value_lvarchar(data,'age') BETWEEN 21 and 62" g_shard_server_L (65570) bson_value_lvarchar(data,'age')BETWEEN 63 and 100" g_shard_server_M (65571) not((bson_value_lvarchar(data,'age') BETWEEN 0 and 20) or (bson_value_lvarchar(data,'age') BETWEEN 21 and 62) or (bson_value_lvarchar (data,'age') BETWEEN 63 and 100))
bson_value_lvarchar(data,'age') BETWEEN 0 and 20
not((bson_value_lvarchar(data,'age') BETWEEN 0 and 20) or (bson_value_lvarchar(data,'age') BETWEEN 21 and 62) or (bson_value_lvarchar(data,'age') BETWEEN 63 and 100))