【发布时间】:2015-05-24 08:21:24
【问题描述】:
我正在使用数据流来处理存储在 GCS 中的文件并写入 Bigquery 表。以下是我的要求:
- 输入文件包含事件记录,每条记录对应一个事件类型;
- 需要按 eventType 对记录进行分区;
- 对于每个 eventType 输出/写入记录到相应的 Bigquery 表,每个 eventType 一个表。
- 每批输入文件中的事件各不相同;
我正在考虑应用诸如“groupByKey”和“partition”之类的转换,但似乎我必须在开发时知道确定分区所需的事件数量(和类型)。
你们有一个好主意来显着地进行分区吗?意思是分区可以在运行时确定?
【问题讨论】:
-
嗨!为自定义 I/O 提供更大的灵活性是目前正在开发的一项功能。随着这项工作的进展,我们将牢记这一用例。
-
谢谢马特!您认为该功能何时准备就绪?
-
我们目前无法评论具体的时间表,但这是我们正在积极努力的事情。
-
用于定义自定义输出格式的 API 已登陆 github - 请参阅 github.com/GoogleCloudPlatform/DataflowJavaSDK/blob/master/sdk/… 以及 github.com/GoogleCloudPlatform/DataflowJavaSDK/blob/master/sdk/… 和 github.com/GoogleCloudPlatform/DataflowJavaSDK/blob/master/sdk/… 等示例。这对您的用例有帮助吗?
-
@Echo,对于复活很抱歉,但是您找到了一个好的解决方案吗?特别是关于处理动态事件的部分。我们正在做类似的事情,目前我们想出的最简单和最具成本效益的方法是将文件下载到计算引擎实例,通过脚本(python)在本地对其进行分区,将分区文件上传回 GCS,然后为每个文件调用 bq 命令以导入相关的“事件”表。
标签: google-bigquery google-cloud-dataflow