Java Google云数据流用户定义MySQL源

Java Google云数据流用户定义MySQL源,java,mysql,google-cloud-dataflow,Java,Mysql,Google Cloud Dataflow,我正在编写一个Google数据流管道,作为源之一,我需要一个通过查询的MySQL结果集。接下来有几个问题: 作为管道中的一个步骤,从MySQL中提取数据的正确方法是什么?这可以简单地使用JDBC在线完成吗 如果我确实需要实现“用户定义的数据格式”,将MySQL包装为源文件,有人知道是否已经存在实现,我不需要重新发明轮子吗?(别误会,我很喜欢写这篇文章,但我想这是使用MySQL作为源代码的常见场景) 谢谢大家 此时,云数据流不提供MySQL输入源 实现对这一点的支持的首选方法是实现一个能够处理My

我正在编写一个Google数据流管道,作为源之一,我需要一个通过查询的MySQL结果集。接下来有几个问题:

  • 作为管道中的一个步骤,从MySQL中提取数据的正确方法是什么?这可以简单地使用JDBC在线完成吗
  • 如果我确实需要实现“用户定义的数据格式”,将MySQL包装为源文件,有人知道是否已经存在实现,我不需要重新发明轮子吗?(别误会,我很喜欢写这篇文章,但我想这是使用MySQL作为源代码的常见场景)

  • 谢谢大家

    此时,云数据流不提供MySQL输入源

    实现对这一点的支持的首选方法是实现一个能够处理MySQL查询的

    另一种方法是在主程序中执行查询,并将查询结果转移到GCS中的临时位置,使用数据流处理结果,并在临时位置删除文件


    希望这对您有所帮助

    您能否在上面的示例中澄清GroupByKey的需要?由于前面的ParDo(ReadQueryResults)返回主键上的行key'd,GroupByKey是否会为结果集的每一行创建一个组?即使没有GroupByKey,后续的ParDo(重组)也会并行化每行的处理,对吗?

    刚刚添加了一个JDBC连接器。请参阅。

    这就是问题所在-如果没有GroupByKey,后续的ParDo很可能无法并行处理-它们可能会与“ReadQueryResults”ParDo融合在一起,因为数据流优化器假定,通常情况下,ParDo不会在每个元素中返回那么多结果,将相邻的ParDo融合在一起是最有效的。插入一个人工GroupByKey从本质上防止了这种融合。