Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Snowflake cloud data platform 如何解决雪花中仅在任务运行时出现的流未找到错误?_Snowflake Cloud Data Platform - Fatal编程技术网

Snowflake cloud data platform 如何解决雪花中仅在任务运行时出现的流未找到错误?

Snowflake cloud data platform 如何解决雪花中仅在任务运行时出现的流未找到错误?,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,当任务正在执行使用流的查询时,我遇到了一个错误。该错误仅在通过任务执行查询时出现 在查询信息_schema.task_history时,我可以看到任务状态为FAILED,错误代码为091111。我还没有找到任何关于错误代码的文档,所以我主要依靠错误消息 找不到我的流 正在使用SHOW_INITIAL_ROWS参数设置为TRUE创建流。这是因为源表已经存在了相当长的一段时间,我希望该任务除了处理传入数据外,还处理过去的数据 我注意到的 系统$STREAM_的_数据返回False,直到出现新的CDC

当任务正在执行使用流的查询时,我遇到了一个错误。该错误仅在通过任务执行查询时出现

在查询信息_schema.task_history时,我可以看到任务状态为FAILED,错误代码为091111。我还没有找到任何关于错误代码的文档,所以我主要依靠错误消息 找不到我的流

正在使用SHOW_INITIAL_ROWS参数设置为TRUE创建流。这是因为源表已经存在了相当长的一段时间,我希望该任务除了处理传入数据外,还处理过去的数据

我注意到的

系统$STREAM_的_数据返回False,直到出现新的CDC。由于SHOW_INITIAL_ROWS设置为TRUE,因此在查询流时,返回的行数与查询表本身时的行数相同。但是,SYSTEM$STREAM_HAS_DATA仍然返回False

我试过的

可以查询流 我已经确认任务所有者可以通过使用此角色和查询来访问流

从my_stream LIMIT 5中选择*工作

这证实了流确实存在

执行UPDATE命令会使SYSTEM$STREAM_的所有行的_数据返回TRUE,而不仅仅是该命令的差异

我可以运行任务本身的SQL。进入历史页面,我可以复制和粘贴查询并运行它

这确认了查询本身的工作

后续更改实际上由任务处理。 我需要帮助的地方

我需要任务来处理流,而不需要手动干预和执行,以使流看起来像它存在一样 我假设通过手动执行查询,幕后发生了一些事情,使得这个流可以访问。 然而,我一直无法找到导致流在被查询之前不可用的情况的原因

更新:一步一步的说明,以重现错误

遇到了一个更容易看到发生了什么的bug。从那时起,我们就能够一步一步地提出复制错误的指令

首先,不显示初始行

现在,将show_initial_rows设置为TRUE


假定的预期行为:在流上启用“显示初始行”不应更改可访问流的范围。

雪花支持已确认这是一个错误。他们在内部开了一张票来解决这个问题

将尝试在解决后在此发布更新

更新2021-04-30

Snowflake包含了一个应用于>=5.15版本的修复程序。 您可以通过查询选择当前版本来检查您的版本;除非有任何回滚,否则这应该适用于所有人

更新为我修复了代码为091111的流未找到错误。但是,在对源表进行新的更改之前,它尚未修复系统$STREAM_has_DATA返回False的问题

更新2021-05-26


系统$STREAM\u HAS\u数据返回False(初始行)的修复已在版本>=5.20中安装到位,根据您今天的更新和您提供的代码示例,您似乎遇到了类似的问题,我昨天在@LukaszSzozda发布的,似乎是同一个问题。我也刚刚收到Snowflake的回复-他们说修复程序正在等待部署,所以希望很快就能修复
use database stream_database;
use schema stream_schema;
create table test_table (a integer);
create stream test_stream on table test_table;

select * from test_stream;  -- Works
select * from stream_database.stream_schema.test_stream;  -- Works
 
use database different_database;  -- Use a different database
select * from stream_database.stream_schema.test_stream;  -- Still works
use database stream_database;
use schema stream_schema;


create table test_table (a integer);
create stream test_stream on table test_table  **show_initial_rows** = true;

select * from test_stream;  -- Works
select * from stream_database.stream_schema.test_stream;  -- Works
 
use database different_database;
select * from stream_database.stream_schema.test_stream;  -- Error is raised!

select * from stream_database.stream_schema.test_table;  -- Works, so there is still access to the table.