我开始使用进行批处理和流处理。正在开发的工作主要用于摄取来自不同来源(MySQL、Kafka和文件系统)的数据,清理它们,进行流和沐浴聚合,并将其写回。
考虑到这些任务,是否有使用Java 或Python 编写作业的建议?他们之间在性能和功能方面有什么明显的差异吗?
例如,我注意到对于Java,内置的I/O PTransform JdbcIO是可用的。这个PTransform在JDBC上读写数据,这在Python中是不可用的(到目前为止)。是否可能只使用Java创建从MySQL数据库读取并写入的管道,而对于其他管道则使用不同的SDK (例如Python)?
提前谢谢你的时间!
发布于 2020-07-15 21:22:21
我一直在使用Python进行开发。虽然Java中有内置的PTransform JdbcIO,但是有一些社区包,比如beam-nuggets可用于python,可以用于从MySQL中读取和写入MySQL。这就是我用来开发ETLs的东西。
包的链接:https://pypi.org/project/beam-nuggets/
总的来说,Java中有更多的特性。
如果您对python更满意,那么您肯定可以用java编写一些需要使用某些独特特性的管道,其余的则用python编写。
发布于 2020-07-07 15:32:19
我将继续使用java SDK,因为特性和外部连接器更多是用java编写的。但python SDK也在迎头赶上。
就性能考虑而言,当我们向数据流提交一个beam作业时,作业步骤将在一个API调用中发送到google云数据流。因此,我认为在数据流方面没有显著的性能差异。
https://stackoverflow.com/questions/62778682
复制相似问题