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语义
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章