运行SQL时禁用缓存-Google大查询

运行SQL时禁用缓存-Google大查询,sql,caching,google-bigquery,talend,Sql,Caching,Google Bigquery,Talend,需要一些关于我们在谷歌大查询中面临的缓存问题的建议 我正在使用Talend tBigQueryInput组件运行Google大查询SQL。但是,SQL不会返回当前数据。我们怀疑它正在从缓存返回过时数据 是否有一个禁用缓存选项可以嵌入到SQL中,以便我们严格地说,大查询不能从缓存中获取?我想到了两个快速的想法: 您可以在UI中检查作业历史记录,以查看Talend正在运行的作业。根据统计数据,他们将报告结果是否来自缓存。您还可以检查审计日志以获取此信息 您可以利用非确定性方面执行一个经过修改的测试

需要一些关于我们在谷歌大查询中面临的缓存问题的建议

我正在使用Talend tBigQueryInput组件运行Google大查询SQL。但是,SQL不会返回当前数据。我们怀疑它正在从缓存返回过时数据


是否有一个禁用缓存选项可以嵌入到SQL中,以便我们严格地说,大查询不能从缓存中获取?

我想到了两个快速的想法:

  • 您可以在UI中检查作业历史记录,以查看Talend正在运行的作业。根据统计数据,他们将报告结果是否来自缓存。您还可以检查审计日志以获取此信息

  • 您可以利用非确定性方面执行一个经过修改的测试查询,这将确保结果不能从缓存中提供。类似于
    CURRENT\u TIMESTAMP()
    CURRENT\u DATE()
    等函数应足以实现此目的


通过扫描公共Talend文档,我看不到任何配置设置映射到查询作业的设置
configuration.query.useQueryCache
为false,这是您请求的行为。

我想到了两个简单的想法:

  • 您可以在UI中检查作业历史记录,以查看Talend正在运行的作业。根据统计数据,他们将报告结果是否来自缓存。您还可以检查审计日志以获取此信息

  • 您可以利用非确定性方面执行一个经过修改的测试查询,这将确保结果不能从缓存中提供。类似于
    CURRENT\u TIMESTAMP()
    CURRENT\u DATE()
    等函数应足以实现此目的

通过扫描公共Talend文档,我看不到任何配置设置映射到查询作业的设置
configuration.query.useQueryCache
为false,这是您请求的行为

是否有可以嵌入SQL中的禁用缓存选项

不!查询中没有要使用的此类选项

同时,为了强制不使用缓存,您可以在查询中添加如下内容

WHERE RAND() < 2    
WHERE RAND()<2
这只是一个愚蠢的例子——但你应该有一个想法:o)

是否有可以嵌入SQL中的禁用缓存选项

不!查询中没有要使用的此类选项

同时,为了强制不使用缓存,您可以在查询中添加如下内容

WHERE RAND() < 2    
WHERE RAND()<2

这只是一个愚蠢的例子——但你应该有一个想法:o)

另一个选择是创建UDF()

如果不执行UDF,就不会通过BigQueryWebUI进行查询缓存

e、 g

CREATE TEMP函数
FOO_BAR()作为(CONCAT('FOO','BAR'));

另一个选项是创建UDF()

如果不执行UDF,就不会通过BigQueryWebUI进行查询缓存

e、 g

CREATE TEMP函数
FOO_BAR()作为(CONCAT('FOO','BAR'));

嗨,Shollyman,谢谢你的回复。对于第1点,您能告诉我在UI的什么地方可以看到缓存结果的统计信息吗?在Google Big Query-->作业历史记录中。通过Talend运行的作业没有作业历史记录。同样,对于可用的作业,也没有说明数据是否来自缓存的位置。我还可以从哪里获得审计日志信息。非常感谢你在这方面的帮助。对不起,我不清楚。我所说的UI是指BigQueryWebUI,而不是Talend界面,它公开了工作历史信息。如果您使用的是云控制台中的界面,左侧导航中的查询历史链接将公开项目中运行的查询。有关于BigQuery审计日志功能的更多信息。嗨,Shollyman,谢谢你的回复。对于第1点,您能告诉我在UI的什么地方可以看到缓存结果的统计信息吗?在Google Big Query-->作业历史记录中。通过Talend运行的作业没有作业历史记录。同样,对于可用的作业,也没有说明数据是否来自缓存的位置。我还可以从哪里获得审计日志信息。非常感谢你在这方面的帮助。对不起,我不清楚。我所说的UI是指BigQueryWebUI,而不是Talend界面,它公开了工作历史信息。如果您使用的是云控制台中的界面,左侧导航中的查询历史链接将公开项目中运行的查询。有关于BigQuery审计日志功能的更多信息。嗨,米哈伊尔,谢谢你的回复。您能否解释一下使用RAND()<2之类的工具将如何强制查询不使用缓存结果?查询结果缓存在24小时内有效,并且在基础数据未更改、查询本身未更改且结果具有确定性的情况下使用。通过使用非确定性函数,您将有效地强制bq引擎不使用缓存结果-请参阅有关。。。显然,因为RAND()总是小于1,所以它不会影响查询的结果:o)这解释了吗?有意义吗?嗨,米哈伊尔,是的,现在有意义了。让我将此条件添加到SQL并监视查询一段时间。谢谢你的帮助。嗨,米哈伊尔,谢谢你的回复。您能否解释一下使用RAND()<2之类的工具将如何强制查询不使用缓存结果?查询结果缓存在24小时内有效,并且在基础数据未更改、查询本身未更改且结果具有确定性的情况下使用。通过使用非确定性函数,您将有效地强制bq引擎不使用缓存结果-请参阅有关。。。显然,因为RAND()总是小于1,所以它不会影响查询的结果:o)这解释了吗?有意义吗?嗨,米哈伊尔,是的,现在有意义了。让我将此条件添加到SQL并监视查询一段时间。谢谢你的帮助。