copy Agent1
from 's3://my-bucket/Reports/Historical Metrics Report (1).csv'
iam_role 'arn:aws:iam::my-role:role/RedshiftRoleForS3'
csv
null as '\000'
IGNOREHEADER 1;
我正在使用這個(上圖)將資料從 s3 拉到 redshift 表。它作業正常但是有一個問題,當資料在第一次插入表時被提取/復制,但是當資料在 s3 存盤桶檔案中更新并且我們運行相同的查詢時,它所做的是添加全新的資料行而不是覆寫已經創建的行。
如何停止重復?我只想在 s3 檔案上更新資料時,在運行復制命令后,我的資料(行)被覆寫并用新資料替換行資料。
這是螢屏截圖 - 正在添加更新資料的行
uj5u.com熱心網友回復:
Redshift 不強制執行唯一性。請參閱 - https://docs.aws.amazon.com/redshift/latest/dg/t_Defining_constraints.html
要更新表,您需要將資料復制到“暫存”表并執行 UPSERT 程序。請參閱 - https://docs.aws.amazon.com/redshift/latest/dg/c_best-practices-upsert.html
uj5u.com熱心網友回復:
如果您的目標是在通過 加載資料之前清空表COPY,那么您可以使用以下TRUNCATE命令清空表:
TRUNCATE tablename;
請注意,這不能在提交中回滾。
使用比立即洗掉與表關聯的所有存盤空間TRUNCATE要高效得多。DELETE FROM tablename
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/422828.html
標籤:
上一篇:使用<c:importurl=""/>將影像匯入jsp檔案
下一篇:DTO中一個物體的兩個驗證器
