一、基础读写操作
- 命名空间管理
- 创建命名空间:
create_namespace 'ns_ecommerce' - 列出所有命名空间:
list_namespace - 删除命名空间:
drop_namespace 'ns_ecommerce' - 修改命名空间属性:
alter_namespace 'ns_ecommerce', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}
- 创建命名空间:
- 表结构管理
- 创建表(指定列族):
create 'ns_ecommerce:order', 'info', 'detail' - 修改列族(增加版本数):
alter 'ns_ecommerce:order', {NAME => 'info', VERSIONS => 5} - 禁用表:
disable 'ns_ecommerce:order' - 删除表:
drop 'ns_ecommerce:order' - 列出所有表:
list - 查看表结构:
desc 'ns_ecommerce:order'
- 创建表(指定列族):
- 数据读写
- 插入数据:
put 'ns_ecommerce:order', 'order_001', 'info:user_id', 'u_1001' - 全表扫描:
scan 'ns_ecommerce:order' - 读取单行数据:
get 'ns_ecommerce:order', 'order_001' - 删除单元格数据:
delete 'ns_ecommerce:order', 'order_001', 'info:user_id' - 删除整行数据:
deleteall 'ns_ecommerce:order', 'order_001'
- 插入数据:
二、复杂读写操作
- 列族属性配置
- 修改列族 TTL(生存时间,单位秒):
alter 'ns_ecommerce:order', {NAME => 'detail', TTL => 86400} - 修改列族压缩格式:
alter 'ns_ecommerce:order', {NAME => 'detail', COMPRESSION => 'SNAPPY'}
- 修改列族 TTL(生存时间,单位秒):
- 条件扫描
- 指定行范围扫描:
scan 'ns_ecommerce:order', {STARTROW => 'order_001', STOPROW => 'order_010'} - 指定列族 / 列扫描:
scan 'ns_ecommerce:order', {COLUMNS => ['info:user_id', 'detail:amount']} - 限制扫描行数:
scan 'ns_ecommerce:order', {LIMIT => 10} - 指定版本数扫描:
scan 'ns_ecommerce:order', {VERSIONS => 3}
- 指定行范围扫描:
- 版本数据读取
- 获取单行多版本数据:
get 'ns_ecommerce:order', 'order_001', {VERSIONS => 5}
- 获取单行多版本数据:
三、高级操作
- 数据追加与统计
- 追加数据:
append 'ns_ecommerce:order', 'order_001', 'detail:remark', 'gift included' - 统计表行数:
count 'ns_ecommerce:order'
- 追加数据:
- 集群与命名空间信息
- 查看集群状态:
status - 列出命名空间下所有表:
list_namespace_tables 'ns_ecommerce' - 描述命名空间:
describe_namespace 'ns_ecommerce'
- 查看集群状态:
- 快照与恢复
- 创建表快照:
snapshot 'ns_ecommerce:order', 'snap_order_2024' - 恢复快照:
restore_snapshot 'snap_order_2024' - 克隆快照为新表:
clone_snapshot 'snap_order_2024', 'ns_ecommerce:order_bak'
- 创建表快照:
- Region 管理
- 拆分 Region:
split 'ns_ecommerce:order', 'order_050' - 合并两个 Region:
merge_region 'region_id1', 'region_id2' - 查看表的 Region 拆分点:
get_splits 'ns_ecommerce:order'
- 拆分 Region:
四、过滤器应用
- 值过滤(匹配包含指定字符串的值):
scan 'ns_ecommerce:order', {FILTER => "ValueFilter(=, 'substring:100')"} - 列名前缀过滤:
scan 'ns_ecommerce:order', {FILTER => "ColumnPrefixFilter('user')"} - 行键前缀过滤:
scan 'ns_ecommerce:order', {FILTER => "PrefixFilter('order_00')"} - 单列值过滤(筛选指定列值等于某值的行):
scan 'ns_ecommerce:order', {FILTER => "SingleColumnValueFilter('info', 'user_id', =, 'binary:u_1001')"}