Javascript 使用Google脚本在BigQuery中追加新记录

Javascript 使用Google脚本在BigQuery中追加新记录,javascript,google-apps-script,google-bigquery,Javascript,Google Apps Script,Google Bigquery,我需要从Google脚本向一个大的查询表添加(追加)记录。我寻找了类似的问题,并得出了以下代码(我还激活了BigQueryAPI的高级服务): 我得到一个错误:“mediaData参数只支持上传Blob类型。” 我知道我可以使用此方法从CSV文件中添加数据,但我想添加一个数组。可能吗?问题: BigQuery.Jobs接受blob数据。所以你需要它以水滴的形式出现 修正: 使用newBlob将数据转换为blob格式 输出: 您现在可以在BigQuery.Jobs上使用数据,因为它现在

我需要从Google脚本向一个大的查询表添加(追加)记录。我寻找了类似的问题,并得出了以下代码(我还激活了BigQueryAPI的高级服务):

我得到一个错误:“mediaData参数只支持上传Blob类型。”

我知道我可以使用此方法从CSV文件中添加数据,但我想添加一个数组。可能吗?

问题:
  • BigQuery.Jobs
    接受blob
    数据
    。所以你需要它以水滴的形式出现
修正:
  • 使用
    newBlob
    将数据转换为blob格式
输出:

  • 您现在可以在
    BigQuery.Jobs
    上使用数据,因为它现在是Blob类型
参考资料:

很好,我以前确实尝试过,但我遇到了一个错误。现在我意识到我得到了一个错误,因为我使用的是CONST而不是VAR来定义数组。谢谢
 const data = {"Name":"TEST","Key":"TEST"};

var projectId = 'myid'
var datasetId = 'mydatasetid'
var tableId = 'mytableid'

var job = {
    configuration: {
      load: {
        writeDisposition:'WRITE_APPEND',
        destinationTable: {
          projectId: projectId,
          datasetId: datasetId,
          tableId: tableId
        }       
      }
    }
  };

   var runJob = BigQuery.Jobs.insert(job, projectId, data);
function test() {
  // data is currently an object
  var data = {"Name":"TEST","Key":"TEST"};

  // newBlob only accepts string, so convert data to string
  data = Utilities.newBlob(JSON.stringify(data), 'application/octet-stream');
  // data below is now of type Blob object
  Logger.log(data); 
}