我使用平台将带有CSV / ZIP文件的报告自动发送到我的Gmail,该平台将根据大小决定要发送的类型。然后,我构建了这个Google Apps脚本来将该文件推送到BigQuery。
我尝试在较小的zip上尝试(zip大小大约为数百KB,解压缩后为25MB),并且没有问题。但是,当它变大时(zip压缩为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);
}
答案 0 :(得分:0)
通过@Adventurous Leo发布答案以提高知名度
我想我才意识到为什么会这样。这是我的配额,我只有 每个URI 50MB,我将减小大小并批量上传。仍然 谢谢你们两个给我的指示