[英]External table not refreshing data Snowflake
假設我在 Hive 中有一個外部表,並且外部表的 S3 位置中的 csv 文件如下所示。
+----+------+
| ID | Name |
+----+------+
| 1 | A |
| 2 | B |
+----+------+
如果我像下面這樣更改文件中的數據,當我在 Hive 中查詢外部表時,我可以看到更改后的值。
+----+------+
| ID | Name |
+----+------+
| 1 | A |
| 2 | C |
+----+------+
當我在 Snowflake 中進行測試時,我無法看到新數據,但我仍然可以看到舊數據,盡管我在 Snowflake 中創建外部表時添加了auto_refresh = true
。
create or replace external table schema.table_name
(
ID INT as (value:c1::int),
Name varchar(20) as ( value:c2::varchar)
)
with location = @ext_stage_test
file_format = pipeformat
auto_refresh = true
這是雪花的行為還是我錯過了什么?
非常感謝任何幫助。
我會將此作為答案,但聽起來您沒有在 AWS S3 上設置 SNS 通知。 AUTO_REFRESH
允許 Snowflake 在向隊列發送文件已放入 S3 存儲桶或已刪除的通知時刷新外部表。 這是唯一真正可用的自動刷新屬性。 否則,需要運行外部表的手動刷新來刷新外部表:
alter external table exttable_part refresh;
如果您無法設置文檔中提到的 SNS 配置 ( https://docs.snowflake.com/en/sql-reference/sql/create-external-table.html#simple-external-table-auto-refresh- using-amazon-sns ),那么我建議將上面的命令添加到以對您有意義的頻率執行的task
中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.