DataWorks中MaxCompute的常用操作命令
原文連結:https://blog.csdn.net/yitian_z/article/details/90729172
案例:本文主要描述阿里雲資料處理平臺DataWorks中MaxCompute的常用操作命令
一、表操作
(1)刪除表:
DROP TABLE [IF EXISTS] table_name;
1、如果不指定if exists選項而表不存在,則返回異常。若指定此選項,無論表是否存在,皆返回成功。
2、刪除外部表時,OSS上的資料不會被刪除。
(2)重新命名錶:
ALTER TABLE table_name RENAME TO new_table_name;
1、rename操作僅修改表的名字,不改動表中的資料。
2、如果已存在與new_table_name同名表,則報錯。
3、如果table_name不存在,則報錯。
4、若修改生產環境的表名,需要在舊錶名前加生產環境專案名如:data_dw.table_name
(3)修改表owner:
alter table table_name changeowner to 'ALIYUN$xxx@aliyun.com';
(4)修改表的註釋:
ALTER TABLE table_name SET COMMENT 'tbl comment';
1、table_name必須是已存在的表。
2、comment最長1024位元組。
(5) 修改表的Hash Clustering屬性:
ALTER TABLE table_name
[CLUSTERED BY (col_name [, col_name, ...]) [SORTED BY (col_name [ASC | DESC] [, col_name [ASC | DESC] ...])] INTO number_of_buckets BUCKETS]
(6)去除表的hash clustering屬性:
ALTER TABLE table_name NOT CLUSTERED;
1、alter table改變聚集屬性,只對於分割槽表有效,非分割槽表一旦聚集屬性建立就無法改變。
1、由於alter table隻影響新分割槽,所以該語句不可以再指定PARTITIONALTER TABLE語句適用於存量表,在增加了新的聚集屬性之後,新的分割槽將做hash cluster儲存。
(7)清空非分割槽表裡的資料:
TRUNCATE TABLE table_name;
1、將指定的非分割槽表中的資料清空,該命令不支援分割槽表。對於分割槽表,可以用ALTER TABLE table_name DROP PARTITION的方式將分割槽裡的資料清除。
二、分割槽和列操作
(1)新增分割槽操作:
ALTER TABLE TABLE_NAME ADD [IF NOT EXISTS] PARTITION partition_spec
partition_spec:(partition_col1 = partition_col_value1, partition_col2 = partiton_col_value2, ...);
說明
1、分割槽名必須小寫。
2、僅支援新增分割槽,不支援新增分割槽欄位。
3、如果未指定if not exists而同名的分割槽已存在,則返回報錯。
4、目前MaxCompute單表支援的分割槽數量上限為6萬。
5、對於多級分割槽的表,如果想新增新的分割槽,必須指明全部的分割槽值。
示例
alter table sale_detail add if not exists partition (sale_date='201312', region='hangzhou');
-- 成功新增分割槽,用來儲存2013年12月杭州地區的銷售記錄。
alter table sale_detail add if not exists partition (sale_date='201312', region='shanghai');
-- 成功新增分割槽,用來儲存2013年12月上海地區的銷售記錄。
alter table sale_detail add if not exists partition(sale_date='20111011');
-- 僅指定一個分割槽sale_date,出錯返回
alter table sale_detail add if not exists partition(region='shanghai');
-- 僅指定一個分割槽region,出錯返回
(2)刪除分割槽操作:
ALTER TABLE TABLE_NAME DROP [IF EXISTS] PARTITION partition_spec;
partition_spec:(partition_col1 = partition_col_value1, partition_col2 = partiton_col_value2, ...)
示例
alter table sale_detail drop if exists partition(sale_date='201312',region='hangzhou');
-- 成功刪除2013年12月杭州分割槽的銷售記錄。
(3)新增列操作:
ALTER TABLE table_name ADD COLUMNS (col_name1 type1,col_name2 type2...);
ALTER TABLE table_name ADD COLUMNS (col_name1 type1 comment 'XXX',col_name2 type2 comment 'XXX');
說明 新增的新列不支援指定順序,預設在最後一列。
(4)修改列名稱:
ALTER TABLE table_name CHANGE COLUMN old_col_name RENAME TO new_col_name;
若修改生產環境的列名,需要在表名前加生產環境專案名如:data_dw.table_name
(5) 修改列、分割槽註釋:
ALTER TABLE table_name CHANGE COLUMN col_name COMMENT comment_string;
(6)修改分割槽值:
ALTER TABLE table_name PARTITION (partition_col1 = partition_col_value1, partition_col2 = partiton_col_value2, ...)
RENAME TO PARTITION (partition_col1 = partition_col_newvalue1, partition_col2 = partiton_col_newvalue2, ...);
1、MaxCompute SQL支援通過rename操作更改對應表的分割槽值。
2、不支援修改分割槽列列名,只能修改分割槽列對應的值。
3、修改多級分割槽的一個或者多個分割槽值,多級分割槽的每一級的分割槽值都必須寫上。
相關文章
- 命令列中的常用操作命令列
- MaxCompute/DataWorks許可權問題排查建議
- 如何通過Dataworks禁止MaxCompute 子賬號跨Project訪問Project
- vi命令的常用操作
- RMAN常用的命令和操作
- RMAN常用的命令和操作:
- 我的常用tmux操作命令UX
- Docker常用操作命令Docker
- Redis常用操作命令Redis
- Mongodb 常用操作命令MongoDB
- Django常用操作命令Django
- 【mongoDB】常用操作命令MongoDB
- Linux系統中firewalld防火牆常用的操作命令Linux防火牆
- 常用rsync命令操作梳理
- hadoop常用操作命令Hadoop
- Vim 常用操作命令整理
- AIX 常用操作及命令AI
- git操作的常用命令分享Git
- 【Linux】—— vim常用操作命令Linux
- Windows常用網路操作命令Windows
- HDFS 常用檔案操作命令
- Linux常用的文字檔案操作命令Linux
- ZooKeeper常用命令列操作命令列
- Storm系列(二)常用shell命令操作ORM
- Oracle ASM磁碟組常用操作命令OracleASM
- Linux常用檔案操作命令Linux
- Linux常用命令:檔案操作命令Linux
- Ruby 中陣列的常用操作陣列
- rpm五種操作的常用命令
- linux下svn的常用操作命令總結Linux
- redis叢集部署及常用的操作命令(下)Redis
- redis叢集部署及常用的操作命令(上)Redis
- linux常用基礎命令操作收集Linux
- virtualBox 常用命令列操作命令列
- 通過DataWorks資料整合歸檔日誌服務資料至MaxCompute進行離線分析
- Linux 下的tar常用命令及操作Linux
- MySQL資料庫管理的常用操作命令錦集MySql資料庫
- 常用基礎Linux操作命令總結與hadoop基礎操作命令LinuxHadoop