如何编辑 Excel .iqy 文件的 BigQuery 连接器,使其中已有 SQL 语句,而不是依赖来自 Excel 单元格的输入?

How do I edit the BigQuery Connector for Excel .iqy file to have the SQL statement already in it instead of relying on input from an Excel cell?

我遇到了类似于 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. }"

可能是我"splitting"查询有误?我假设每个单元格只需要少于 256 个字符,它只会将指定范围内的后续单元格连接到前面单元格中字符串的末尾。

我找到的每个帮助文档都显示简单的 SQL 语句,我可以 运行 简单的语句,但我真正需要处理的查询在字段的 where 子句。我尝试加入 where 子句中引用的 table 以查看这是否会使语句更简单,更容易识别为查询,但没有成功。

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

最终结果不需要从单元格引用中读取查询,事实上,如果它可以全部放在 .iqy 文件中,那将是最可取的:用户搞砸的机会更少数据。

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

不确定 q(query) 的最大大小是多少 https://bigquery-connector.appspot.com,但我建议改用 BigQuery VIEW。

  • 它隐藏了 SQL 管道,因此减少了传递给 API 的 SQL 的大小。 URL 对查询进行编码就像用 +
  • 替换 spaces 一样简单
  • 您可以 tune/change BigQuery 中的视图定义,而无需向您的用户推出新的 .iqy
  • 使用 CURRENT_USER()...
  • 实施某种 row-level 安全措施

但那是另一个话题了!

最后,回到 .iqy,您可以像这样在查询中组合和嵌入参数:

q=select+*+from+mydataset.myview+where+FiscalYear=["Year", "Enter a year:"]&p=myproject&k=myURLencodedKey