本文主要是介绍MaxCompute - 更新表数据(INSERT OVERWRITE and INSERT INTO),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
INSERT命令说明
命令格式:
INSERT OVERWRITE|INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] [(col1,col2 ...)]
select_statement
FROM from_statement;
格式说明:
在MaxCompute SQL处理数据的过程中,INSERT OVERWRITE/INTO
用于将计算的结果保存目标表中。
- insert into:直接向表或表的分区中追加数据。不支持
INSERT INTO
到Hash Clustering表。如果您需要插入少量测试数据,可以配合VALUES使用。 - insert overwrite:先清空表中的原有数据,再向表或分区中插入数据。目前
INSERT OVERWRITE
不支持指定插入列的功能,暂时只能用INSERT INTO
。
说明
- MaxCompute的
INSERT
语法与通常使用的MySQL或Oracle的INSERT
语法有差别,在INSERT OVERWRITE/INTO
后需要加入TABLE
关键字,而非直接使用TABLENAME
。- 在反复对同一个分区进行
INSERT OVERWRITE
的时候,通过DESCRIBE
查看到的数据分区Size会不同。这是因为从同一个表的同一个分区SELECT
出来再INSERT OVERWRITE
回相同分区时,文件切分逻辑发生变化,从而导致数据的Size发生变化。数据的总长度在INSERT OVERWRITE
前后是不变的,您不必担心存储计费会存在问题。- 当遇到并发写入时,MaxCompute会根据ACID进行并发写的保障。关于ACID的具体语义,请参见ACID语义。
这篇关于MaxCompute - 更新表数据(INSERT OVERWRITE and INSERT INTO)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!