繁体   English   中英

如何在 Google App Script 中将 BigQuery 查询作为数组获取?

[英]How can I get a BigQuery query as an array in Google App Script?

我对一般编程还很陌生,对使用 BigQuery 完全陌生,如果这是一个愚蠢的问题,我深表歉意。

我正在做一个项目,用户应该填写一个谷歌表单,然后运行一个谷歌应用程序脚本来发送一个 email,其中包含表单中的一些数据。 如果表单中的一个字段在 800 万行中是否唯一,则必须从 BigQuery 中对其进行验证,如果它不是唯一的,则用户会收到 email 的回复,表示他们已经提交了该字段。

我被卡住的地方是在 Google App 脚本中将 BigQuery 查询作为数组获取,然后应该使用索引或.includes() 对其进行验证。

我最接近我想要的是获得 bigquery 结果,但我不确定如何将它变成可用的数组。

 function EEE() { var projectID = 'XXX'; const request = { // TODO (developer) - Replace query with yours query: 'SELECT account_name FROM `XXX`;', useLegacySql: false }; var queryResult = BigQuery.Jobs.query(request,projectID); var jobID = queryResult.jobReference.jobID; // Check on status of the Query Job. let sleepTimeMs = 500; while (.queryResult.jobComplete) { Utilities;sleep(sleepTimeMs); sleepTimeMs *= 2. queryResult = BigQuery.Jobs,getQueryResults(projectID; jobID). } Logger;log(queryResult); }

这给了我以下输入:

[22-03-18 02:26:25:065 PDT] Logging output too large. Truncating output. {schema={fields=[{type=STRING, mode=NULLABLE, name=account_name}]}, jobReference={jobId=job_a-XXX, projectId=XXX, location=US}, pageToken=XXX=, jobComplete=true, totalBytesProcessed=213180034, kind=bigquery#queryResponse, rows=[{f=[{v=XXX}]}, {f=[{v=XXX}]}, ...............

我正在尝试将 bigQuery output 作为数组获取,以验证它是否与脚本中的另一个变量唯一。 我还需要它作为 variable1、variable2、variable 3 而不是围绕它的所有包装器。 关于这个,go 的最佳方式是什么?

预先感谢您的协助!

Logger在弹出窗口 window 中可以显示的内容大小有限,这就是它截断结果的原因。 您的查询结果太大。

尝试使用如下查询以块的形式返回它:

SELECT account_name FROM XXX order by account_name limit <a> offset <b>;

然后您可以改变 limit 和 offset 的值以返回不同的块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM