Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script Can';t使用Google应用程序脚本将解压后的csv上传到具有更大数据量的BigQuery中_Google Apps Script_Google Bigquery - Fatal编程技术网

Google apps script Can';t使用Google应用程序脚本将解压后的csv上传到具有更大数据量的BigQuery中

Google apps script Can';t使用Google应用程序脚本将解压后的csv上传到具有更大数据量的BigQuery中,google-apps-script,google-bigquery,Google Apps Script,Google Bigquery,我使用一个平台将带有CSV/ZIP文件的报告自动发送到我的Gmail,平台将根据大小决定发送哪种类型。我构建了这个GoogleApps脚本,将这个文件推送到BigQuery 我在一个较小尺寸的拉链上尝试了这个方法(拉链像几百KBs,解压时是25MB),它没有问题。然而,当它变大时(像3MB压缩,解压时77MB),我在处理Job.Load时收到一条错误消息。想知道是否有人经历过这个问题,并愿意分享一些技巧。谢谢 很抱歉,我的UI上显示的错误消息是中文的,因此我跳过将其附加到此线程:( 代码如下:

我使用一个平台将带有CSV/ZIP文件的报告自动发送到我的Gmail,平台将根据大小决定发送哪种类型。我构建了这个GoogleApps脚本,将这个文件推送到BigQuery

我在一个较小尺寸的拉链上尝试了这个方法(拉链像几百KBs,解压时是25MB),它没有问题。然而,当它变大时(像3MB压缩,解压时77MB),我在处理Job.Load时收到一条错误消息。想知道是否有人经历过这个问题,并愿意分享一些技巧。谢谢

很抱歉,我的UI上显示的错误消息是中文的,因此我跳过将其附加到此线程:(

代码如下:

function BQLoad() {
var projectId = 'quantum-feat-211902';
var datasetId = 'DBM_dataset01';
var tableId = 'test';
var thread = GmailApp.getInboxThreads(0,1)[0]; 
var message = thread.getMessages()[0]; 
var attachments = message.getAttachments()[0];
var firstThread = GmailApp.getInboxThreads(0,1)[0];
var messages = firstThread.getMessages();
var job = {
configuration: {
  load: {
    destinationTable: {
      projectId: projectId,
      datasetId: datasetId,
      tableId: tableId,
    },
    skipLeadingRows: 1,
    ignoreUnknownValues: true,
    writeDisposition: "WRITE_TRUNCATE",
    sourceFormat: 'CSV',
    fieldDelimiter: ',',
    allowJaggedRows: true,
    encoding: "UTF-8",
    maxBadRecords: 1000,
  },
},
};
for (var i = 0; i < messages.length; i++) {
Logger.log(messages[i].getSubject());
}
Logger.log(attachments.getContentType());
if (attachments.getContentType() === "application/zip") {
var data = Utilities.unzip(attachments)[0];
}
else {
var data = attachments;
}
job = BigQuery.Jobs.insert(job, projectId, data);
Logger.log('Load job started. Check on the status of it here: ' +
  'https://bigquery.cloud.google.com/jobs/%s', projectId);
}
函数BQLoad(){
var projectId='quantum-feat-211902';
var datasetId='DBM_dataset01';
var tableId='test';
var-thread=GmailApp.getInboxThreads(0,1)[0];
var message=thread.getMessages()[0];
var attachments=message.getAttachments()[0];
var firstThread=GmailApp.getInboxThreads(0,1)[0];
var messages=firstThread.getMessages();
变量作业={
配置:{
负载:{
目标表格:{
projectd:projectd,
datasetId:datasetId,
tableId:tableId,
},
斯基辛格:1,
忽略未知值:正确,
writeDisposition:“WRITE_TRUNCATE”,
sourceFormat:'CSV',
字段分隔符:',',
阿洛贾格德罗斯:没错,
编码:“UTF-8”,
maxBadRecords:1000,
},
},
};
对于(var i=0;i
发布@Adventurous Leo的答案,以提高知名度


我想我刚刚意识到为什么会这样。这是我的配额,我只有 每个URI 50MB,我将缩小大小并进行批量上传。仍然 谢谢你们两位给我指路


您能将错误消息翻译成英语吗?了解具体错误可能会有很大帮助。作为一个有根据的猜测,当运行代码的服务器上设置了时间限制,或者允许它们处理的数据有大小限制时,有时会发生类似的问题。一个大文件可能会导致脚本运行太长。比k you Brian:)错误消息是关于第39行的“找不到任何内容”:job=BigQuery.Jobs.insert(job,projectId,data);我不知道这是否和data@AdventurousLeo-这种情况是否只适用于大ZIP文件,以及所有大ZIP文件或某些文件?您能否尝试使用一个大的CSV文件,以便我们能够了解问题出现的地方?我看到了一个关于从硬盘上传的视频,但我想这不是你的选择?我想我刚刚意识到为什么会发生这种情况。这是我的配额,我每个URI只有50MB,我将缩小大小并进行批量上传。还是要感谢你们两位给我指路。@爱冒险的狮子座,为了社区的利益,你们能把这个作为一个答案吗?