python学习小组
直播中

猫耳

6年用户 1436经验值
擅长:制造/封装
私信 关注

MaxCompute常用语句汇总(更新ing)

摘要: 收集一些MaxCompute常用命令。

点此查看原文:[url=]http://click.aliyun.com/m/41645/[/url]

大数据计算服务(MaxCompute,原名ODPS,产品地址:[url=]https://www.aliyun.com/product/odps[/url])是一种快速、完全托管的TB/PB级数据仓库解决方案。MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。本文收录了一些MaxCompute常用SQL、MR、Tunnel等语句,帮助您快速了解并使用MaxCompute/ODPS。

创建内部表


CREATE TABLE table_name (name string);

创建内部表,并指定分区字段


CREATE TABLE table_name (name string) PARtiTIONED BY (ds string);

创建内部表,并指定生命周期


CREATE TABLE table_name (name string) PARTITIONED BY (ds string) LIFECYCLE 365;

创建内部表,并从其他表导入数据


CREATE TABLE table_name AS SELECT * FROM table_name2 ;

创建内部表,并从其他表复制表结构


CREATE TABLE table_name LIKE table_name2 ;

创建虚拟DUAL表


-- 创建表CREATE TABLE IF NOT EXISTS dual (    value BIGINT COMMENT 'value')COMMENT 'dual';-- 插入一条数据INSERT OVERWRITE TABLE dualSELECT COUNT(*)FROM dual;

创建外部表


CREATE EXTERNAL TABLE IF NOT EXISTS table_name(a type,)STORED BY 'com.aliyun.odps.CsvStorageHandler' -- (1)WITH SERDEPROPERTIES ('odps.properties.rolearn'='acs:ram::1811270634786818:role/aliyunodpsdefaultrole') -- (2)LOCATION 'oss://oss-cn-shanghai-internal.aliyuncs.com/oss-odps-test/Demo/'; -- (3)(4)

创建内部表,并判断是否内布表是否已经存在


CREATE TABLE  IF NOT EXISTS  table_name (name string);

加了 IF NOT EXISTS ,sql执行的结果总是成功;如果没加,表存在的情况下会返回失败。

显示所有表


SHOW TABLES;

显示部分表


SHOW TABLES LIKE 'yinlin*';

显示表分区


SHOW PARTITIONS

表中添加一列


ALTER TABLE table_name ADD COLUMNS (col_name1 type1)

可以一次增加多个列

添加一列并增加列字段注释


ALTER TABLE table_name ADD COLUMNS (test type COMMENT '测试');

更改表名


ALTER TABLE table_name RENAME TO new_table_name;

删除表


DROP TABLE table_name;

修改列名


ALTER TABLE table_name CHANGE COLUMN old_col_name RENAME TO new_col_name;

删除、修改列记录
1、创建一张表,结果为预期的表结构;


CREATE TABLE table2 (xxx);

2、把数据从原表导入到目标表,可以用SQL,比如:


INSERT OVERWRITE TABLE table2 SELECT * FROM table1;

3、更换表名:


ALTER TABLE table1 RENAME TO table1_bak;ALTER TABLE table2 RENAME TO table1;

将文件中的数据加载到表中


TUNNEL upload -fd 't' c:file.txt table_name;

将表数据导出到文件中


TUNNEL d table_name c:file.txt;

查看表的描述


DESC table_name;

按条件查询


SELECT * FROM table_name  WHERE foo='';

统计数据总量


SELECT COUNT(1) FROM table_name;

将一个表的统计结果插入另一个表中


INSERT OVERWRITE TABLE table_name SELECT a.bar, count(1) FROM table_name a WHERE a.foo > 0 GROUP BY a.bar;

欢迎大家补充…
[url=]https://yq.aliyun.com/ask/59888[/url]



更多回帖

发帖
×
20
完善资料,
赚取积分