如何在BigQuery insertAll中使用createDisposition

时间:2016-07-19 20:32:39

标签: google-bigquery google-cloud-platform

如果不存在具有该名称的表,

insertAll将失败。所以目前我们运行一个创建表的过程,然后在表存在后重新运行insertAll。

对于每个其他BigQuery API调用,如果表不存在,您可以使用createDisposition创建表。

我的问题是,insertAll有这样的东西吗?如果没有,为什么不呢!哈哈。

1 个答案:

答案 0 :(得分:1)

查看templateSuffix属性以获取insertAll
它符合您的期望

来自文档

  

[Experimental]如果指定,则将目标表视为基础   模板,并将行插入名为的实例表中   “{目的地} {} templateSuffix”。 BigQuery将管理创建   实例表,使用基本模板表的模式。看到   https://cloud.google.com/bigquery/streaming-data-into-bigquery#template-tables   用于处理模板表时的注意事项。

因此,请求应如下所示

var request = {
  projectId: "yourProject",
  datasetId: "yourDataset",
  tableId: "yourTable",
  resource: {
    "kind": "bigquery#tableDataInsertAllRequest",
    "skipInvalidRows": true,
    "ignoreUnknownValues": true,
    "templateSuffix": "YourTableSuffix",
    "rows": ...
  },

结果目标表 - yourTableYourTableSuffix