PCollection <entity>到PCollection <tablerows>

时间:2017-06-23 09:27:13

标签: google-app-engine google-bigquery google-cloud-dataflow

我正在尝试使用Dataflow在Datastore中查询我的所有类型,并将它们写入BigQuery中的日期分段分区。阅读部分很容易DatastoreIO.read(),并给我PCollection<Entity>

BigQuery期望PCollection<TableRow>,我可以隐式地从一个转换为另一个吗?我的数据涉及一些不可预测的字段(例如嵌入属性中的包数据),因此我无法明确转换所有字段。

此外,如果它与此事有关,我想使用SerializableFunction动态设置每个数据存储区实体的目标表(将为YYYYMMDD_kind)

1 个答案:

答案 0 :(得分:2)

您必须自己将PCollection<Entity>转换为PCollection<TableRow>BigQueryIO.write()的API需要TableRow。要转换它们,您需要在ParDo的顶部应用PCollection<Entity>

作为旁注,您还可以在不使用Dataflow的情况下将数据存储区备份直接加载到BigQuery中。请参阅here