Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 当查询包含来自多个数据库的表的联接时,如何在boto3中设置QueryExecutionContext?_Python 3.x_Amazon Web Services_Boto3_Amazon Athena - Fatal编程技术网

Python 3.x 当查询包含来自多个数据库的表的联接时,如何在boto3中设置QueryExecutionContext?

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运行一个查询,该查询

我使用python3中的Boto3包来执行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完成后。请将其标记为已回答!!