從 Amazon Redshift 遷移結構定義與資料
本文件說明如何使用公開 IP 將資料從 Amazon Redshift 遷移至 BigQuery。
您可以使用 BigQuery 資料移轉服務,將 Amazon Redshift 資料倉儲中的資料複製到 BigQuery。這項服務會運用 GKE 中的遷移代理程式,並觸發從 Amazon Redshift 到 Amazon S3 值區中暫存區的上傳作業。接著,BigQuery 資料移轉服務就會將資料從 Amazon S3 值區移轉至 BigQuery。
下圖顯示遷移期間 Amazon Redshift 資料倉儲與 BigQuery 之間的整體資料流動情況。
如果您想透過私人 IP 位址,從 Amazon Redshift 執行個體透過虛擬私人雲端 (VPC) 轉移資料,請參閱「使用虛擬私人雲端遷移 Amazon Redshift 資料」。
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and BigQuery Data Transfer Service APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and BigQuery Data Transfer Service APIs.
請確認建立移轉作業的使用者在包含移轉工作的專案中具有下列權限:
- 用於建立移轉作業的
bigquery.transfers.update
權限 - 目標資料集的
bigquery.datasets.get
和bigquery.datasets.update
權限
roles/bigquery.admin
預先定義的 Identity and Access Management (IAM) 角色具備bigquery.transfers.update
、bigquery.datasets.update
和bigquery.datasets.get
權限。如要進一步瞭解 BigQuery 資料移轉服務中的身分與存取權管理角色,請參閱「存取權控管」一文。- 用於建立移轉作業的
參閱 Amazon S3 的說明文件,以確保您已設定啟用移轉所需的任何權限。Amazon S3 來源資料至少必須套用 AWS 代管政策
AmazonS3ReadOnlyAccess
。建議您建立專用的 Amazon 身分與存取權管理 (IAM) 使用者,並授予該使用者 Amazon Redshift 的唯讀權限,以及 Amazon S3 的讀取與寫入權限。如要完成這個步驟,您可以套用下列政策:
建立 Amazon IAM 使用者存取金鑰組。
- 請按照這篇文章 的操作說明取得 JDBC 網址。
- 取得具備 Amazon Redshift 資料庫適當權限的使用者使用者名稱和密碼。
- 請按照「授予 Amazon S3 值區的存取權」一節的操作說明,取得 AWS 存取金鑰組。
- 取得要用於轉移作業的 Amazon S3 值區 URI。建議您為這個值區設定生命週期政策,避免產生不必要的費用。建議的到期時間為 24 小時,以便有足夠的時間將所有資料移轉到 BigQuery。
前往 Google Cloud 控制台的「BigQuery」頁面。
按一下「資料移轉」。
按一下「建立轉移作業」。
在「Source type」部分,從「Source」清單中選取「Migration: 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 叢集。
- 在「資料庫的使用者名稱」部分,輸入要遷移的 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
的資料表。.*
會比對所有資料表。
將這個欄位留空,用以遷移所有來自指定結構定義的資料表。
將「VPC 和保留的 IP 範圍」欄位留空。
在「Service Account」(服務帳戶) 選單,選取與貴組織Google Cloud 專案相關聯的服務帳戶。您可以將服務帳戶與移轉作業建立關聯,這樣就不需要使用者憑證。如要進一步瞭解如何搭配使用服務帳戶與資料移轉作業,請參閱使用服務帳戶的相關說明。
選用:在「Notification options」(通知選項) 專區,執行下列操作:
按一下 [儲存]。
Google Cloud 控制台會顯示移轉設定的所有詳細資料,包括此移轉作業的「Resource name」(資源名稱)。
--project_id
--data_source
--target_dataset
--display_name
--params
- project_id 是您的 Google Cloud 專案 ID。如果未指定
--project_id
,系統會使用預設專案。 - data_source 是資料來源:
redshift
。 - dataset 是移轉作業設定的 BigQuery 目標資料集。
- name 是移轉設定的顯示名稱。移轉作業名稱可以是任意值,日後需要修改移轉作業時,能夠據此識別即可。
- service_account:用於驗證轉移作業的服務帳戶名稱。服務帳戶應由用於建立移轉作業的相同
project_id
擁有,且應具備所有必要權限。 - parameters 含有已建立移轉設定的 JSON 格式參數。例如:
--params='{"param":"param_value"}'
。 jdbc_url
:JDBC 連線網址可用來找出 Amazon Redshift 叢集的位置。database_username
:用來存取資料庫以卸載指定資料表的使用者名稱。database_password
:與使用者名稱搭配使用的密碼,可存取資料庫以卸載指定資料表。access_key_id
:簽署向 AWS 發出要求的存取金鑰 ID。secret_access_key
:與存取金鑰 ID 搭配使用的私密存取金鑰,密鑰可簽署向 AWS 發出的要求。s3_bucket
:以「s3://」開頭的 Amazon S3 URI,並且可指定用於暫存檔案的前置字串。redshift_schema
:包含所有要遷移之資料表的 Amazon Redshift 結構定義。table_name_patterns
:以分號 (;) 分隔的資料表名稱格式。資料表格式是要遷移之資料表的規則運算式。如未提供,則系統會遷移資料庫結構定義下的所有資料表。- 瞭解如何使用虛擬私人雲端遷移 Amazon Redshift 私人執行個體。
- 進一步瞭解 BigQuery 資料移轉服務。
- 使用批次 SQL 翻譯遷移 SQL 程式碼。
設定必要權限
建立 Amazon Redshift 移轉作業之前:
建立資料集
建立 BigQuery 資料集來儲存您的資料。您無須建立任何資料表。
授予 Amazon Redshift 叢集的存取權
請按照「為 SQL 用戶端設定入站規則」一文中的操作說明,將下列 IP 位址加入許可清單。您可以將與資料集位置相對應的 IP 位址加入許可清單,也可以將下表中的所有 IP 位址加入許可清單。這些 Google 擁有的 IP 位址會保留給 Amazon Redshift 資料遷移作業使用。
地區位置
地區說明 | 地區名稱 | IP 位址 | |
---|---|---|---|
美洲 | |||
俄亥俄州哥倫布 | us-east5 |
34.162.72.184 34.162.173.185 34.162.205.205 34.162.81.45 34.162.182.149 34.162.59.92 34.162.157.190 34.162.191.145 |
|
達拉斯 | us-south1 |
34.174.172.89 34.174.40.67 34.174.5.11 34.174.96.109 34.174.148.99 34.174.176.19 34.174.253.135 34.174.129.163 |
|
愛荷華州 | us-central1 |
34.121.70.114 34.71.81.17 34.122.223.84 34.121.145.212 35.232.1.105 35.202.145.227 35.226.82.216 35.225.241.102 |
|
拉斯維加斯 | us-west4 |
34.125.53.201 34.125.69.174 34.125.159.85 34.125.152.1 34.125.195.166 34.125.50.249 34.125.68.55 34.125.91.116 |
|
洛杉磯 | us-west2 |
35.236.59.167 34.94.132.139 34.94.207.21 34.94.81.187 34.94.88.122 35.235.101.187 34.94.238.66 34.94.195.77 |
|
墨西哥 | northamerica-south1 |
34.51.6.35 34.51.7.113 34.51.12.83 34.51.10.94 34.51.11.219 34.51.11.52 34.51.2.114 34.51.15.251 |
|
蒙特婁 | northamerica-northeast1 |
34.95.20.253 35.203.31.219 34.95.22.233 34.95.27.99 35.203.12.23 35.203.39.46 35.203.116.49 35.203.104.223 |
|
北維吉尼亞州 | us-east4 |
35.245.95.250 35.245.126.228 35.236.225.172 35.245.86.140 35.199.31.35 35.199.19.115 35.230.167.48 35.245.128.132 35.245.111.126 35.236.209.21 |
|
奧勒岡州 | us-west1 |
35.197.117.207 35.199.178.12 35.197.86.233 34.82.155.140 35.247.28.48 35.247.31.246 35.247.106.13 34.105.85.54 |
|
鹽湖城 | us-west3 |
34.106.37.58 34.106.85.113 34.106.28.153 34.106.64.121 34.106.246.131 34.106.56.150 34.106.41.31 34.106.182.92 |
|
聖保羅 | southamerica-east1 |
35.199.88.228 34.95.169.140 35.198.53.30 34.95.144.215 35.247.250.120 35.247.255.158 34.95.231.121 35.198.8.157 |
|
聖地亞哥 | southamerica-west1 |
34.176.188.48 34.176.38.192 34.176.205.134 34.176.102.161 34.176.197.198 34.176.223.236 34.176.47.188 34.176.14.80 |
|
南卡羅來納州 | us-east1 |
35.196.207.183 35.237.231.98 104.196.102.222 35.231.13.201 34.75.129.215 34.75.127.9 35.229.36.137 35.237.91.139 |
|
多倫多 | northamerica-northeast2 |
34.124.116.108 34.124.116.107 34.124.116.102 34.124.116.80 34.124.116.72 34.124.116.85 34.124.116.20 34.124.116.68 |
|
歐洲 | |||
比利時 | europe-west1 |
35.240.36.149 35.205.171.56 34.76.234.4 35.205.38.234 34.77.237.73 35.195.107.238 35.195.52.87 34.76.102.189 |
|
柏林 | europe-west10 |
34.32.28.80 34.32.31.206 34.32.19.49 34.32.33.71 34.32.15.174 34.32.23.7 34.32.1.208 34.32.8.3 |
|
芬蘭 | europe-north1 |
35.228.35.94 35.228.183.156 35.228.211.18 35.228.146.84 35.228.103.114 35.228.53.184 35.228.203.85 35.228.183.138 |
|
法蘭克福 | europe-west3 |
35.246.153.144 35.198.80.78 35.246.181.106 35.246.211.135 34.89.165.108 35.198.68.187 35.242.223.6 34.89.137.180 |
|
倫敦 | europe-west2 |
35.189.119.113 35.189.101.107 35.189.69.131 35.197.205.93 35.189.121.178 35.189.121.41 35.189.85.30 35.197.195.192 |
|
馬德里 | europe-southwest1 |
34.175.99.115 34.175.186.237 34.175.39.130 34.175.135.49 34.175.1.49 34.175.95.94 34.175.102.118 34.175.166.114 |
|
米蘭 | europe-west8 |
34.154.183.149 34.154.40.104 34.154.59.51 34.154.86.2 34.154.182.20 34.154.127.144 34.154.201.251 34.154.0.104 |
|
荷蘭 | europe-west4 |
35.204.237.173 35.204.18.163 34.91.86.224 34.90.184.136 34.91.115.67 34.90.218.6 34.91.147.143 34.91.253.1 |
|
巴黎 | europe-west9 |
34.163.76.229 34.163.153.68 34.155.181.30 34.155.85.234 34.155.230.192 34.155.175.220 34.163.68.177 34.163.157.151 |
|
斯德哥爾摩 | europe-north2 |
34.51.133.48 34.51.136.177 34.51.128.140 34.51.141.252 34.51.139.127 34.51.142.55 34.51.134.218 34.51.138.9 |
|
杜林 | europe-west12 |
34.17.15.186 34.17.44.123 34.17.41.160 34.17.47.82 34.17.43.109 34.17.38.236 34.17.34.223 34.17.16.47 |
|
華沙 | europe-central2 |
34.118.72.8 34.118.45.245 34.118.69.169 34.116.244.189 34.116.170.150 34.118.97.148 34.116.148.164 34.116.168.127 |
|
蘇黎世 | europe-west6 |
34.65.205.160 34.65.121.140 34.65.196.143 34.65.9.133 34.65.156.193 34.65.216.124 34.65.233.83 34.65.168.250 |
|
亞太地區 | |||
德里 | asia-south2 |
34.126.212.96 34.126.212.85 34.126.208.224 34.126.212.94 34.126.208.226 34.126.212.232 34.126.212.93 34.126.212.206 |
|
香港 | asia-east2 |
34.92.245.180 35.241.116.105 35.220.240.216 35.220.188.244 34.92.196.78 34.92.165.209 35.220.193.228 34.96.153.178 |
|
雅加達 | asia-southeast2 |
34.101.79.105 34.101.129.32 34.101.244.197 34.101.100.180 34.101.109.205 34.101.185.189 34.101.179.27 34.101.197.251 |
|
墨爾本 | australia-southeast2 |
34.126.196.95 34.126.196.106 34.126.196.126 34.126.196.96 34.126.196.112 34.126.196.99 34.126.196.76 34.126.196.68 |
|
孟買 | asia-south1 |
34.93.67.112 35.244.0.1 35.200.245.13 35.200.203.161 34.93.209.130 34.93.120.224 35.244.10.12 35.200.186.100 |
|
大阪 | asia-northeast2 |
34.97.94.51 34.97.118.176 34.97.63.76 34.97.159.156 34.97.113.218 34.97.4.108 34.97.119.140 34.97.30.191 |
|
首爾 | asia-northeast3 |
34.64.152.215 34.64.140.241 34.64.133.199 34.64.174.192 34.64.145.219 34.64.136.56 34.64.247.158 34.64.135.220 |
|
新加坡 | asia-southeast1 |
34.87.12.235 34.87.63.5 34.87.91.51 35.198.197.191 35.240.253.175 35.247.165.193 35.247.181.82 35.247.189.103 |
|
雪梨 | australia-southeast1 |
35.189.33.150 35.189.38.5 35.189.29.88 35.189.22.179 35.189.20.163 35.189.29.83 35.189.31.141 35.189.14.219 |
|
台灣 | asia-east1 |
35.221.201.20 35.194.177.253 34.80.17.79 34.80.178.20 34.80.174.198 35.201.132.11 35.201.223.177 35.229.251.28 35.185.155.147 35.194.232.172 |
|
東京 | asia-northeast1 |
34.85.11.246 34.85.30.58 34.85.8.125 34.85.38.59 34.85.31.67 34.85.36.143 34.85.32.222 34.85.18.128 34.85.23.202 34.85.35.192 |
|
中東地區 | |||
達曼 | me-central2 |
34.166.20.177 34.166.10.104 34.166.21.128 34.166.19.184 34.166.20.83 34.166.18.138 34.166.18.48 34.166.23.171 |
|
杜哈 | me-central1 |
34.18.48.121 34.18.25.208 34.18.38.183 34.18.33.25 34.18.21.203 34.18.21.80 34.18.36.126 34.18.23.252 |
|
特拉維夫市 | me-west1 |
34.165.184.115 34.165.110.74 34.165.174.16 34.165.28.235 34.165.170.172 34.165.187.98 34.165.85.64 34.165.245.97 |
|
非洲 | |||
約翰尼斯堡 | africa-south1 |
34.35.11.24 34.35.10.66 34.35.8.32 34.35.3.248 34.35.2.113 34.35.5.61 34.35.7.53 34.35.3.17 |
多地區位置
多地區說明 | 多地區名稱 | IP 位址 |
---|---|---|
歐盟成員國內的資料中心1 | EU |
34.76.156.158 34.76.156.172 34.76.136.146 34.76.1.29 34.76.156.232 34.76.156.81 34.76.156.246 34.76.102.206 34.76.129.246 34.76.121.168 |
美國資料中心 | US |
35.185.196.212 35.197.102.120 35.185.224.10 35.185.228.170 35.197.5.235 35.185.206.139 35.197.67.234 35.197.38.65 35.185.202.229 35.185.200.120 |
1 位於 EU
多地區的資料不會儲存在 europe-west2
(倫敦) 或 europe-west6
(蘇黎世) 資料中心。
授予 Amazon S3 值區的存取權
您必須具備 Amazon S3 值區,做為暫存區域,藉此將 Amazon Redshift 資料移轉到 BigQuery。如需詳細操作說明,請參閱 Amazon 說明文件。
使用獨立遷移佇列設定工作負載控制
您可以視需要定義用於遷移目的的 Amazon Redshift 佇列,以限制及分離用於遷移作業的資源。您可以使用最大並行查詢次數來設定這個遷移佇列。然後,您可以在某個遷移使用者群組與佇列之間建立關聯,並在設定遷移作業以移轉資料到 BigQuery 時使用這些憑證。移轉服務只具備遷移佇列的存取權。
收集轉移資訊
收集使用 BigQuery 資料移轉服務設定遷移作業所需的資訊:
評估資料
在資料移轉過程中,BigQuery 資料移轉服務會將 Amazon Redshift 中的資料以 CSV 檔案格式寫入 Cloud Storage。如果這些檔案包含 ASCII 0 字元,就無法載入至 BigQuery。建議您評估資料,判斷是否有問題。如果是,您可以將資料匯出為 Parquet 檔案,然後使用 BigQuery 資料移轉服務匯入這些檔案,藉此解決問題。如需更多資訊,請參閱「Amazon S3 移轉作業總覽」。
設定 Amazon Redshift 轉移作業
選取下列選項之一:
主控台
bq
輸入 bq mk
指令並加上移轉建立作業旗標 --transfer_config
。還需加上以下旗標:
bq mk \ --transfer_config \ --project_id=project_id \ --data_source=data_source \ --target_dataset=dataset \ --display_name=name \ --service_account_name=service_account \ --params='parameters'
其中:
Amazon Redshift 移轉設定所需的參數如下:
舉例來說,下列指令會建立名稱為 My Transfer
的 Amazon Redshift 移轉作業,其中目標資料集的名稱為 mydataset
,專案的 ID 為 google.com:myproject
。
bq mk \
--transfer_config \
--project_id=myproject \
--data_source=redshift \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"jdbc_url":"jdbc:postgresql://test-example-instance.sample.us-west-1.redshift.amazonaws.com:5439/dbname","database_username":"my_username","database_password":"1234567890","access_key_id":"A1B2C3D4E5F6G7H8I9J0","secret_access_key":"1234567890123456789012345678901234567890","s3_bucket":"s3://bucket/prefix","redshift_schema":"public","table_name_patterns":"table_name"}'
API
請使用 projects.locations.transferConfigs.create
方法,並提供 TransferConfig
資源的執行個體。
Java
在嘗試這個範例之前,請先按照 BigQuery 快速入門:使用用戶端程式庫中的 Java 設定說明進行操作。詳情請參閱 BigQuery Java API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
配額與限制
每個資料表的每個載入工作,BigQuery 的載入配額皆為 15 TB。Amazon Redshift 會在內部壓縮資料表資料,因此匯出的資料表大小將大於 Amazon Redshift 回報的資料表大小。如果您計劃遷移大於 15 TB 的資料表,請先與 Cloud Customer Care 團隊聯絡。
使用這項服務可能必須支付其他產品 (非 Google) 的使用費用。詳情請參閱 Amazon Redshift 和 Amazon S3 定價頁面。
由於 Amazon S3 的一致性模型,您可以在移轉到 BigQuery 時不納入部分檔案。