ApacheBeam中普通JDBC和JDBCIO连接器之间的区别?
作为apachebeam编程模型的初学者,我想知道ApacheBeam中普通JDBC和JDBCIO连接器之间的区别?,jdbc,google-cloud-dataflow,apache-beam,Jdbc,Google Cloud Dataflow,Apache Beam,作为apachebeam编程模型的初学者,我想知道JDBC和jdbcio之间的区别是什么。我已经开发了一个简单的数据流,它涉及到正常的JDBC连接,并且工作正常 是否必须在JDBC上使用jdbcio?如果是,当我们使用普通的JDBC代码时,我们会遇到什么问题?在Beam管道中,有各种各样的选项用于读取和写入外部数据源。最常用的方法是利用Beam社区(内置I/O转换)构建的内置接收器和源。这些连接器通常会在其上花费大量的开发工作,并经过生产加固。例如,BigQueryIO已在生产中使用多年,并在整
JDBC
和jdbcio
之间的区别是什么。我已经开发了一个简单的数据流,它涉及到正常的JDBC
连接,并且工作正常
是否必须在
JDBC
上使用jdbcio
?如果是,当我们使用普通的JDBC
代码时,我们会遇到什么问题?在Beam管道中,有各种各样的选项用于读取和写入外部数据源。最常用的方法是利用Beam社区(内置I/O转换)构建的内置接收器和源。这些连接器通常会在其上花费大量的开发工作,并经过生产加固。例如,BigQueryIO已在生产中使用多年,并在整个生产过程中不断发展。因此,一般建议是尽可能使用标准的汇和源
然而,并非所有与外部数据源的交互都应该通过源和汇进行,在一些用例中,从DoFn到外部源的手动通信是正确的路径。下面有几个例子(当然还有更多!)
- 数据源没有接收器/源,或者存在一个源 但它还不支持满足您需求的所有开关/模式等。 当然,您可以始终增强现有的接收器/源,或者 不存在从头构建新的I/O连接器,如果 如果能将此回馈给社区,那将是非常棒的:)
- 您正在丰富流经流媒体管道的元素 使用大型数据集中的一小部分数据。例如,让我们 如果您的处理事件来自销售订单,您将 希望为每个项目添加信息。项的名称的信息 生活在大型多TB存储中,但平均而言,您只能访问 小部分数据用作查找键。在这个例子中,它使 通过对数据进行外部调用来丰富每个元素 存储在一个DoFn中。而不是将中的所有数据作为 源代码,并在管道内执行联接操作
- DoFn.StartBundle
- DoFn.FinishBundle
- 启动\u bundle()
- 完成(u bundle)