【ClickHouse】0:clickhouse学习4之表相关操作
Clickhouse对表操作分为四大类:增删查改(INSERT,DROP,SELECT,ALTER)。
增,删,查比较简单,改最复杂。那具体有哪些改的操作呢?如下清单:
ALTER TABLEALTER UPDATEALTER DELETEALTER COLUMNALTER ADD COLUMNALTER DROP COLUMNALTER MODIFY COLUMNALTER COMMENT COLUMNALTER CLEAR COLUMNALTER RENAME COLUMN
ALTER INDEXALTER ORDER BYALTER SAMPLE BYALTER ADD INDEXALTER DROP INDEXALTER MATERIALIZE INDEXALTER CLEAR INDEX
ALTER CONSTRAINTALTER ADD CONSTRAINTALTER DROP CONSTRAINT
ALTER TTLALTER MATERIALIZE TTLALTER SETTINGSALTER MOVE PARTITIONALTER FETCH PARTITIONALTER FREEZE PARTITION
ALTER VIEWALTER VIEW REFRESHALTER VIEW MODIFY QUERY
下面以MergeTree引擎表为例,对应列表操作:
一: 建表并插入测试数据
# 创建表
#方式1
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
...
) ENGINE = engine
#方式2
CREATE TABLE [IF NOT EXISTS] [db.]table_name AS [db2.]name2 [ENGINE = engine]
#方式3
CREATE TABLE [IF NOT EXISTS] [db.]table_name ENGINE = engine AS SELECT ...
# 创建测试表
CREATE TABLE table_test1 (
UserID UInt32,
UserAccount String,
CreateDate Date,
CreateDatetime Datetime,
Comment Nullable(String)
) ENGINE = MergeTree()
ORDER BY (UserID, CreateDate)
PRIMARY KEY (UserID)
SETTINGS index_granularity=8192;
导入数据
# 插入表
#方式1-交互式
INSERT INTO [db.]table [(c1, c2, c3)] VALUES (v11, v12, v13), ... INSERT INTO [db.]table [(c1, c2, c3)] SELECT ... #方式2-批量
cat file.csv | clickhouse-client --database=test --query="INSERT INTO test FORMAT CSV" #方式3-http客户端
echo -ne '10\n11\n12\n' | POST 'http://localhost:8123/?query=INSERT INTO t FORMAT TabSeparated'
导出数据
方式一:交互式
select * from tableName into outfile 'path/file'
方式二:非交互式
clickhouse-client --database bdName -u default --password password --query='select * from tableName' > abc
方式二:http客户端
echo 'select 1 FORMAT TabSeparated' | curl "http://user:password@localhost:8123/" -d @- > file
# 插入数据
INSERT INTO table_test1(UserID,UserAccount,CreateDate,CreateDatetime,Comment) VALUES (100001,'zhangsan',toDate(NOW()),NOW(),'Comment');
INSERT INTO table_test1(UserID,UserAccount,CreateDate,CreateDatetime,Comment) VALUES (100002,'lisi',toDate(NOW()),NOW(),'Comment');
INSERT INTO table_test1(UserID,UserAccount,CreateDate,CreateDatetime,Comment) VALUES (100003,'wangwu',toDate(NOW()),NOW(),'Comment');
INSERT INTO table_test1(UserID,UserAccount,CreateDate,CreateDatetime,Comment) VALUES (100004,'zhaoliu',toDate(NOW()),NOW(),'Comment');
INSERT INTO table_test1(UserID,UserAccount,CreateDate,CreateDatetime,Comment) VALUES (100001,'zhangsan2',toDate(NOW()),NOW(),'Comment');
INSERT INTO table_test1(UserID,UserAccount,CreateDate,CreateDatetime,Comment) VALUES (100002,'lisi2',toDate(NOW()),NOW(),'');
INSERT INTO table_test1(UserID,UserAccount,CreateDate,CreateDatetime) VALUES (100003,'wangwu2',toDate(NOW()),NOW());
# 查询表
SELECT [DISTINCT] expr_list
[FROM [db.]table | (subquery) | table_function] [FINAL]
[SAMPLE sample_coeff]
[ARRAY JOIN ...]
[GLOBAL] ANY|ALL INNER|LEFT JOIN (subquery)|table USING columns_list
[PREWHERE expr]
[WHERE expr]
[GROUP BY expr_list] [WITH TOTALS]
[HAVING expr]
[ORDER BY expr_list]
[LIMIT [n, ]m]
[UNION ALL ...]
[INTO OUTFILE filename]
[FORMAT format]
[LIMIT n BY columns]
# 查看数据
centf8118.sharding1.db :) SELECT * FROM table_test1; SELECT *
FROM table_test1 ┌─UserID─┬─UserAccount─┬─CreateDate─┬──────CreateDatetime─┬─Comment─┐
│ 100003 │ wangwu2 │ 2020-09-02 │ 2020-09-02 16:45:57 │ ᴺᵁᴸᴸ │
└────────┴─────────────┴────────────┴─────────────────────┴─────────┘
┌─UserID─┬─UserAccount─┬─CreateDate─┬──────CreateDatetime─┬─Comment─┐
│ 100001 │ zhangsan │ 2020-09-02 │ 2020-09-02 16:45:55 │ Comment │
│ 100001 │ zhangsan2 │ 2020-09-02 │ 2020-09-02 16:45:56 │ Comment │
│ 100002 │ lisi │ 2020-09-02 │ 2020-09-02 16:45:55 │ Comment │
│ 100002 │ lisi2 │ 2020-09-02 │ 2020-09-02 16:45:56 │ │
│ 100003 │ wangwu │ 2020-09-02 │ 2020-09-02 16:45:55 │ Comment │
│ 100004 │ zhaoliu │ 2020-09-02 │ 2020-09-02 16:45:56 │ Comment │
└────────┴─────────────┴────────────┴─────────────────────┴─────────┘ 7 rows in set. Elapsed: 0.005 sec.
二:更新表数据
ALTER TABLE table_test1 UPDATE UserAccount = 'NEW ACCOUNT' WHERE UserID = 100001 AND UserAccount = 'zhangsan';

centf8118.sharding1.db :) ALTER TABLE table_test1 UPDATE UserAccount = 'NEW ACCOUNT' WHERE UserID = 100001 AND UserAccount = 'zhangsan'; ALTER TABLE table_test1
UPDATE UserAccount = 'NEW ACCOUNT' WHERE (UserID = 100001) AND (UserAccount = 'zhangsan') Ok. 0 rows in set. Elapsed: 0.004 sec. centf8118.sharding1.db :) SELECT * FROM table_test1; SELECT *
FROM table_test1 ┌─UserID─┬─UserAccount─┬─CreateDate─┬──────CreateDatetime─┬─Comment─┐
│ 100003 │ wangwu2 │ 2020-09-02 │ 2020-09-02 16:45:57 │ ᴺᵁᴸᴸ │
└────────┴─────────────┴────────────┴─────────────────────┴─────────┘
┌─UserID─┬─UserAccount─┬─CreateDate─┬──────CreateDatetime─┬─Comment─┐
│ 100001 │ NEW ACCOUNT │ 2020-09-02 │ 2020-09-02 16:45:55 │ Comment │
│ 100001 │ zhangsan2 │ 2020-09-02 │ 2020-09-02 16:45:56 │ Comment │
│ 100002 │ lisi │ 2020-09-02 │ 2020-09-02 16:45:55 │ Comment │
│ 100002 │ lisi2 │ 2020-09-02 │ 2020-09-02 16:45:56 │ │
│ 100003 │ wangwu │ 2020-09-02 │ 2020-09-02 16:45:55 │ Comment │
│ 100004 │ zhaoliu │ 2020-09-02 │ 2020-09-02 16:45:56 │ Comment │
└────────┴─────────────┴────────────┴─────────────────────┴─────────┘ 7 rows in set. Elapsed: 0.005 sec.
三:删除表数据
ALTER TABLE table_test1 DELETE WHERE UserID = 100001;

centf8118.sharding1.db :) ALTER TABLE table_test1 DELETE WHERE UserID = 100001; ALTER TABLE table_test1
DELETE WHERE UserID = 100001 Ok. 0 rows in set. Elapsed: 0.003 sec. centf8118.sharding1.db :) SELECT * FROM table_test1; SELECT *
FROM table_test1 ┌─UserID─┬─UserAccount─┬─CreateDate─┬──────CreateDatetime─┬─Comment─┐
│ 100003 │ wangwu2 │ 2020-09-02 │ 2020-09-02 16:45:57 │ ᴺᵁᴸᴸ │
└────────┴─────────────┴────────────┴─────────────────────┴─────────┘
┌─UserID─┬─UserAccount─┬─CreateDate─┬──────CreateDatetime─┬─Comment─┐
│ 100002 │ lisi │ 2020-09-02 │ 2020-09-02 16:45:55 │ Comment │
│ 100002 │ lisi2 │ 2020-09-02 │ 2020-09-02 16:45:56 │ │
│ 100003 │ wangwu │ 2020-09-02 │ 2020-09-02 16:45:55 │ Comment │
│ 100004 │ zhaoliu │ 2020-09-02 │ 2020-09-02 16:45:56 │ Comment │
└────────┴─────────────┴────────────┴─────────────────────┴─────────┘ 5 rows in set. Elapsed: 0.005 sec.
四:表字段修改
ALTER查询仅支持* MergeTree族表引擎,以及Merge表引擎和Distributed表引擎。
ALTER操作阻塞所有对表的其他操作。
4.1: 新增表字段
ALTER TABLE table_test1 ADD COLUMN NewAddCol String;

centf8118.sharding1.db :) ALTER TABLE table_test1 ADD COLUMN NewAddCol String; ALTER TABLE table_test1
ADD COLUMN `NewAddCol` String Ok. 0 rows in set. Elapsed: 0.004 sec. centf8118.sharding1.db :) SELECT * FROM table_test1; SELECT *
FROM table_test1 ┌─UserID─┬─UserAccount─┬─CreateDate─┬──────CreateDatetime─┬─Comment─┬─NewAddCol─┐
│ 100003 │ wangwu2 │ 2020-09-02 │ 2020-09-02 16:45:57 │ ᴺᵁᴸᴸ │ │
└────────┴─────────────┴────────────┴─────────────────────┴─────────┴───────────┘
┌─UserID─┬─UserAccount─┬─CreateDate─┬──────CreateDatetime─┬─Comment─┬─NewAddCol─┐
│ 100002 │ lisi │ 2020-09-02 │ 2020-09-02 16:45:55 │ Comment │ │
│ 100002 │ lisi2 │ 2020-09-02 │ 2020-09-02 16:45:56 │ │ │
│ 100003 │ wangwu │ 2020-09-02 │ 2020-09-02 16:45:55 │ Comment │ │
│ 100004 │ zhaoliu │ 2020-09-02 │ 2020-09-02 16:45:56 │ Comment │ │
└────────┴─────────────┴────────────┴─────────────────────┴─────────┴───────────┘ 5 rows in set. Elapsed: 0.004 sec.
4.2: 删除表字段
ALTER TABLE table_test1 DROP COLUMN NewAddCol;

centf8118.sharding1.db :) ALTER TABLE table_test1 DROP COLUMN NewAddCol; ALTER TABLE table_test1
DROP COLUMN NewAddCol Ok. 0 rows in set. Elapsed: 0.008 sec. centf8118.sharding1.db :) SELECT * FROM table_test1; SELECT *
FROM table_test1 ┌─UserID─┬─UserAccount─┬─CreateDate─┬──────CreateDatetime─┬─Comment─┐
│ 100003 │ wangwu2 │ 2020-09-02 │ 2020-09-02 16:45:57 │ ᴺᵁᴸᴸ │
└────────┴─────────────┴────────────┴─────────────────────┴─────────┘
┌─UserID─┬─UserAccount─┬─CreateDate─┬──────CreateDatetime─┬─Comment─┐
│ 100002 │ lisi │ 2020-09-02 │ 2020-09-02 16:45:55 │ Comment │
│ 100002 │ lisi2 │ 2020-09-02 │ 2020-09-02 16:45:56 │ │
│ 100003 │ wangwu │ 2020-09-02 │ 2020-09-02 16:45:55 │ Comment │
│ 100004 │ zhaoliu │ 2020-09-02 │ 2020-09-02 16:45:56 │ Comment │
└────────┴─────────────┴────────────┴─────────────────────┴─────────┘ 5 rows in set. Elapsed: 0.004 sec.
4.3: 修改表字段类型或默认值
ALTER TABLE table_test1 MODIFY COLUMN UserID String;
ALTER TABLE table_test1 MODIFY COLUMN Comment String DEFAULT ('default');
这里给comment设置默认值的时候会失败,报错信息:DB::Exception: Cannot convert NULL value to non-Nullable type
1、空表,Nullable与非空类型可以互转;
2、Nullable字段,如果记录不带有Null值,可以从Nullable转成非空类型;
3、含有null值的字段不允许转成非空类型;
4、Nullable字段不允许用于order by;
没注意到原来列是允许为null的,用下面的调整默认值就可以了:
ALTER TABLE table_test1 MODIFY COLUMN Comment Nullable(String) DEFAULT ('default');
如果是修改key列,也会报错:Code: 524. DB::Exception: Received from localhost:9000. DB::Exception: ALTER of key column UserID from type UInt32 to type String must be metadata-only.
只能在metadata目录中修改对应表名的.sql文件:
[root@centf8118 db_test]# pwd
/data/clickhouse/metadata/db_test
[root@centf8118 db_test]# ll
total 8
-rw-r----- 1 clickhouse clickhouse 296 Sep 2 17:12 table_test1.sql
-rw-r----- 1 clickhouse clickhouse 284 Sep 2 18:01 table_test2.sql
[root@centf8118 db_test]# cat table_test2.sql
ATTACH TABLE table_test2
(
`UserID` String,
`UserAccount` String,
`CreateDate` Date,
`CreateDatetime` DateTime,
`Comment` Nullable(String) DEFAULT 'default2'
)
ENGINE = MergeTree()
PRIMARY KEY UserID
ORDER BY (UserID, CreateDate)
SETTINGS index_granularity = 8192
再登录数据库,查看:
centf8118.sharding1.db :) show create table table_test2; SHOW CREATE TABLE table_test2 ┌─statement──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ CREATE TABLE db_test.table_test2
(
`UserID` String,
`UserAccount` String,
`CreateDate` Date,
`CreateDatetime` DateTime,
`Comment` Nullable(String) DEFAULT 'default2'
)
ENGINE = MergeTree()
PRIMARY KEY UserID
ORDER BY (UserID, CreateDate)
SETTINGS index_granularity = 8192 │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 1 rows in set. Elapsed: 0.003 sec.
4.4: 修改表字段描述
ALTER TABLE table_test1 COMMENT COLUMN Comment '字段描述';

centf8118.sharding1.db :) ALTER TABLE table_test1 COMMENT COLUMN Comment '字段描述'; ALTER TABLE table_test1
COMMENT COLUMN Comment '字段描述' Ok. 0 rows in set. Elapsed: 0.004 sec. centf8118.sharding1.db :) SELECT * FROM table_test1; SELECT *
FROM table_test1 ┌─UserID─┬─UserAccount─┬─CreateDate─┬──────CreateDatetime─┬─Comment─┐
│ 100003 │ wangwu2 │ 2020-09-02 │ 2020-09-02 16:45:57 │ ᴺᵁᴸᴸ │
└────────┴─────────────┴────────────┴─────────────────────┴─────────┘
┌─UserID─┬─UserAccount─┬─CreateDate─┬──────CreateDatetime─┬─Comment─┐
│ 100002 │ lisi │ 2020-09-02 │ 2020-09-02 16:45:55 │ Comment │
│ 100002 │ lisi2 │ 2020-09-02 │ 2020-09-02 16:45:56 │ │
│ 100003 │ wangwu │ 2020-09-02 │ 2020-09-02 16:45:55 │ Comment │
│ 100004 │ zhaoliu │ 2020-09-02 │ 2020-09-02 16:45:56 │ Comment │
└────────┴─────────────┴────────────┴─────────────────────┴─────────┘ 5 rows in set. Elapsed: 0.004 sec. centf8118.sharding1.db :) show create table table_test1; SHOW CREATE TABLE table_test1 ┌─statement──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ CREATE TABLE db_test.table_test1
(
`UserID` UInt32,
`UserAccount` String,
`CreateDate` Date,
`CreateDatetime` DateTime,
`Comment` Nullable(String) COMMENT '字段描述'
)
ENGINE = MergeTree()
PRIMARY KEY UserID
ORDER BY (UserID, CreateDate)
SETTINGS index_granularity = 8192 │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 1 rows in set. Elapsed: 0.003 sec.
4.5: 重置指定分区中列的所有数据(这里没做分区,先略过)
4.6: 重命名列
明日继续
ALTER COLUMNALTER ADD COLUMNALTER DROP COLUMNALTER MODIFY COLUMNALTER COMMENT COLUMNALTER CLEAR COLUMNALTER RENAME COLUMN
ALTER INDEXALTER ORDER BYALTER SAMPLE BYALTER ADD INDEXALTER DROP INDEXALTER MATERIALIZE INDEXALTER CLEAR INDEX
ALTER CONSTRAINTALTER ADD CONSTRAINTALTER DROP CONSTRAINT
ALTER TTLALTER MATERIALIZE TTLALTER SETTINGSALTER MOVE PARTITIONALTER FETCH PARTITIONALTER FREEZE PARTITION
#添加列
ALTER TABLE [db].name [ON CLUSTER cluster] ADD COLUMN [IF NOT EXISTS] name [type] [default_expr] [AFTER name_after]
#删除列
ALTER TABLE [db].name [ON CLUSTER cluster] DROP COLUMN [IF EXISTS] name
#重置指定分区中列的所有数据
ALTER TABLE [db].name [ON CLUSTER cluster] CLEAR COLUMN [IF EXISTS] name IN PARTITION partition_name
#添加列注解
ALTER TABLE [db].name [ON CLUSTER cluster] COMMENT COLUMN [IF EXISTS] name 'comment'
#修改列类型或者列的默认值
ALTER TABLE [db].name [ON CLUSTER cluster] MODIFY COLUMN [IF EXISTS] name [type] [default_expr]
#添加索引
ALTER TABLE [db].name ADD INDEX name expression TYPE type GRANULARITY value AFTER name [AFTER name2]
#删除索引
ALTER TABLE [db].name DROP INDEX name
#分离分区
ALTER TABLE table_name DETACH PARTITION partition_expr
#删除分区
ALTER TABLE table_name DROP PARTITION partition_expr
#添加被分离的分区
ALTER TABLE table_name ATTACH PARTITION|PART partition_expr
#复制table1中的分区数据到table2
ALTER TABLE table2 REPLACE PARTITION partition_expr FROM table1
#重置列值为默认值,默认值为创建表时指定
ALTER TABLE table_name CLEAR COLUMN column_name IN PARTITION partition_expr
#创建指定分区或者所有分区的备份
ALTER TABLE table_name FREEZE [PARTITION partition_expr]
#从其他分片中复制分区数据
ALTER TABLE table_name FETCH PARTITION partition_expr FROM 'path-in-zookeeper'
【ClickHouse】0:clickhouse学习4之表相关操作的更多相关文章
- MYSQL初级学习笔记二:数据表相关操作及MySQL存储引擎!(视频序号:初级_5,7-22|6)
知识点三:数据表相关操作(5,7-22) --------------------------------整型--------------------------------- --测试整型 CREA ...
- MySQL数据库(二)--库相关操作、表相关操作(1)、存储引擎、数据类型
一.库相关操作 1.创建数据库 (1)语法 create database 数据库 charset utf8; (2)数据库命名规范 可以由字母.数字.下划线.@.#.$ 区分大小写 唯一性 不能使用 ...
- MySQL数据库(三)—— 表相关操作(二)之约束条件、关联关系、复制表
表相关操作(二)之约束条件.关联关系.复制表 一.约束条件 1.何为约束 除了数据类型以外额外添加的约束 2.约束条件的作用 为了保证数据的合法性,完整性 3.主要的约束条件 NOT NULL # ...
- MySQL数据库(二)——库相关操作、表相关操作(一)、存储引擎、数据类型
库相关操作.表相关操作(一).存储引擎.数据类型 一.库相关操作 1.创建数据库 (1)语法 create database 数据库 charset utf8; (2)数据库命名规范 可以由字母.数字 ...
- C++实现顺序表相关操作
//顺序表#include<iostream>#include<cstdlib>//C中stdlib.h动态分配内存using namespace std;#define OK ...
- MySql学习笔记【三、表相关操作】
创建表 CREATE TABLE [IF NOT EXISTS] table_name( column_name data_type, ... ) 如: CREATE TABLE test_table ...
- MySQL之表相关操作
一 存储引擎介绍 存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制 详见:http://www.cnblogs.com/linhaifeng/articles/7213670.html ...
- python、第三篇:表相关操作
一 存储引擎介绍 存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制 详见:https://www.cnblogs.com/Forever-x/p/11317479.html 二 表介绍 ...
- 66、django之模型层(model)--多表相关操作(图书管理小练习)
前面几篇随笔的数据库增删改查操作都是在单表的操作上的,然而现实中不可能都是单表操作,更多的是多表操作,一对一,一对多,多对多的表结构才是我们经常需要处理的,本篇将带我们了解多表操作的一些相关操作.也会 ...
- ORM表相关操作
一般操作 看专业的官网文档,做专业的程序员! 必知必会13条 > all(): 查询所有结果 > filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 > get( ...
随机推荐
- three.js教程4-Group层级模型
1.组对象Group.层级模型-形成树状结构 //创建两个网格模型mesh1.mesh2 const geometry = new THREE.BoxGeometry(20, 20, 20); con ...
- css样式相关的惊艳的属性
CSS gap 简写属性用于设置行与列之间的间隙(网格间距). 规范的早期版本将该属性命名为 grid-gap,且为了保持与旧网站的兼容性,浏览器仍然会接受 grid-gap 作为 gap 的别名. ...
- uniapp中OnShow获取缓存
点击查看代码 function getStorage(key) { return new Promise((resolve, reject) => { uni.getStorage({ key: ...
- android中Room数据库的基本使用
简介: 还在使用原生的sqllite?有这么清爽且稳如狗的room为啥不用呢? Room是Google官方推荐使用的数据库,相比较某些优秀数据库框架来说,不用过于担心某天库会停止维护,且访问数据库非常 ...
- Shopify Theme 开发 —— 性能优化
一.概述 关于 Shopify Theme 的性能优化,通常有以下几点: 1.卸载未使用的应用程序 有些 app 会在 theme 里面插入一些代码,即使 app 未被使用,也可能会加载一些脚本文件, ...
- MindSpore梯度进阶操作
技术背景 在MindSpore深度学习框架中,我们可以使用mindspore.grad对函数式编程的函数直接计算自动微分,也可以使用mindspore.ops.GradOperation求解Cell类 ...
- 新手【BUUCTF】逆向writeup()
0x00前言 在大三开始入门逆向,已学完小甲鱼解密篇,刚开始看<加密与解密>,现在沉浸在快 乐的刷题学习中..... buuctf_reverse地址 0x01刚接触的逆向题 revers ...
- 【u8 login debug】u8 16.0 没有调试 login的解决办法
16.0 没有调试 login,改一下注册表 就行[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Ufsoft\WF\V8.700]"Enable.Debu ...
- shell脚本的调试
参数: -n :读一遍脚本中的命令但不执行,用于检查脚本中的语法错误 -v :一边执行脚本,一边将执行过的脚本命令打印到标准错误输出 -x :提供跟踪执行信息,将执行的每一条命令和结果依次打印出来 使 ...
- OceaBase 分区表创建技巧
最近遇在干个核心的金融项目,规模很大,客户主要是用oracle数据库,现在需要适配ob,原来在oracle就是分区表的迁来ob以后需要进行改造. oracle默认使用是堆表(ht),而ob使用的是索引 ...