使用awswrangler连接到AWS红移

2024-04-24 22:45:24 发布

您现在位置:Python中文网/ 问答频道 /正文

import awswrangler as wr
con = wr.redshift.connect("MY_GLUE_CONNECTION")

“我的胶水连接”的价值是什么


Tags: importredshiftmyasconnectconnectionwrcon
1条回答
网友
1楼 · 发布于 2024-04-24 22:45:24

首先在AWS控制台中需要具有唯一名称的to create a Glue connections

让我们给它起个名字test\u 1

enter image description here

然后你可以把这个名字传给awswrangler

import awswrangler as wr
con = wr.redshift.connect("test_1")
with con.cursor() as cursor:
    cursor.execute("SELECT 1;")
    print(cursor.fetchall())
    con.close()

如果您已安装并验证了aws cli,则它将不需要任何进一步的步骤即可工作。这里的技巧是awswrangler使用的boto3 auth mechanism。awswrangler将boto3 in ^{} method与以下注释一起使用-boto3_会话(boto3.session(),可选)–boto3会话。如果boto3_会话未收到任何消息,则将使用默认boto3会话所以,事实上,boto3_session总是被使用的,但是由于是可选的,它的使用可能会被你隐藏起来。安装aws cli后,它将检查~/.aws/credentials&&~/.aws/config并将基于这些文件进行身份验证。 另一种选择是在代码中启动boto3会话,并将其直接传递给方法

import awswrangler as wr
import boto3

session = boto3.Session(
    aws_access_key_id=ACCESS_KEY,
    aws_secret_access_key=SECRET_KEY,
    aws_session_token=SESSION_TOKEN
)

con = wr.redshift.connect("test_1", boto3_session=session)
with con.cursor() as cursor:
    cursor.execute("SELECT 1;")
    print(cursor.fetchall())
    con.close()

相关问题 更多 >