关于使用 Google DataFlow 将数据直接流式传输到 Cloud SQL 的简单查询
Simple inquiry about streaming data directly into Cloud SQL using Google DataFlow
所以我正在做一个小项目,该项目使用 Google Dataflow 和 Apache Beam 设置流式传输管道。我学习了一些教程并能够启动管道并 运行 流式传输到 BigQuery,但我想将其流式传输到完整的关系数据库(即:云 SQL)。我已经搜索过这个站点和整个 google,似乎实现该目标的最佳途径是使用 JdbcIO。我在这里有点困惑,因为当我查找有关如何执行此操作的信息时,它都是指批量写入云 SQL 而不是完全流式传输。
我的简单问题是我可以将数据直接流式传输到云端 SQL 还是我必须通过批处理发送它。
干杯!
你应该使用 JdbcIO
- 它做你想做的事,它不会假设它的输入 PCollection
是有界的还是无界的,所以你可以在任何管道中使用它梁亚军; Dataflow Streaming Runner 也不例外。
如果您的问题是通过阅读其源代码并看到单词 "batching" 提示的:它只是意味着为了提高效率,它会在每次数据库调用时写入多条记录 - 单词 [=19 的超载使用=] 可能会造成混淆,但在这里它只是意味着它试图避免为每条记录进行昂贵的数据库调用的开销。
实际上,默认情况下每次调用写入的记录数最多为 1000,但通常取决于特定运行器如何选择在特定时刻对特定数据执行特定管道,并且可以更少比那个。
所以我正在做一个小项目,该项目使用 Google Dataflow 和 Apache Beam 设置流式传输管道。我学习了一些教程并能够启动管道并 运行 流式传输到 BigQuery,但我想将其流式传输到完整的关系数据库(即:云 SQL)。我已经搜索过这个站点和整个 google,似乎实现该目标的最佳途径是使用 JdbcIO。我在这里有点困惑,因为当我查找有关如何执行此操作的信息时,它都是指批量写入云 SQL 而不是完全流式传输。
我的简单问题是我可以将数据直接流式传输到云端 SQL 还是我必须通过批处理发送它。
干杯!
你应该使用 JdbcIO
- 它做你想做的事,它不会假设它的输入 PCollection
是有界的还是无界的,所以你可以在任何管道中使用它梁亚军; Dataflow Streaming Runner 也不例外。
如果您的问题是通过阅读其源代码并看到单词 "batching" 提示的:它只是意味着为了提高效率,它会在每次数据库调用时写入多条记录 - 单词 [=19 的超载使用=] 可能会造成混淆,但在这里它只是意味着它试图避免为每条记录进行昂贵的数据库调用的开销。
实际上,默认情况下每次调用写入的记录数最多为 1000,但通常取决于特定运行器如何选择在特定时刻对特定数据执行特定管道,并且可以更少比那个。