Google Cloud Dataflow 用户定义的 MySQL 来源
Google Cloud Dataflow User-Defined MySQL Source
我正在编写一个 Google 数据流管道,作为 来源之一,我需要通过查询获得一个 MySQL 结果集。那么几个问题:
- 从 MySQL 中提取数据作为我管道中的一个步骤的正确方法是什么,这可以简单地使用 JDBC 在线完成吗?
- 如果我确实需要实现 "User-Defined Data Format" 包装 MySQL 作为 来源 ,有谁知道实现是否已经存在并且我不需要重新发明轮子? (不要误会我的意思,我会喜欢写它,但我想这将是使用 MySQL 作为来源的常见场景)
谢谢大家!
目前,Cloud Dataflow 不提供 MySQL 输入源。
实现对此支持的首选方法是实现可以处理 MySQL 查询的 user-defined input source。
另一种方法是在主程序中执行查询并将查询结果暂存到 GCS 中的临时位置,使用 Dataflow 处理结果,然后删除临时文件。
希望对您有所帮助
能否说明一下上面例子中GroupByKey的必要性?由于之前的 ParDo (ReadQueryResults) returns rows key'd on primary key,GroupByKey 不会实质上为结果集的每一行创建一个组吗?即使没有 GroupByKey,后续的 ParDo(重组)也会对每行进行并行处理,对吗?
一个 JDBC 连接器刚刚添加到 Apache Beam (incubating). See JdbcIO。
我正在编写一个 Google 数据流管道,作为 来源之一,我需要通过查询获得一个 MySQL 结果集。那么几个问题:
- 从 MySQL 中提取数据作为我管道中的一个步骤的正确方法是什么,这可以简单地使用 JDBC 在线完成吗?
- 如果我确实需要实现 "User-Defined Data Format" 包装 MySQL 作为 来源 ,有谁知道实现是否已经存在并且我不需要重新发明轮子? (不要误会我的意思,我会喜欢写它,但我想这将是使用 MySQL 作为来源的常见场景)
谢谢大家!
目前,Cloud Dataflow 不提供 MySQL 输入源。
实现对此支持的首选方法是实现可以处理 MySQL 查询的 user-defined input source。
另一种方法是在主程序中执行查询并将查询结果暂存到 GCS 中的临时位置,使用 Dataflow 处理结果,然后删除临时文件。
希望对您有所帮助
能否说明一下上面例子中GroupByKey的必要性?由于之前的 ParDo (ReadQueryResults) returns rows key'd on primary key,GroupByKey 不会实质上为结果集的每一行创建一个组吗?即使没有 GroupByKey,后续的 ParDo(重组)也会对每行进行并行处理,对吗?
一个 JDBC 连接器刚刚添加到 Apache Beam (incubating). See JdbcIO。