外部表不刷新数据雪花

lrpiutwd  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(354)

假设我在配置单元中有一个外部表,并且外部表的s3位置中的csv文件如下所示。

+----+------+
| ID | Name |
+----+------+
|  1 | A    |
|  2 | B    |
+----+------+

如果我像下面那样更改文件中的数据,当我在配置单元中查询外部表时,就可以看到更改的值。

+----+------+
| ID | Name |
+----+------+
|  1 | A    |
|  2 | C    |
+----+------+

当我在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

这是雪花的行为还是我遗漏了什么?
非常感谢您的帮助。

d4so4syb

d4so4syb1#

我将把这作为一个答案,但它听起来不像你已经设置了在awss3的sns通知。这个 AUTO_REFRESH 当向队列发送文件已放入s3存储桶或已删除的通知时,允许snowflake刷新外部表。这是唯一真正可用的自动刷新属性。否则,需要手动刷新外部表以刷新外部表:

alter external table exttable_part refresh;

如果无法设置文档中注明的sns配置(https://docs.snowflake.com/en/sql-reference/sql/create-external-table.html#simple-外部表自动刷新),然后我建议将上面的命令添加到 task 以对你有意义的频率执行。

相关问题