簡體   English   中英

如何在 Athena 中更新表

[英]How to update table in Athena

我正在使用 create sql 查詢從 Athena 中的另一個表“B”創建一個表“A”。 但是,表“B”每小時更新一次新行。 我想知道如何在不刪除表 A 並重新創建它的情況下更新表 A 數據。

我嘗試刪除表並再次創建它,但這似乎會在每次創建新表時產生性能問題。 我只想在表 A 中插入新行,以表 B 中添加的行為准

Amazon Athena 是一個查詢引擎,而不是數據庫。

當對表運行查詢時,Athena 使用表的location來確定數據在 Amazon S3 存儲桶中的存儲位置。 然后它讀取該位置(包括子目錄)中的所有文件並對該數據運行查詢。

因此,將數據添加到 Amazon Athena 表的最簡單方法是在 Amazon S3 的該位置創建額外的文件。 下次 Athena 運行查詢時,這些文件將作為引用表的一部分包含在內。 即使運行INSERT INTO命令也會在該位置創建新文件。 “每個 INSERT 操作都會創建一個新文件,而不是附加到現有文件。”

如果您希望將數據從 Table-B 復制到 Table-A,並且您知道一種方法來識別要添加的行(例如,有一列帶有時間戳),您可以使用類似的方法:

INSERT INTO table_a
SELECT * FROM table_b
WHERE timestamp_field > (SELECT MAX(timestamp_field FROM table_a))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM