使用 awswrangler 连接到 AWS Redshift
Connect to AWS Redshift using awswrangler
import awswrangler as wr
con = wr.redshift.connect("MY_GLUE_CONNECTION")
“MY_GLUE_CONNECTION”的值是多少?
您首先需要 to create a Glue connections 在 AWS 控制台中使用唯一名称
我们给它起个名字吧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,它将无需任何进一步的步骤即可运行。这里的技巧是 boto3 auth mechanism used by awswrangler. awswrangler uses boto3 in awswrangler.redshift.connect()
method 和以下注释 - boto3_session(boto3.Session(),可选)– Boto3 会话。如果 boto3_session 收到 None. 则将使用默认的 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()
import awswrangler as wr
con = wr.redshift.connect("MY_GLUE_CONNECTION")
“MY_GLUE_CONNECTION”的值是多少?
您首先需要 to create a Glue connections 在 AWS 控制台中使用唯一名称
我们给它起个名字吧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,它将无需任何进一步的步骤即可运行。这里的技巧是 boto3 auth mechanism used by awswrangler. awswrangler uses boto3 in awswrangler.redshift.connect()
method 和以下注释 - boto3_session(boto3.Session(),可选)– Boto3 会话。如果 boto3_session 收到 None. 则将使用默认的 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()