920
windows
創建刪除表__快速開始_大數據計算服務-阿裏雲
當用戶被添加到項目空間並被賦予建表等權限後,就可以操作MaxCompute了。由於在MaxCompute中的操作對象(輸入、輸出)都是表,所以在處理數據之前,我們首先要創建表、分區。
創建表
語法格式:
CREATE TABLE [IF NOT EXISTS] table_name
[(col_name data_type [COMMENT col_comment], ...)]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
[LIFECYCLE days]
[AS select_statement]
CREATE TABLE [IF NOT EXISTS] table_name
LIKE existing_table_name
說明:
- 表名與列名均對大小寫不敏感。
- 在創建表時,如果不指定if not exists選項而存在同名表,則返回出錯;若指定此選項,則無論是否存在同名表,即使原表結構與要創建的目標表結構不一致,均返回成功。已存在的同名表的元信息不會被改動。
- 數據類型隻能是:bigint,double,boolean,datetime及string。
- 表名,列名中不能有特殊字符,隻能用英文的a-z,A-Z及數字和下劃線_,且以字母開頭,名稱的長度不超過128字節。
- Partitioned by 指定表的分區字段,目前僅支持string類型,其他類型行為未定義。分區值不可以有雙字節字符(如中文),必須是以英文字母a-z,A-Z開始後可跟字母數字,名稱的長度不超過128字節。 允許的字符包括:空格 ‘ ‘,冒號’:’,下劃線’_’,美元符’$’,井號’#’,點’.’,感歎號’!’和’@’,出現其他字符行為未定義。例如:”t”,”n”,”/”等。當利用分區字段對表進行分區時,新增分區、更新分區內數據和讀取分區數據均不需要做全表掃描,可以提高處理效率。
- 注釋內容是長度不超過1024字節的有效字符串。
- lifecycle指明此表的生命周期,單位:天。create table like語句不會複製源表的生命周期屬性。
- 目前,在表中建的分區層次不能超過6級。一個表允許的分區個數支持按照具體的project配置,默認60,000個。
注意:
- 創建表的詳細介紹請參考 創建表(CREATE TABLE) 。
- 添加分區請參考 添加及刪除分區 。
- 生命周期的修改請參考 修改表的生命周期屬性 。
創建表示例:
create table test1 (key string); -- 創建非分區表,表名test1,字段名key,數據類型string。
create table test2 (key bigint) partitioned by (pt string, ds string); --創建分區表
create table test3 (key boolean) partitioned by (pt string, ds string) lifecycle 100; -- 創建帶有生命周期的表
create table test4 like test3; -- 除生命周期屬性外,test3的其他屬性(字段類型,分區類型等)均與test4完全一致
create table test5 as select * from test2;
-- 這個操作會創建test5,但分區,生命周期信息不會被拷貝到目標表中。
-- 此操作僅會將test2的數據複製到test5中(如果test2有數據的話,此示例中test2為空表,後續章節會介紹數據導入)。
這裏我們介紹一個創建表的場景:假設需要創建一張用戶表user,包括如下信息:
- user_id bigint類型,用戶標識,唯一標識一個用戶
- gender bigint 類型,性別 (0,未知;1,男;2,女)
- age bigint, 用戶年齡
按照region(區域)和dt(日期)進行分區,生命周期為365天。建表語句如下:
CREATE TABLE user (
user_id BIGINT, gender BIGINT COMMENT '0 unknow,1 male, 2 Female', age BIGINT)
PARTITIONED BY (region string, dt string) LIFECYCLE 365;
獲取表信息
當創建表成功之後,我們可以通過如下命令獲取表的信息:
desc <table_name>;
例如,獲取上述示例中表test3信息:
desc test3;
結果顯示如下:
odps@ $odps_project>desc test3;
+------------------------------------------------------------------------------------+
| Owner: ALIYUN$maojing.mj@alibaba-inc.com | Project: $odps_project
| TableComment: |
+------------------------------------------------------------------------------------+
| CreateTime: 2015-09-18 12:26:57 |
| LastDDLTime: 2015-09-18 12:26:57 |
| LastModifiedTime: 2015-09-18 12:26:57 |
| Lifecycle: 100 |
+------------------------------------------------------------------------------------+
| InternalTable: YES | Size: 0 |
+------------------------------------------------------------------------------------+
| Native Columns: |
+------------------------------------------------------------------------------------+
| Field | Type | Label | Comment |
+------------------------------------------------------------------------------------+
| key | boolean | | |
+------------------------------------------------------------------------------------+
| Partition Columns: |
+------------------------------------------------------------------------------------+
| pt | string | |
| ds | string | |
+------------------------------------------------------------------------------------+
獲取test4信息:
desc test4;
顯示結果如下:
odps@ $odps_project>desc test4;
+------------------------------------------------------------------------------------+
| Owner: ALIYUN$maojing.mj@alibaba-inc.com | Project: $odps_project
| TableComment: |
+------------------------------------------------------------------------------------+
| CreateTime: 2015-09-18 12:27:09 |
| LastDDLTime: 2015-09-18 12:27:09 |
| LastModifiedTime: 2015-09-18 12:27:09 |
+------------------------------------------------------------------------------------+
| InternalTable: YES | Size: 0 |
+------------------------------------------------------------------------------------+
| Native Columns: |
+------------------------------------------------------------------------------------+
| Field | Type | Label | Comment |
+------------------------------------------------------------------------------------+
| key | boolean | | |
+------------------------------------------------------------------------------------+
| Partition Columns: |
+------------------------------------------------------------------------------------+
| pt | string | |
| ds | string | |
+------------------------------------------------------------------------------------+
您會發現,除生命周期屬性外,test3的其他屬性(字段類型,分區類型等)均與test4完全一致。獲取表信息的更多介紹請參考 Describe Table 。您如果查看test2的表信息,pt,ds兩個字段僅會作為普通列存在,而不是表的分區。
刪除表
DROP TABLE [IF EXISTS] table_name;
示例,刪除test2表:
drop table test2;
更多介紹請參考 刪除表(DROP TABLE) 。
創建分區
當創建一張分區表之後,為了往該表裏麵導入不同分區數據,我們需要創建分區。命令如下:
alter table table_name add [if not exists] partition partition_spec
partition_spec:
: (partition_col1 = partition_col_value1, partition_col2 = partiton_col_value2, ...)
比如上麵的例子,給用戶表user添加區域為hangzhou,日期為20150923的分區,句子顯示如下:
Alter table user add if not exists partition(region='hangzhou',dt='20150923');
刪除分區
命令如下:
alter table table_name drop [if exists] partition_spec;
partition_spec:
: (partition_col1 = partition_col_value1, partition_col2 = partiton_col_value2, ...)
比如刪除區域為hangzhou,日期為20150923的分區,語句如下:
Alter table user drop if exists partition(region='hangzhou',dt='20150923');
最後更新:2016-05-11 11:01:36
上一篇:
角色創建及授權__快速開始_大數據計算服務-阿裏雲
下一篇:
導入導出數據__快速開始_大數據計算服務-阿裏雲
GetUserMFAInfo__用戶管理接口_RAM API文檔_訪問控製-阿裏雲
連接集群__集群管理_用戶指南_容器服務-阿裏雲
解除簽名密鑰與API的綁定__後端簽名密鑰相關接口_API_API 網關-阿裏雲
圖模型開發和調試__圖模型_大數據計算服務-阿裏雲
ForwardEntrySetType__數據類型_API 參考_雲服務器 ECS-阿裏雲
1. OSS快速開始__開放存儲OSS 體驗_體驗館-阿裏雲
阿裏雲大數據學院落戶青島西海岸新區!中國北方第一所!
查詢可用地域列表__地域相關接口_API 參考_雲服務器 ECS-阿裏雲
調用方式__API參考_高性能計算-阿裏雲
創建訂閱通道__數據訂閱_用戶指南_數據傳輸-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲