有没有办法在 Google Dataflow 中创建具有数据相关架构的 Bigquery 表?
Posted
技术标签:
【中文标题】有没有办法在 Google Dataflow 中创建具有数据相关架构的 Bigquery 表?【英文标题】:Is there a way to create a Bigquery table with data-dependent schema in Google Dataflow? 【发布时间】:2015-08-05 00:32:39 【问题描述】:我正在尝试创建一个 Bigquery 表作为数据流的一部分。这些示例显示将架构作为 TableFieldSchema 实例传递。但是,我拥有的表架构是数据相关的,因此最多可以创建为 PCollection
PCollection<TableRow> quotes = ...;
quotes.apply(BigQueryIO.Write
.named("Write")
.to("my-project:output.output_table")
.withSchema(schema)
.withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_TRUNCATE)
.withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED));
这里 schema 需要是 TableFieldSchema,但我将它作为 PCollection
【问题讨论】:
Writing different values to different BigQuery tables in Apache Beam的可能重复 【参考方案1】:很遗憾,我们没有内置 API 来写入具有动态架构的 BigQuery 表。也就是说,我们正在努力提高该领域的灵活性。目前没有估算值,但我们希望尽快得到。
同时,针对其他 *** 问题提出了一些解决方法:
How do I write to BigQuery using a schema computed during Dataflow execution? How do I write to BigQuery a schema computed during execution of the same Dataflow pipeline?【讨论】:
很抱歉在这里成为菜鸟。所以,我可以编写一个自定义源,但我仍然会得到一个 PCollectionpublic static TableFieldSchema convFn(PCollection<TableFieldSchema>) schColl)
rdd.collect()
。
自定义源/接收器还不支持侧输入,因此可能很难同时传递 PCollection以上是关于有没有办法在 Google Dataflow 中创建具有数据相关架构的 Bigquery 表?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 google-dataflow 中读取 cassandra
我可以在 BigQuery 和 Google Cloud Dataflow 中使用相同的编程语言吗?
有没有办法让 Pub/Sub -> Dataflow -> BigQuery 模板处理每条消息的多个记录?
TableRow.get上的Google Cloud Dataflow,BigQueryIO和NullPointerException