如何编辑BigQuery Connector for Excel .iqy文件以使其中已包含SQL语句而不是依赖于Excel单元格的输入?

问题描述 投票:1回答:1

我有类似bigquery excel connector - query larger than 256 char的问题

但是,我引用了一个单元格区域并获得了结果:

"WARNING Request failed: Error. Unable to execute query. 400 { code : 400, errors : [ { domain : global, location : query, locationType : other, message : 1.593 - 1.593: No query found., reason : invalidQuery } ], message : 1.593 - 1.593: No query found. }"

也许我正在“错误地”拆分查询?我假设每个单元只需要少于256个字符,它只会将指定范围内的后续单元连接到前面单元格中字符串的末尾。

我发现的每个帮助文档都显示简单的SQL语句,我可以运行简单的SQL语句,但我真正需要工作的查询在字段的where子句中有一个select语句。我已经尝试加入where子句中引用的表来查看是否使语句更简单,更容易识别为查询,但没有运气。

我已经尝试在NotePad中打开.iqy文件(BigQuery最初让我下载),看看我是否可以在那里输入查询,但是我找不到任何关于这些类型文件的语法文档,所以当我将它加载到Excel中时它仍然显示输入查询的提示。

最终结果不需要从单元格引用中读取查询,事实上,如果它只能在.iqy文件中,那么这将是最可取的:用户将数据丢弃的可能性更小。

sql excel syntax google-bigquery connector
1个回答
1
投票
  1. 确保在query文件中对参数(projectkey.iqy)进行URL编码。使用像https://meyerweb.com/eric/tools/dencoder这样的在线工具
  2. 如果在进行上述更改之前已在Excel中加载了.iqy,则必须删除查询定义。进入Properties并取消选中Save query definition,然后再次连接到.iqy

不确定q(查询)的最大大小是针对https://bigquery-connector.appspot.com的,但我建议使用BigQuery VIEW。

  • 它隐藏了SQL管道,因此减少了传递给API的SQL的大小。编码查询的URL可以像用spaces替换+一样简单
  • 您可以在BigQuery中调整/更改视图定义,而无需向用户推出新的.iqy
  • 使用CURRENT_USER()实现某种行级安全性...

但这是另一个话题!

最后,回到.iqy,您可以在查询中组合和嵌入参数,如下所示:

q=select+*+from+mydataset.myview+where+FiscalYear=["Year", "Enter a year:"]&p=myproject&k=myURLencodedKey
© www.soinside.com 2019 - 2024. All rights reserved.