【问题标题】:Append a new record in BigQuery with Google Script使用 Google Script 在 BigQuery 中追加新记录
【发布时间】:2021-06-28 16:03:27
【问题描述】:

我需要从 Google Script 向 Big Query 表添加(附加)记录。我寻找了类似的问题并想出了这段代码(我还激活了 BigQuery API 的高级服务):

 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);

我收到错误消息:“mediaData 参数仅支持 Blob 类型的上传。”

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

【问题讨论】:

    标签: javascript google-apps-script google-bigquery


    【解决方案1】:

    问题:

    • BigQuery.Jobs 接受 blob data。所以你需要它以 blob 形式。

    修复:

    • 使用newBlob 将数据转换为blob 形式。
    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); 
    }
    

    输出:

    • 您现在可以使用 BigQuery.Jobs 上的数据,因为它现在是 Blob 类型

    参考资料:

    【讨论】:

    • 很好,我之前确实试过这个,但我得到了一个错误。现在我意识到我遇到了一个错误,因为我使用的是 CONST 而不是 VAR 来定义数组。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-08-08
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    • 1970-01-01
    • 2018-04-08
    相关资源
    最近更新 更多