假设我在配置单元中有一个外部表,并且外部表的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
这是雪花的行为还是我遗漏了什么?
非常感谢您的帮助。
1条答案
按热度按时间d4so4syb1#
我将把这作为一个答案,但它听起来不像你已经设置了在awss3的sns通知。这个
AUTO_REFRESH
当向队列发送文件已放入s3存储桶或已删除的通知时,允许snowflake刷新外部表。这是唯一真正可用的自动刷新属性。否则,需要手动刷新外部表以刷新外部表:如果无法设置文档中注明的sns配置(https://docs.snowflake.com/en/sql-reference/sql/create-external-table.html#simple-外部表自动刷新),然后我建议将上面的命令添加到
task
以对你有意义的频率执行。