使用Google DataFlow对直接将数据流式传输到Cloud SQL的简单查询

R W*_*Wri 2 google-cloud-sql google-cloud-dataflow apache-beam

因此,我正在做一个小项目,该项目使用Google Dataflow和apache beam建立流传输管道。我完成了一些教程,能够建立流水线并在BigQuery中运行流,但是我想将其流到完整的关系数据库(即Cloud SQL)中。我已经在这个网站和整个google上进行了搜索,似乎最好的方法是使用JdbcIO。我在这里有点困惑,因为当我查找有关如何执行此操作的信息时,它们都是指批量写入云SQL而不是完全流式传输。

我的简单问题是,我可以将数据直接流到Cloud SQL中,还是必须通过批处理发送。

干杯!

jkf*_*kff 5

您应该使用JdbcIO-它可以执行您想要的操作,并且不假设其输入PCollection是有界的还是无界的,因此您可以在任何管道中使用它,也可以将其与任何Beam流道一起使用;Dataflow Streaming Runner也不例外。

如果您的问题通过阅读其源代码并看到“ batching”一词而提示:这只是为了提高效率,它会在每个数据库调用中写入多个记录-“ batch”一词的重用可能会造成混淆,但是在这里只是意味着它试图避免为每个记录进行昂贵的数据库调用的开销。

实际上,默认情况下,每次调用写入的记录数默认情况下最多为1000,但是通常取决于特定运行程序在此特定时刻如何选择对特定数据执行此特定管道,并且可以少于这个数目。