如何在 Python 中使用 JDBC 驱动程序和 Boto3 API 连接到现有的 Redshift 数据库
Posted
技术标签:
【中文标题】如何在 Python 中使用 JDBC 驱动程序和 Boto3 API 连接到现有的 Redshift 数据库【英文标题】:how to make a connection to an existing Redshift database using JDBC driver and Boto3 API in Python 【发布时间】:2019-08-31 21:52:55 【问题描述】:我不知道如何使用 Boto3 API 在 Python 中编写连接字符串,以建立与 AWS Redshift 上现有数据库的 jdbc 连接。我正在使用 MobaXterm 或 putty 进行 SSH 连接。我有一些代码来创建表,但不知道如何连接到 Redshift 中的数据库
import boto3
s3client = boto3.client('redshift', config=client-config)
CREATE TABLE pheaapoc_schema.green_201601_csv (
vendorid varchar(4),
pickup_ddatetime TIMESTAMP,
dropoff_datetime TIMESTAMP,
我需要连接到数据库“dummy”并创建一个表。
【问题讨论】:
你连接的是psycopg2
,而不是boto3。 boto3 用于与 AWS API 交互。
所以无法连接JDBC
JDBC 适用于 Java,而不适用于 Python。
好的,所以我使用 psycopg2,我仍然没有得到连接字符串的格式。我有一个端点和一个 IAM 凭证,所以 conn =psycopg2.db=endpoint + dbname+credential??请给我看一个例子怎么样,假设我的数据库在 us-east1 上是虚拟的,那大致看起来如何?
您不需要/使用 iam 凭据,您需要 redshift 凭据。不同的事。格式与 postgres 几乎相同,因此您可以查看它。并阅读此docs.aws.amazon.com/redshift/latest/mgmt/…
【参考方案1】:
TL;DR;您不需要 IAM 凭证或 boto3 即可连接到 Redshift。您需要的是 Redshift 集群的 end_point 和 redshift 凭证以及一个您可以使用的 postgres 客户端。
您可以像连接到任何数据库(如 MySQL、PostgreSQL 或 MongoDB)一样连接到 Redshift 集群。要连接到任何数据库,您需要 5 个项目。
-
主机 - (这不过是您从 AWS 控制台/Redshift 获得的终点)
用户名 -(再次参考 AWS 控制台/Redshift。查看主用户名部分)
密码 - (如果您创建了 Redshift,您应该知道主用户的密码)
端口号 -(Redshift 为 5439)
数据库 - (您最初创建的默认数据库)
如果不直观,请参考屏幕截图。
boto3 API 有什么作用?
Boto3 提供 API,您可以使用这些 API 修改您的 Redshift 集群。例如,它提供 API 来删除集群、调整集群大小或拍摄集群快照。它们不涉及任何连接。
截图供参考:
【讨论】:
以上是关于如何在 Python 中使用 JDBC 驱动程序和 Boto3 API 连接到现有的 Redshift 数据库的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 kafka 连接 JDBC sink 和 source 使用 python
在 Python 中读取 SQL 文件以通过 databricks 对 JDBC 运行