將佈建的叢集遷移至 Amazon Redshift Serverless - Amazon Redshift

自 2025 年 11 月 1 日起,Amazon Redshift 將不再支援建立新的 Python UDFs。如果您想要使用 Python UDFs,請在該日期之前建立 UDFs。現有的 Python UDFs將繼續如常運作。如需詳細資訊,請參閱部落格文章

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

將佈建的叢集遷移至 Amazon Redshift Serverless

您可以將現有的佈建叢集遷移至 Amazon Redshift Serverless,啟用隨需和自動擴展運算資源。將佈建叢集遷移至 Amazon Redshift Serverless 可讓您僅支付使用的資源,並根據工作負載需求自動擴展容量,以最佳化成本。遷移的常見使用案例包括執行臨機操作查詢、定期資料處理任務,或在不過度佈建資源的情況下處理無法預測的工作負載。執行下列任務集,將佈建的 Amazon Redshift 叢集遷移至無伺服器部署選項。

建立已佈建叢集的快照

注意

當您將已佈建叢集的快照還原到無伺服器命名空間時,Amazon Redshift 會自動將交錯索引鍵轉換為複合索引鍵。

若要將資料從已佈建的叢集傳輸到 Amazon Redshift Serverless,請建立已佈建叢集的快照,然後在 Amazon Redshift Serverless 中還原快照。

注意

在將資料遷移到無伺服器工作群組之前,請先確保已佈建的叢集需求與您在 Amazon Redshift Serverless 中選擇的 RPU 數量相容。

建立已佈建叢集的快照

  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/redshiftv2/:// 開啟 Amazon Redshift 主控台。

  2. 在導覽選單中,選擇叢集快照,然後選擇建立快照

  3. 輸入快照定義屬性,然後選擇建立快照。可能要等一會兒才能使用此快照。

若要將已佈建叢集的快照還原至無伺服器命名空間:

  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/redshiftv2/:// 開啟 Amazon Redshift 主控台。

  2. 從 Amazon Redshift 已佈建的叢集主控台開始,然後導覽至叢集快照頁面。

  3. 選擇要使用的快照。

  4. 選擇還原快照還原至無伺服器命名空間

  5. 選擇要作為快照還原目的地的命名空間。

  6. 確認您要從快照還原。此動作會使用已佈建叢集中的資料取代無伺服器端點中的所有資料庫。選擇 Restore (還原)。

如需已佈建叢集快照的相關資訊,請參閱 Amazon Redshift 快照

使用驅動程式連線至 Amazon Redshift Serverless

若要使用您偏好的 SQL 用戶端連線至 Amazon Redshift Serverless,您可以使用 Amazon Redshift 提供的 JDBC 驅動程式 2.x 版。建議您使用最新版本的 Amazon Redshift JDBC 驅動程式 2.x 版連線至 Amazon Redshift。連接埠號碼是選用的。如果未包含,Amazon Redshift Serverless 會預設為連接埠號碼 5439。您可以變更為 5431 至 5455 或 8191 至 8215 之連接埠範圍內的其他連接埠。若要變更無伺服器端點的預設連接埠,請使用 AWS CLI 和 Amazon Redshift API。

若要尋找用於 JDBC、ODBC 或 Python 驅動程式的確切端點,請參閱 Amazon Redshift Serverless 中的工作群組組態。您也可以使用 Amazon Redshift Serverless API 操作GetWorkgroup或 AWS CLI 操作get-workgroups來傳回工作群組的相關資訊,然後進行連線。

使用密碼型驗證進行連線

若要使用具有密碼型身分驗證的 Amazon Redshift JDBC 驅動程式 2.x 版建立連線,請使用下列語法:

jdbc:redshift://<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com:5439/?username=username&password=password

若要使用具有密碼型身分驗證的 Amazon Redshift Python 連接器建立連線,請使用下列語法:

import redshift_connector with redshift_connector.connect( host='<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com', database='<database-name>', user='username', password='password' # port value of 5439 is specified by default ) as conn: pass

若要使用具有密碼型身分驗證的 Amazon Redshift ODBC 驅動程式 2.x 版建立連線,請使用下列語法:

Driver={Amazon Redshift ODBC Driver (x64)}; Server=<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com; Database=database-name; User=username; Password=password

使用 IAM 進行連線

如果您偏好使用 IAM 登入,請使用 Amazon Redshift Serverless GetCredentials API 操作。

若要使用 IAM 身分驗證,請在 後面將 iam:新增至 Amazon Redshift JDBC URLjdbc:redshift:,如下列範例所示。

jdbc:redshift:iam://<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com:5439/<database-name>

此 Amazon Redshift Serverless 端點不支援自訂 dbUser、dbGroup 或自動建立。根據預設,驅動程式會在登入時自動建立資料庫使用者。然後,它會根據 IAM 中指定的標籤,或根據身分提供者 (IdP) 中定義的群組,將使用者指派給 Amazon Redshift 資料庫角色。

請確定 AWS 您的身分具有適用於 redshift-serverless:GetCredentials動作的正確 IAM 政策。以下是 IAM 政策範例,將正確的許可授予 AWS 身分以連線至 Amazon Redshift Serverless。如需 IAM 許可的詳細資訊,請參閱《IAM 使用者指南》中的新增和移除 IAM 身分許可

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": "redshift-serverless:GetCredentials", "Resource": "*" } ] }

若要使用具有 IAM 型身分驗證的 Amazon Redshift Python 連接器建立連線,請在您的程式碼iam=true中使用 ,如下列語法所示:

import redshift_connector with redshift_connector.connect( iam=True, host='<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com', database='<database-name>' <IAM credentials> ) as conn: pass

對於 IAM credentials,您可以使用任何登入資料,包括下列項目:

  • AWS 設定檔組態。

  • IAM 登入資料 (存取金鑰 ID、私密存取金鑰,以及選用的工作階段字符)。

  • 身分提供者聯合。

若要使用 Amazon Redshift ODBC 驅動程式 2.x 版搭配 IAM 型身分驗證和設定檔建立連線,請使用下列語法:

Driver={Amazon Redshift ODBC Driver (x64)}; IAM=true; Server=<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com; Database=database-name; Profile=aws-profile-name;

透過 GetClusterCredentials API 使用 IAM 進行連線

注意

連線至 Amazon Redshift Serverless 時,建議您使用 GetCredentials API。此 API 提供全面的角色型存取控制 (RBAC) 功能,以及 中未提供的其他新功能GetClusterCredentials。我們支援 GetClusterCredentials API 來簡化從佈建叢集到無伺服器工作群組的轉換,但強烈建議GetCredentials您盡快遷移至使用 以獲得最佳相容性。

您可以使用 GetClusterCredentials API 建立與 Amazon Redshift Serverless 的連線。若要實作此身分驗證方法,請結合下列參數來修改您的用戶端或應用程式:

  • iam=true

  • clusterid/cluster_identifier=redshift-serverless-<workgroup-name>

  • region=<aws-region>

下列範例示範所有三個驅動程式的 BrowserSAML 外掛程式。這代表數種可用身分驗證方法的其中之一。這些範例可根據您的特定需求修改為使用替代身分驗證方法或外掛程式。

GetClusterCredentials 的 IAM 政策許可

以下是範例 IAM 政策,具有GetClusterCredentials與 Amazon Redshift Serverless 搭配使用所需的許可:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "redshift:CreateClusterUser", "redshift:JoinGroup", "redshift:GetClusterCredentials", "redshift:ExecuteQuery", "redshift:FetchResults", "redshift:DescribeClusters", "redshift:DescribeTable" ], "Resource": [ "arn:aws:redshift:us-east-1:<account-id>:cluster:redshift-serverless-<workgroup-name>", "arn:aws:redshift:us-east-1:<account-id>:dbgroup:redshift-serverless-<workgroup-name>", "arn:aws:redshift:us-east-1:<account-id>:dbname:redshift-serverless-<workgroup-name>/${redshift:DbName}", "arn:aws:redshift:us-east-1:<account-id>:dbuser:redshift-serverless-<workgroup-name>/${redshift:DbUser}" ] } ] }

若要使用 Amazon Redshift JDBC 驅動程式 2.x 版與 建立連線GetClusterCredentials,請使用下列語法:

jdbc:redshift:iam://redshift-serverless-<workgroup-name>:<aws-region>/<database-name>?plugin_name=com.amazon.redshift.plugin.BrowserSamlCredentialsProvider&login_url=<single sign-on URL from IdP>"

若要搭配 使用 Amazon Redshift Python 連接器建立連線GetClusterCredentials,請使用下列語法:

import redshift_connector with redshift_connector.connect( iam=True, cluster_identifier='redshift-serverless-<workgroup-name>', region='<aws-region>', database='<database-name>', credentials_provider='BrowserSamlCredentialsProvider' login_url='<single sign-on URL from IdP>' # port value of 5439 is specified by default ) as conn: pass

若要使用 Amazon Redshift ODBC 驅動程式 2.x 版與 建立連線GetClusterCredentials,請使用下列語法:

Driver= {Amazon Redshift ODBC Driver (x64)}; IAM=true; isServerless=true; ClusterId=redshift-serverless-<workgroup-name>; region=<aws-region>; plugin_name=BrowserSAML;login_url=<single sign-on URL from IdP>

以下是 Windows 中 ODBC DSN 組態的範例:

適用於 Windows 的 Amazon Redshift ODBC 驅動程式中的連線索引標籤。填寫與上述範例語法對應的欄位。

使用 Amazon Redshift Serverless SDK

如果您使用 Amazon Redshift SDK 撰寫了任何管理指令碼,則必須使用新的 Amazon Redshift Serverless SDK 來管理 Amazon Redshift Serverless 和相關資源。如需可用 API 操作的相關資訊,請參閱《Amazon Redshift Serverless API 參考指南》。