import awswrangler as wr
con = wr.redshift.connect("MY_GLUE_CONNECTION")
“MY_GLUE_CONNECTION”的值是多少?
import awswrangler as wr
con = wr.redshift.connect("MY_GLUE_CONNECTION")
“MY_GLUE_CONNECTION”的值是多少?
您需要先在 AWS 控制台中创建具有唯一名称的 Glue 连接
让我们给它起个名字 test_1
然后你可以把这个名字传给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 机制。awswrangler在awswrangler.redshift.connect()
方法中使用boto3 并带有以下注释 - boto3_session (boto3.Session(), optional) – Boto3 Session。如果 boto3_session 接收无,则将使用默认的 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()