天天看點

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語義​​。