使用nodejs gcloud上传到bigquery时如何启用错误

Posted

技术标签:

【中文标题】使用nodejs gcloud上传到bigquery时如何启用错误【英文标题】:how to enable errors when uploading to bigquery using nodejs gcloud 【发布时间】:2016-07-17 13:57:25 【问题描述】:

使用 bigquery UI,我可以选择通过检查来启用错误

Number of errors allowed

现在当我在 nodejs 中使用 Gcloud 时如何启用错误?

fs.writeFile("/tmp/bq_json_file_new.json", myJSON, function(err));
fs.createReadStream("/tmp/bq_json_file_new.json")
  .pipe(table.createWriteStream(metadata))
  .on('complete', function(job) 
    job
      .on('error', console.log)
      .on('complete', function(metadata) 
        console.log('job completed', metadata);
      );
  );

【问题讨论】:

【参考方案1】:

这是作业配置中的maxBadRecords 字段。您可以在 BigQuery API 中插入作业时指定此项。我不确定 nodejs 客户端的外观,但如果您传入一个作业形状的对象,您应该能够在其加载作业配置中指定 maxBadRecords

【讨论】:

【参考方案2】:

这是使用Danny Kitt's 答案的答案:

var gcloud = require('gcloud')(
  keyFilename: '../config/keyfile.json',
  projectId: 'my-project'
);

var request = require('request');

var bigquery = gcloud.bigquery();


var dataset = bigquery.dataset('my_dataset');
var table = dataset.table('my_table');

var metadata = 
    sourceFormat: 'NEWLINE_DELIMITED_JSON',
    maxBadRecords: 2
;

fs = require('fs');

fs.createReadStream('./myFile.json')
  .pipe(table.createWriteStream(metadata))
  .on('complete', function(job) 
   job
      .on('error', console.log)
      .on('complete', function(metadata) 
        console.log('job completed', metadata);
      );
  );

【讨论】:

以上是关于使用nodejs gcloud上传到bigquery时如何启用错误的主要内容,如果未能解决你的问题,请参考以下文章

Apache Avro 库无法解析文件 nodejs

通过 GSUTIL 将文件从 Windows 10 文件夹上传到 Gcloud 存储桶时出现问题

如何在 Node.js 中将文件上传到 GCloud?

为啥我在使用 zip 或直接使用编辑器在 gcloud 中部署 nodejs 函数时遇到错误?

gcloud preview app deploy每次在python项目中上传所有源代码文件需要很长时间

通过 gcloud compute scp 成功上传后在主目录中找不到文件