Python 3.x 当查询包含来自多个数据库的表的联接时,如何在boto3中设置QueryExecutionContext?
我使用python3中的Boto3包来执行Athena查询。从中,我了解到我可以指定查询执行上下文,即必须在其下执行查询的数据库名称。使用正确指定的查询执行上下文,我们可以从查询中省略完全限定的表名(Python 3.x 当查询包含来自多个数据库的表的联接时,如何在boto3中设置QueryExecutionContext?,python-3.x,amazon-web-services,boto3,amazon-athena,Python 3.x,Amazon Web Services,Boto3,Amazon Athena,我使用python3中的Boto3包来执行Athena查询。从中,我了解到我可以指定查询执行上下文,即必须在其下执行查询的数据库名称。使用正确指定的查询执行上下文,我们可以从查询中省略完全限定的表名(db\u name.table\u name),而只使用表名 因此,查询SELECT*FROM db1.tab1可以通过QueryExecutionContext:{'database':'db1'}转换为SELECT*FROM tab1 问题:我需要从python对Athena运行一个查询,该查询
db\u name.table\u name
),而只使用表名
因此,查询SELECT*FROM db1.tab1
可以通过QueryExecutionContext:{'database':'db1'}
转换为SELECT*FROM tab1
问题:我需要从python对Athena运行一个查询,该查询类似于
SELECT *
FROM ((SELECT *
FROM db1.tab1 AS Temp1)
INNER JOIN (SELECT *
FROM db2.tab2 AS Temp2)
ON temp1.id = temp2.id)
正如我们所看到的,该查询连接了来自两个不同数据库的表。如果我想从这个查询中省略数据库名称,如何指定
QueryExecutionContext
?只接受一个数据库作为参数。因此,如果要跨多个数据库运行查询,则必须将完全限定的表名与数据库一起传递。QueryExecutionContext只接受一个数据库。因此,如果要跨多个数据库运行查询,则必须传递完全限定的表名以及database@bdcloud这就是我最后做的。您应该将此作为答案发布。c完成后。请将其标记为已回答!!