Google Cloud Dataflow - Java SDK 与 Python SDK
Google Cloud Dataflow - Java SDK vs Python SDK
我开始使用 Google Cloud Dataflow 进行批处理和流处理。正在开发的作业主要用于从不同来源(MySQL、Kafka 和文件系统)摄取数据,清理它们,进行一些流式处理和 bath 聚合,然后写回 Google 云存储。
鉴于这些任务,对于使用 Java SDK 或 Python SDK 是否有任何建议写作业?它们之间在性能和功能方面有什么显着差异吗?
例如,我注意到对于Java SDK,可以使用内置的I/O PTransform
JdbcIO。这个PTransform
在JDBC上读写数据,这个在PythonSDK中是不可用的(目前为止)。是否可以仅使用 Java SDK 创建一个从 MySQL 数据库读取并写入 Google Cloud Storage 的管道,而对于其他管道使用不同的 SDK(例如 Python)?
提前感谢您的宝贵时间!
我会继续使用 java
SDK,因为 java 中的功能和外部连接器更多。但是python
SDK也在迎头赶上。
就性能考虑而言,当我们将 Beam 作业提交到数据流时,作业步骤将在 API 调用中发送到 google 云数据流。因此,我认为就数据流而言,性能没有显着差异
我一直在使用 Python SDK 进行开发。虽然在 Java SDK 中有内置的 PTransform
JdbcIO,但也有一些社区包,例如 beam-nuggets
可用于 python
,可用于读取和写入 MySQL
。这就是我一直用来开发 ETL 的东西。
link为包:https://pypi.org/project/beam-nuggets/
总体而言,Java SDK 中的功能更多。
如果你更习惯python
,你绝对可以在java
中写一些需要使用某些独特功能的管道,其余的在python
中。
我开始使用 Google Cloud Dataflow 进行批处理和流处理。正在开发的作业主要用于从不同来源(MySQL、Kafka 和文件系统)摄取数据,清理它们,进行一些流式处理和 bath 聚合,然后写回 Google 云存储。
鉴于这些任务,对于使用 Java SDK 或 Python SDK 是否有任何建议写作业?它们之间在性能和功能方面有什么显着差异吗?
例如,我注意到对于Java SDK,可以使用内置的I/O PTransform
JdbcIO。这个PTransform
在JDBC上读写数据,这个在PythonSDK中是不可用的(目前为止)。是否可以仅使用 Java SDK 创建一个从 MySQL 数据库读取并写入 Google Cloud Storage 的管道,而对于其他管道使用不同的 SDK(例如 Python)?
提前感谢您的宝贵时间!
我会继续使用 java
SDK,因为 java 中的功能和外部连接器更多。但是python
SDK也在迎头赶上。
就性能考虑而言,当我们将 Beam 作业提交到数据流时,作业步骤将在 API 调用中发送到 google 云数据流。因此,我认为就数据流而言,性能没有显着差异
我一直在使用 Python SDK 进行开发。虽然在 Java SDK 中有内置的 PTransform
JdbcIO,但也有一些社区包,例如 beam-nuggets
可用于 python
,可用于读取和写入 MySQL
。这就是我一直用来开发 ETL 的东西。
link为包:https://pypi.org/project/beam-nuggets/
总体而言,Java SDK 中的功能更多。
如果你更习惯python
,你绝对可以在java
中写一些需要使用某些独特功能的管道,其余的在python
中。