我一直试图在Bonobo中加入不同的数据源(MySQL和PostgreSQL),但到目前为止,我一直在努力应对paralelism,而bonobo是否是最适合这样做的工具?
我知道我可以用这样的方法获取Bonobo数据
def get_graph(**options):
graph = bonobo.Graph()
graph.add_chain(
bonobo_sqlalchemy.Select('SELECT * FROM table', limit=100, engine='psql'),
...,
)
return graph但是,在我的情况下,atm真正需要的是用另一个表中的另一个数据加入这个获取(这可能是dask/熊猫中的一种连接)。
我知道我可以用这样的方法获取Bonobo数据
def get_graph(**options):
graph = bonobo.Graph()
graph.add_chain(
bonobo_sqlalchemy.Select('SELECT * FROM table', limit=100, engine='psql'),
fetch_mysql_and_join_data,
...,
)
return graph在我看来,这有两个问题:
在类似bonobo的并行/分布式获取中连接这样的表是没有意义的;sqlalchemy的
我怎么能让它起作用呢?我应该换个工具吗?
发布于 2020-12-07 12:38:56
我发现自己与继承的Bonobo项目有类似的问题。对我来说,有两种可能的解决办法:
bonobo_sqlalchemy提供的读取器的使用,将“mysql”和“psql”服务注入初始提取转换中,并自己进行获取/连接。第一种方法是最容易实现的,但它会产生N+1选择,而且速度可能慢得令人无法忍受。第二种方法可能具有更高的性能,但如果您正在处理足够大的数据集,它还可能要求您自己管理数据流。
https://stackoverflow.com/questions/61216921
复制相似问题