使用虛擬私有雲網路遷移 Amazon Redshift 資料
本文說明如何使用 VPC,將資料從 Amazon Redshift 遷移至 BigQuery。
如果您在 AWS 中有私有 Amazon Redshift 執行個體,可以建立虛擬私有雲 (VPC) 網路,並將其連線至 Amazon Redshift VPC 網路,將資料遷移至 BigQuery。資料遷移程序如下:
- 在要用於轉移的專案中建立虛擬私有雲網路。虛擬私有雲網路不得為共用虛擬私有雲網路。
- 設定虛擬私有網路 (VPN),並連結專案虛擬私有雲網路和 Amazon Redshift 虛擬私有雲網路。
- 設定轉移作業時,請指定專案虛擬私有雲網路和保留的 IP 範圍。
- BigQuery 資料移轉服務會建立租戶專案,並附加至您用於移轉的專案。
- BigQuery 資料移轉服務會使用您指定的保留 IP 範圍,在租戶專案中建立具有一個子網路的 VPC 網路。
- BigQuery 資料移轉服務會在專案 VPC 網路和租戶專案 VPC 網路之間建立 VPC 對等互連。
- BigQuery 資料移轉服務遷移作業會在租戶專案中執行。 並觸發從 Amazon Redshift 到 Amazon S3 值區中暫存區的上傳作業。卸載速度取決於叢集設定。
- BigQuery 資料移轉服務會將資料從 Amazon S3 值區移轉到 BigQuery。
如要透過公開 IP 從 Amazon Redshift 執行個體移轉資料,請按照這些操作說明將 Amazon Redshift 資料遷移至 BigQuery。
事前準備
-
In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.
-
Verify that billing is enabled for your Trusted Cloud project.
-
Enable the BigQuery and BigQuery Data Transfer Service APIs.
確認建立移轉作業的人員在 BigQuery 中具有以下必要的身分與存取權管理 (IAM) 權限:
bigquery.transfers.update
權限,以建立移轉作業- 目標資料集的
bigquery.datasets.update
權限
role/bigquery.admin
這個預先定義的 IAM 角色具備bigquery.transfers.update
和bigquery.datasets.update
權限。如要進一步瞭解 BigQuery 資料移轉服務中的 IAM 角色,請參閱存取權控管。參閱 Amazon S3 的說明文件,以確保您已設定啟用移轉所需的任何權限。Amazon S3 來源資料至少必須套用 AWS 代管政策
AmazonS3ReadOnlyAccess
。授予適當的身分與存取權管理權限,讓設定轉移作業的使用者可以建立及刪除虛擬私有雲網路對等互連。這項服務會使用個人的 Trusted Cloud by S3NS 使用者憑證建立虛擬私有雲對等互連連線。
- 建立 VPC 對等互連的權限:
compute.networks.addPeering
- 刪除 VPC 對等互連的權限:
compute.networks.removePeering
根據預設,
roles/project.owner
、roles/project.editor
和roles/compute.networkAdmin
預先定義的 IAM 角色都具備compute.networks.addPeering
和compute.networks.removePeering
權限。- 建立 VPC 對等互連的權限:
建議您建立專用的 Amazon IAM 使用者,並授予該使用者 Amazon Redshift 的唯讀權限,以及 Amazon S3 的讀取與寫入權限。如要完成這個步驟,可以套用下列政策:
建立 Amazon IAM 使用者存取金鑰組。
- 在 Amazon Redshift 中取得 VPC 和保留的 IP 範圍。
- 請按照這些操作說明 取得 JDBC 網址。
- 取得具備適當權限的使用者名稱和密碼,以存取 Amazon Redshift 資料庫。
- 按照「授予 Amazon S3 值區的存取權」一文中的操作說明,取得 AWS 存取金鑰組。
- 取得要用於移轉作業的 Amazon S3 值區 URI。 建議您為這個值區設定生命週期政策,避免產生不必要的費用。建議的到期時間為 24 小時,以便有足夠的時間將所有資料移轉到 BigQuery。
請確認您具備啟用 VPC 對等互連的權限。詳情請參閱「設定必要權限」。
請按照本指南中的操作說明,設定 Trusted Cloud by S3NS 虛擬私有雲網路、在Trusted Cloud 專案的虛擬私有雲網路與 Amazon Redshift 虛擬私有雲網路之間設定 VPN,並啟用虛擬私有雲對等互連。
設定 Amazon Redshift,允許連線至 VPN。詳情請參閱 Amazon Redshift 叢集安全群組。
在 Trusted Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面,確認Trusted Cloud by S3NS 虛擬私有雲網路位於 Trusted Cloud by S3NS 專案中,並透過 VPN 連線至 Amazon Redshift。
主控台頁面會列出所有虛擬私有雲網路。
前往 Trusted Cloud 控制台的「BigQuery」頁面。
按一下「資料移轉」。
按一下「建立轉移作業」。
在「Source type」(來源類型) 區段中,從「Source」(來源) 清單選取「Migration: Amazon Redshift」(遷移:Amazon Redshift)。
在「Transfer config name」(轉移設定名稱) 區段中,於「Display name」(顯示名稱) 欄位輸入移轉作業的名稱,例如
My migration
。顯示名稱可以是任何容易辨識的值,方便您日後在必要時進行修改。在「Destination settings」(目的地設定) 部分,從「Dataset」(資料集) 清單中選擇您建立的資料集。
在「Data source details」(資料來源詳細資料) 部分執行下列操作:
- 在「JDBC connection url for Amazon Redshift」(Amazon Redshift 的 JDBC 連線網址) 部分,提供 JDBC 網址以存取 Amazon Redshift 叢集。
- 在「Username of your database」(資料庫的使用者名稱) 部分,輸入您要遷移的 Amazon Redshift 資料庫使用者名稱。
在「Password of your database」(資料庫密碼) 部分,輸入資料庫密碼。
在「Access key ID」(存取金鑰 ID) 和「Secret access key」(存取密鑰) 部分,輸入您在授予 S3 值區的存取權步驟所取得的存取金鑰組。
在「Amazon S3 URI」部分,輸入將做為暫存區使用的 S3 值區的 URI。
在「Amazon Redshift Schema」(Amazon Redshift 結構定義) 部分,輸入您正在遷移的 Amazon Redshift 結構定義。
在「Table name patterns」(資料表名稱格式) 部分,指定符合結構定義中資料表名稱的名稱或格式。您可以使用規則運算式,在下列表單中指定格式:
<table1Regex>;<table2Regex>
。此格式必須遵循 Java 規則運算式語法。例如:lineitem;ordertb
會比對名為lineitem
和ordertb
的資料表。.*
會比對所有資料表。
將這個欄位留白,用以遷移所有來自指定結構定義的資料表。
針對虛擬私有雲和保留的 IP 範圍,請指定虛擬私有雲網路名稱,以及要在租戶專案虛擬私有雲網路中使用的私人 IP 位址範圍。以 CIDR 區塊表示法指定 IP 位址範圍。
- 格式為
VPC_network_name:CIDR
,例如:my_vpc:10.251.1.0/24
。 - 請使用 CIDR 標記法中的標準非公開虛擬私有雲網路位址範圍,開頭為
10.x.x.x
。 - IP 範圍必須包含超過 10 個 IP 位址。
- 這個 IP 範圍不得與專案虛擬私有雲網路或 Amazon Redshift 虛擬私有雲網路中的任何子網路重疊。
- 如果為同一個 Amazon Redshift 執行個體設定多項轉移作業,請務必在每項作業中使用相同的
VPC_network_name:CIDR
值,這樣多項轉移作業就能重複使用相同的遷移基礎架構。
- 格式為
選用:在「Notification options」(通知選項) 專區,執行下列操作:
按一下 [儲存]。
Trusted Cloud 控制台會顯示移轉設定的所有詳細資料,包括此移轉作業的「Resource name」(資源名稱)。
- 瞭解標準 Amazon Redshift 遷移作業。
- 進一步瞭解 BigQuery 資料移轉服務。
- 使用批次 SQL 轉譯功能遷移 SQL 程式碼。
設定必要權限
建立 Amazon Redshift 移轉作業前,請先完成下列步驟:
建立資料集
建立 BigQuery 資料集來儲存您的資料。您無須建立任何資料表。
授予 Amazon Redshift 叢集的存取權
按照「為 SQL 用戶端設定連入規則」一文的說明,將私人 Amazon Redshift 叢集的 IP 範圍加入許可清單。在後續步驟中,設定轉移作業時,您會在這個虛擬私有雲網路中定義私人 IP 範圍。
授予 Amazon S3 值區的存取權
您必須具備 Amazon S3 值區,做為將 Amazon Redshift 資料移轉至 BigQuery 的暫存區域。如需詳細操作說明,請參閱 Amazon 說明文件。
使用獨立遷移佇列設定工作負載控制
您可以視需要定義用於遷移目的的 Amazon Redshift 佇列,以限制及分離用於遷移作業的資源。您可以使用最大並行查詢次數來設定這個遷移佇列。然後,您可以在某個遷移使用者群組與佇列之間建立關聯,並在設定遷移作業以移轉資料到 BigQuery 時使用這些憑證。移轉服務只具備遷移佇列的存取權。
收集轉移資訊
收集所需資訊,以便使用 BigQuery 資料移轉服務設定遷移作業:
評估資料
在資料移轉過程中,BigQuery 資料移轉服務會將 Amazon Redshift 的資料寫入 Cloud Storage,做為 CSV 檔案。如果這些檔案含有 ASCII 0 字元,就無法載入至 BigQuery。建議您評估資料,判斷這是否會造成問題。如果是,您可以將資料匯出至 Amazon S3 做為 Parquet 檔案,然後使用 BigQuery 資料移轉服務匯入這些檔案,藉此解決問題。詳情請參閱「Amazon S3 移轉作業總覽」。
設定虛擬私有雲網路和 VPN
設定 Amazon Redshift 移轉作業
請按照下列操作說明設定 Amazon Redshift 移轉作業:
配額與限制
使用虛擬私有雲網路遷移 Amazon Redshift 私人執行個體時,遷移代理程式會在單一租戶基礎架構上執行。由於運算資源有限,最多只能同時執行 5 個轉移作業。
每個資料表之每個載入工作的 BigQuery 載入配額皆為 15 TB。Amazon Redshift 會在內部壓縮資料表資料,因此匯出的資料表大小將大於 Amazon Redshift 回報的資料表大小。如果您計畫遷移大於 15 TB 的資料表,請先與 Cloud Customer Care 聯絡。
使用這項服務可能必須支付其他產品 (非 Google) 的使用費用。詳情請參閱 Amazon Redshift 和 Amazon S3 定價頁面。
由於 Amazon S3 的一致性模型,您可以在移轉到 BigQuery 時不納入部分檔案。