在Pandas.read\u sql中使用Flask\u sqlAlchemy跨数据库引擎

在Pandas.read\u sql中使用Flask\u sqlAlchemy跨数据库引擎,pandas,flask-sqlalchemy,model-binding,Pandas,Flask Sqlalchemy,Model Binding,亲爱的 我希望执行sql查询,并在DF中获得结果。 DB是sqlite3,使用flask_sqlalchemy 我有3个数据库绑定到sqlalchemy应用程序,模型是使用bind关键字创建的。这里没有问题,在每个数据库文件中都很好地创建了表 但是,假设我有3个数据库(DB1、DB2、DB3),每个数据库中有一个表(T1、T2、T3) 默认的DB是DB1,DB2和DB3是DB1的绑定 我想执行这段代码(sql查询很愚蠢,这只是个例子): 这里的问题是con… 我见过许多使用con=db.get\

亲爱的

我希望执行sql查询,并在DF中获得结果。 DB是sqlite3,使用flask_sqlalchemy

我有3个数据库绑定到sqlalchemy应用程序,模型是使用bind关键字创建的。这里没有问题,在每个数据库文件中都很好地创建了表

但是,假设我有3个数据库(DB1、DB2、DB3),每个数据库中有一个表(T1、T2、T3)

默认的DB是DB1,DB2和DB3是DB1的绑定

我想执行这段代码(sql查询很愚蠢,这只是个例子):

这里的问题是
con…

我见过许多使用
con=db.get\u引擎(bind='***')从一个引擎切换到另一个引擎的例子。

但这假设T2和T3在同一个数据库中,事实并非如此

在这里,我在两个数据库中得到了两个表,那么如何设置与pandas的连接呢

Thks


注意:在实际系统中,一些数据库有数亿行,因此使用SQL和pandas是性能方面最有效的方法,而不是使用诸如查询、筛选等sqlalchemy对象

我不是sqlite方面的专家,但在Mysql或Postgresql中,可以通过在查询中指定数据库的名称来访问跨数据库/模式的表。 尝试:


您好,关键是这些表位于不同的数据库中,无论是sqlite还是其他DB引擎。事实上,活动表在ORACLE中,但我正在尝试在测试数据上使用sqlite开发BE和FE…啊,当你谈到数据库时,你是说SGBD?啊,好的,所以你不能用一个sql查询连接不同的SGBD。唯一的方法是使用两个sql查询和两个引擎从表1和表2加载数据,然后合并到pandas中
    sql = "select T2.ID, sum(T3.val) as val
    FROM T2 INNER JOIN T3 ON T2.ID = T3.ID
    GROUP BY T2.ID"

    df = pd.read_sql(sql, con)
sql = "select T2.ID, sum(T3.val) as val
       FROM DB2.T2 
       INNER JOIN DB3.T3 ON T2.ID = T3.ID
       GROUP BY T2.ID"