【发布时间】:2015-04-28 03:50:28
【问题描述】:
我在 BigQuery 中有一个数据集。该数据集包含多个表。
我正在使用 BigQuery API 以编程方式执行以下步骤:
查询数据集中的表 - 由于我的响应太大,我启用 allowLargeResults 参数并将我的响应转移到目标表。
然后我将数据从目标表导出到 GCS 存储桶。
要求:
假设我的流程在第 2 步失败,我想重新运行此步骤。
但在我重新运行之前,我想检查/验证名为“xyz”的特定目标表是否已存在于数据集中。
如果存在,我想重新运行第 2 步。
如果不存在,我想做foo。
我该怎么做?
提前致谢。
【问题讨论】:
-
你有没有研究过写作倾向?你实际上可以做一些叫做“write_if_empty”的事情,如果表上有任何数据,它就会阻塞。或“Write_truncate”,它将用您当前的数据替换现有数据。
-
我确实调查过了。我想在导出到 GCS 之前检查表是否存在。而不是在写入目标表之前。 write disposition 参数仅在您想要将数据加载到表中、查询表和复制现有表时可用。但不是在提取到 GCS 时。这是我的理解。我可能错了。有什么想法吗?
-
不不,你完全正确。你的问题似乎很广泛,所以我不能 100% 确定你想在哪里发现问题。好吧,我的意思是....您使用的是什么语言? :P 我们需要对这个问题有所了解才能对其进行调查。 BigQuery API 肯定有一种方法可以查看表是否存在......
-
您是否正在寻找一种 API 方式来执行此操作(例如,请参阅cloud.google.com/bigquery/docs/reference/v2/tables/get 上的 tables.get)?或者使用 bq 客户端进行测试的方法(bq show dataset.table)?
标签: google-api export google-bigquery google-cloud-storage