大數(shù)據(jù)計算服務(wù)(MaxCompute,原名ODPS澄惊,產(chǎn)品地址:https://www.aliyun.com/product/odps)是一種快速凑懂、完全托管的TB/PB級數(shù)據(jù)倉庫解決方案沿猜。MaxCompute向用戶提供了完善的數(shù)據(jù)導(dǎo)入方案以及多種經(jīng)典的分布式計算模型芳肌,能夠更快速的解決用戶海量數(shù)據(jù)計算問題碾局,有效降低企業(yè)成本荆残,并保障數(shù)據(jù)安全。本文收錄了一些MaxCompute常用SQL净当、MR内斯、Tunnel等語句蕴潦,幫助您快速了解并使用MaxCompute/ODPS。
創(chuàng)建內(nèi)部表
CREATETABLEtable_name(name string);
創(chuàng)建內(nèi)部表,并指定分區(qū)字段
CREATETABLEtable_name(name string)PARTITIONEDBY(ds string);
創(chuàng)建內(nèi)部表,并指定生命周期
CREATETABLEtable_name(name string)PARTITIONEDBY(ds string)LIFECYCLE365;
創(chuàng)建內(nèi)部表,并從其他表導(dǎo)入數(shù)據(jù)
CREATETABLEtable_name AS SELECT * FROM table_name2 ;
創(chuàng)建內(nèi)部表,并從其他表復(fù)制表結(jié)構(gòu)
CREATETABLEtable_name LIKE table_name2 ;
創(chuàng)建虛擬DUAL表
-- 創(chuàng)建表CREATETABLEIFNOTEXISTSdual(valueBIGINTCOMMENT'value')COMMENT'dual';-- 插入一條數(shù)據(jù)INSERTOVERWRITETABLEdualSELECTCOUNT(*)FROMdual;
創(chuàng)建外部表
CREATEEXTERNALTABLEIFNOTEXISTStable_name(atype,)STOREDBY'com.aliyun.odps.CsvStorageHandler'-- (1)WITHSERDEPROPERTIES('odps.properties.rolearn'='acs:ram::1811270634786818:role/aliyunodpsdefaultrole')-- (2)LOCATION 'oss://oss-cn-shanghai-internal.aliyuncs.com/oss-odps-test/Demo/'; -- (3)(4)
創(chuàng)建內(nèi)部表俘闯,并判斷是否內(nèi)布表是否已經(jīng)存在
CREATETABLEIFNOTEXISTStable_name(name string);
加了 IF NOT EXISTS 潭苞,sql執(zhí)行的結(jié)果總是成功;如果沒加真朗,表存在的情況下會返回失敗此疹。
顯示所有表
SHOWTABLES;
顯示部分表
SHOWTABLESLIKE'yinlin*';
顯示表分區(qū)
SHOWPARTITIONS
表中添加一列
ALTERTABLEtable_nameADDCOLUMNS(col_name1 type1)
可以一次增加多個列
添加一列并增加列字段注釋
ALTERTABLEtable_nameADDCOLUMNS(testtypeCOMMENT'測試');
更改表名
ALTERTABLEtable_nameRENAMETOnew_table_name;
刪除表
DROPTABLEtable_name;
修改列名
ALTERTABLEtable_name CHANGECOLUMNold_col_nameRENAMETOnew_col_name;
刪除、修改列記錄
1遮婶、創(chuàng)建一張表蝗碎,結(jié)果為預(yù)期的表結(jié)構(gòu);CREATETABLEtable2(xxx);2蹭睡、把數(shù)據(jù)從原表導(dǎo)入到目標表衍菱,可以用SQL,比如:INSERTOVERWRITETABLEtable2SELECT*FROMtable1;3、更換表名:ALTERTABLEtable1RENAMETOtable1_bak;ALTERTABLEtable2RENAMETOtable1;
將文件中的數(shù)據(jù)加載到表中
TUNNEL upload-fd'\t'c:\file.txt table_name;
將表數(shù)據(jù)導(dǎo)出到文件中
TUNNELdtable_namec:\file.txt;
查看表的描述
DESCtable_name;
按條件查詢
SELECT*FROMtable_nameWHERE foo='';
統(tǒng)計數(shù)據(jù)總量
SELECTCOUNT(1)FROMtable_name;
將一個表的統(tǒng)計結(jié)果插入另一個表中
INSERTOVERWRITETABLEtable_nameSELECTa.bar,count(1)FROMtable_nameaWHEREa.foo>0GROUPBYa.bar;
歡迎大家補充...
https://yq.aliyun.com/ask/59888
阿里巴巴大數(shù)據(jù)-玩家社區(qū)https://yq.aliyun.com/teams/6/