Mar*_*ane 6 google-apps-script google-bigquery
我正在将apps脚本用作Webhook,用于捕获信息并将其存储在BigQuery中。我曾经能够使用来将数据存储在工作表中,appendRow
但是由于数据量越来越大,我势必会寻找替代方法,因此决定使用BigQuery进行存储。
当我使用BigQuery控制台使用标准SQL查询插入/更新数据时,它可以完美运行,但在使用应用程序脚本时效果不佳。
这是我的doGet
功能,应该捕获数据并运行,BigQuery.Jobs.query
但是它失败了而不更新表-
var projectId = 'MyProjectID';
var datasetId = 'MyDatasetID';
var tableId = 'MyTableID';
function doGet(e) {
var params = JSON.stringify(e.parameters);
var jsonMapping = JSON.parse(params)
var email = jsonMapping["email"][0]
var number = jsonMapping["number"][0]
var request = {
'query': "INSERT INTO `" + projectId + "."+ datasetId + "." + tableId + "` VALUES ('" + email + "','" + number + "')"
}
var queryResults = BigQuery.Jobs.query(request, projectId);
var jobId = queryResults.jobReference.jobId;
return ContentService.createTextOutput('Successful')
}
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我我在做什么错吗?由于截断而无法看到完整的错误,并且在下一次运行时弹出窗口完全消失了:(
您需要将设置useLegacySql
为false。关于此的更多见解可以在这里找到
尝试这个 -
var projectId = 'MyProjectID';
var datasetId = 'MyDatasetID';
var tableId = 'MyTableID';
function doGet(e) {
var params = JSON.stringify(e.parameters);
var jsonMapping = JSON.parse(params)
var email = jsonMapping["email"][0]
var number = jsonMapping["number"][0]
var request = {
'query': "INSERT INTO `" + projectId + "."+ datasetId + "." + tableId + "` VALUES ('" + email + "','" + number + "')",
'useLegacySql': false
}
var queryResults = BigQuery.Jobs.query(request, projectId);
var jobId = queryResults.jobReference.jobId;
return ContentService.createTextOutput('Successful')
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
56 次 |
最近记录: |