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