繁体   English   中英

外部表不刷新数据雪花

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM