-
Notifications
You must be signed in to change notification settings - Fork 80
DDL操作
jaywong edited this page Aug 5, 2013
·
5 revisions
shell操作或者客户端操作。请先移步https://github.com/alibaba/wasp/wiki/%E5%AE%A2%E6%88%B7%E7%AB%AFAPI%EF%BC%9A%E7%AE%A1%E7%90%86%E5%8A%9F%E8%83%BD 查看相关操作教程
重要:DDL操作前均需要disable表。DDL操作之后再enable表
CREATE TABLE
CREATE TABLE user {REQUIRED INT64 user_id; REQUIRED STRING name; } //以根表的形式构建一张表,表名叫user PRIMARY KEY(user_id), ENTITY GROUP ROOT, ENTITY GROUP KEY(user_id); //必须指定entityGroup key(简称egk),这个字段是表的均衡字段,表的分区就依赖这个字段的字典序排序然后切割 CREATE TABLE Photo{REQUIRED INT64 user_id columnfamily cf comment 'aaa'; // columnfamily used to specify the ColumnFamily in hbase when storing REQUIRED INT64 photo_id comment 'child primary key'; // the comment used to specify the comment REQUIRED INT64 time; REQUIRED STRING full_url;// the ';' can replace by ',' OPTIONAL STRING thumbnail_url; REPEATED STRING tag; } PRIMARY KEY(user_id,photo_id), IN TABLE user, ENTITY GROUP KEY(user_id) REFERENCES user; //photo表以user表的子表形式创建,每张根表也就是父表下面可以创建若干个子表,但一个子表只能属于一个父表。子表会使用父表的egk来作为均衡字段, 并且这个是强制指定的,用户不需要在创建子表的时候输入,如果用户需要对子表指定,也必须要跟父表一致,这里默认强制使用父表的egk,同时子表必 须在创建的字段中引入父表的pk字段,egk字段。如果不按照这个规则创建子表,则会报错。 CREATE TABLE user {REQUIRED INT64 user_id; REQUIRED STRING name; } //以预分区的形式建表 PRIMARY KEY(user_id), ENTITY GROUP ROOT, ENTITY GROUP KEY(user_id), PARTITION BY RANGE('aaa', 'zzz', 10); //把均衡字段的aaa到zzz范围内的切成10个分区(均衡字段是字典序)。 // Required Int64 user_id; 按照这三个的顺序来写字段定义,后面加上columnfamily可以指定存储时的CF,加上comment指定字段的注释 // Partition by only support by root table. Because child table share Entity Group with Root table. // 子表创建时不可以指定分区,因为直接沿用父表的分区。
DROP TABLE
DROP TABLE Photo; DROP TABLE IF EXISTS Photo, User;
ALTER TABLE
ALTER TABLE Photo ADD COLUMN DateOfBirth string; // table 添加列到最后面 ALTER TABLE Photo ADD COLUMN DateOfBirth string columnfamily cf comment 'aaa'; // table 添加列到最后面,指定columnfamily是cf ,指定注释是'aaa' ALTER TABLE Photo ADD COLUMN dummy2 int32 AFTER thumbnail_url; // 添加列dummy2到thumbnail_url后面,类型是INT32 ALTER TABLE Photo ADD COLUMN dummy1 int32 FIRST thumbnail_url; // 添加列dummy1到thumbnail_url前面,类型是INT32 ALTER TABLE Photo CHANGE COLUMN thumbnail_url thumbnail_url INT32; //修改列thumbnail_url的类型为INT32 ALTER TABLE Photo CHANGE thumbnail_url thumbnail_url INT32; // 同上 ALTER TABLE Photo CHANGE thumbnail_url rename_url INT64; // 修改列thumbnail_url,重命名为rename_url,类型为INT64 ALTER TABLE Photo DROP COLUMN full_url, DROP COLUMN thumbnail_url; //drop两个列full_url和thumbnail_url 默认列簇是default.
SHOW TABLES
SHOW TABLES; SHOW TABLES LIKE 'pattern'; SHOW CREATE TABLE tablename;
DESCRIBE TABLE
DESCRIBE user;