[英]Improving reading BQ data from inside of a transformation in apache beam - Python
我有一个提交给谷歌云数据流的 apache 光束管道。 我的用例如下:
我的方法效果很好,但是成本很高。 例如,对于包含 150k 条记录的表 A,它至少需要 15 天的处理时间,这在 google 数据流中有 475 名工作人员的情况下被包装成 2 小时。 我知道高成本和长执行时间的主要原因是我从转换内部为每个元素提交的 SQL 查询,因为这需要时间。
你们以前有没有遇到过这样的问题? 或者你知道我可以在我的代码中发明一个改进来降低成本吗?
一个简单优雅的侧面解决方案(我不知道我怎么想不到)
我没有将表 A 直接传递给要处理的梁作业,而是创建了一个新表 A2,它是表 A 和表 B 之间左连接的结果。
因此,我向工作人员请求的数据抛出 SQL 查询,将已经存在于 Job 的输入数据中(表 A2)
这节省了大量的计算资源
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.