使用 Amazon Redshift 連線至叢集 RSQL - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon Redshift 連線至叢集 RSQL

使用 Amazon Redshift,您可以連線至叢集並使用 與其互動RSQL。這是命令列工具,提供安全的方式來查詢資料、建立資料庫物件和管理 Amazon Redshift 叢集。下列各節會引導您逐步使用 建立叢集連線,使用 搭配或不RSQL搭配資料來源名稱 (DSN)。

不使用 進行連線 DSN

  1. 在 Amazon Redshift 主控台上,選擇要連線到的叢集,並記下端點、資料庫和連接埠。

  2. 在命令提示字元中,使用命令列參數指定連線資訊。

    rsql -h <endpoint> -U <username> -d <databasename> -p <port>

    這裡會套用下列項目:

    • <endpoint> 是您在上一個步驟中記錄的端點

    • <username> 是具有連接到叢集之許可的使用者名稱。

    • <databasename> 是您在上一個步驟中記錄的資料庫名稱

    • <port> 是您在上一個步驟中記錄的連接埠<port> 是選用參數。

    範例如下。

    rsql -h testcluster.example.amazonaws.com -U user1 -d dev -p 5439
  3. 在密碼提示中,輸入 的密碼 <username> 使用者。

    成功連線的回應看起來如下。

    % rsql -h testcluster.example.com -d dev -U user1 -p 5349 Password for user user1: DSN-less Connected DBMS Name: Amazon Redshift Driver Name: Amazon Redshift ODBC Driver Driver Version: 1.4.27.1000 Rsql Version: 1.0.1 Redshift Version: 1.0.29306 Type "help" for help. (testcluster) user1@dev=#

用來連線的命令在 Linux、Mac OS 和 Windows 上具有相同的參數。

使用 連線 DSN

您可以使用 RSQL來簡化連線屬性的組織DSN,以連線至 Amazon Redshift。本主題包含 ODBC驅動程式安裝的說明和DSN屬性的說明。

使用與密碼的DSN連線

以下顯示使用密碼的 DSN-connection 組態範例。Mac <path to driver>的預設值OSX為 /opt/amazon/redshift/lib/libamazonredshiftodbc.dylib,Linux 的預設值為 /opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so

[testuser] Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so SSLMode=verify-ca Min_TLS=1.2 boolsaschar=0 Host=<server endpoint> Port=<database port> Database=<dbname> UID=<username> PWD=<password> sslmode=prefer

以下輸出來自成功的連線。

% rsql -D testuser DSN Connected DBMS Name: Amazon Redshift Driver Name: Amazon Redshift ODBC Driver Driver Version: 1.4.27.1000 Rsql Version: 1.0.1 Redshift Version: 1.0.29306 Type "help" for help. (testcluster) user1@dev=#

使用單一登入 DSN

您可以DSN為單一登入身分驗證設定 。以下顯示使用 Okta 單一登入的 DSN連線組態範例。

[testokta] Driver=<path to driver> SSLMode=verify-ca Min_TLS=1.2 boolsaschar=0 Host=<server endpoint> clusterid=<cluster id> region=<region name> Database=<dbname> locale=en-US iam=1 plugin_name=<plugin name> uid=<okta username> pwd=<okta password> idp_host=<idp endpoint> app_id=<app id> app_name=<app name> preferred_role=<role arn>

成功連線的範例輸出。

% rsql -D testokta DSN Connected DBMS Name: Amazon Redshift Driver Name: Amazon Redshift ODBC Driver Driver Version: 1.4.27.1000 Rsql Version: 1.0.1 Redshift Version: 1.0.29306 Type "help" for help. (testcluster) user1@dev=#

下列範例顯示使用 Azure 單一登入的 DSN連線組態範例。

[testazure] Driver=<path to driver> SSLMode=verify-ca Min_TLS=1.2 boolsaschar=0 Host=<server endpoint> Port=<cluster port> clusterid=<cluster id> region=<region name> Database=<dbname> locale=en-us iam=1 plugin_name=<plugin name> uid=<azure username> pwd=<azure password> idp_tenant=<Azure idp tenant uuid> client_id=<Azure idp client uuid> client_secret=<Azure idp client secret>

將DSN連線與IAM設定檔搭配使用

您可以使用您設定的IAM設定檔連線至 Amazon Redshift。IAM 設定檔必須具有呼叫 的權限GetClusterCredentials。下列範例顯示要使用的DSN屬性。只有在 Host 不是 Amazon 提供的端點 (例如 examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com) 時,才需要 ClusterIDRegion 參數。

[testiam] Driver=Default Host=testcluster.example.com Database=dev DbUser=testuser ClusterID=rsqltestcluster Region=us-east-1 IAM=1 Profile=default

Profile 金鑰的值是您在憑證中選擇 AWS CLI的具名設定檔。本範例示範名為 default 之設定檔的憑證。

$ cat .aws/credentials [default] aws_access_key_id = ASIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

以下示範連線回應。

$ rsql -D testiam DSN Connected DBMS Name: Amazon Redshift Driver Name: Amazon Redshift ODBC Driver Driver Version: 1.4.27.1000 Rsql Version: 1.0.1 Redshift Version: 1.0.29306 Type "help" for help. (testcluster) testuser@dev=>

使用與執行個體設定檔的DSN連線

您可以使用 Amazon EC2執行個體設定檔連線至 Amazon Redshift。執行個體設定檔必須具有呼叫 GetClusterCredentials 的權限。如需要使用的DSN屬性,請參閱以下範例。只有在 Host 不是 Amazon 提供的端點 (例如 examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com) 時,才需要 ClusterIDRegion 參數。

[testinstanceprofile] Driver=Default Host=testcluster.example.com Database=dev DbUser=testuser ClusterID=rsqltestcluster Region=us-east-1 IAM=1 Instanceprofile=1

以下示範連線回應。

$ rsql -D testinstanceprofile DSN Connected DBMS Name: Amazon Redshift Driver Name: Amazon Redshift ODBC Driver Driver Version: 1.4.27.1000 Rsql Version: 1.0.1 Redshift Version: 1.0.29306 Type "help" for help. (testcluster) testuser@dev=>

使用與預設憑證提供者鏈的DSN連線

若要使用預設憑證提供者鏈進行連線,請僅指定 IAM 屬性,Amazon Redshift RSQL將嘗試依 Java AWS SDK版 中的使用憑證中所述的順序取得 AWS 憑證。鏈結中至少要有一個提供者必須具有 GetClusterCredentials 許可。例如,這對於從ECS容器連線非常有用。

[iamcredentials] Driver=Default Host=testcluster.example.com Database=dev DbUser=testuser ClusterID=rsqltestcluster Region=us-east-1 IAM=1