Memigrasikan skema dan data dari Amazon Redshift
Dokumen ini menjelaskan proses migrasi data dari Amazon Redshift ke BigQuery menggunakan alamat IP publik.
Anda dapat menggunakan BigQuery Data Transfer Service untuk menyalin data dari data warehouse Amazon Redshift ke BigQuery. Layanan ini melibatkan agen migrasi di GKE dan memicu operasi penghapusan muatan dari Amazon Redshift ke area staging dalam bucket Amazon S3. Kemudian, BigQuery Data Transfer Service akan mentransfer data Anda dari bucket Amazon S3 ke BigQuery.
Diagram ini menunjukkan keseluruhan aliran data antara data warehouse Amazon Redshift dan BigQuery selama migrasi.
Jika ingin mentransfer data dari instance Amazon Redshift melalui virtual private cloud (VPC) menggunakan alamat IP pribadi, lihat Memigrasikan data Amazon Redshift dengan VPC.
Sebelum memulai
- 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.
Menetapkan izin yang diperlukan
Sebelum membuat transfer Amazon Redshift:
Pastikan akun utama yang membuat transfer memiliki izin berikut dalam project yang berisi tugas transfer:
- Izin
bigquery.transfers.update
untuk membuat transfer - Izin
bigquery.datasets.get
danbigquery.datasets.update
pada set data target
Peran Identity and Access Management (IAM) yang telah ditetapkan
roles/bigquery.admin
mencakup izinbigquery.transfers.update
,bigquery.datasets.update
, danbigquery.datasets.get
. Untuk mengetahui informasi lebih lanjut tentang peran IAM dalam BigQuery Data Transfer Service, lihat Kontrol akses.- Izin
Lihat dokumentasi untuk Amazon S3 guna memastikan Anda telah mengonfigurasi izin yang diperlukan untuk mengaktifkan transfer. Setidaknya, data sumber Amazon S3 harus menerapkan kebijakan yang dikelola AWS
AmazonS3ReadOnlyAccess
pada data tersebut.
Membuat set data
Buat set data BigQuery untuk menyimpan data Anda. Anda tidak perlu membuat tabel apa pun.
Mengizinkan akses ke cluster Amazon Redshift
Ikuti petunjuk di bagian Mengonfigurasi aturan masuk untuk klien SQL guna memasukkan alamat IP berikut ke dalam daftar yang disetujui. Anda dapat memasukkan alamat IP yang sesuai dengan lokasi set data ke dalam daftar yang disetujui, atau memasukkan semua alamat IP pada tabel berikut ke dalam daftar yang disetujui. Alamat IP milik Google ini dicadangkan untuk migrasi data Amazon Redshift.
Lokasi regional
Deskripsi region | Nama region | Alamat IP | |
---|---|---|---|
Amerika | |||
Columbus, Ohio | 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 |
|
Dallas | 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 |
|
Iowa | 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 |
|
Las Vegas | 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 |
|
Los Angeles | 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 |
|
Montréal | 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 |
|
Northern Virginia | 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 |
|
Oregon | 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 |
|
Salt Lake City | 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 |
|
São Paolo | 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 |
|
Santiago | 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 |
|
South Carolina | 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 |
|
Toronto | 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 |
|
Eropa | |||
Belgia | 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 |
|
Berlin | 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 |
|
Finlandia | 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 |
|
Frankfurt | 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 |
|
London | 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 |
|
Madrid | 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 |
|
Milan | 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 |
|
Belanda | 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 |
|
Paris | 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 |
|
Turin | 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 |
|
Warsawa | 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 |
|
Zürich | 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 Pasifik | |||
Delhi | 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 |
|
Hong Kong | 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 |
|
Jakarta | 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 |
|
Melbourne | 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 |
|
Mumbai | 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 |
|
Osaka | 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 |
|
Seoul | 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 |
|
Singapura | 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 |
|
Sydney | 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 |
|
Taiwan | 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 |
|
Tokyo | 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 |
|
Timur Tengah | |||
Dammam | 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 |
|
Doha | 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 |
|
Tel Aviv | 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 |
|
Afrika | |||
Johannesburg | 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 |
Lokasi multi-regional
Deskripsi multi-region | Nama multi-region | Alamat IP |
---|---|---|
Pusat data di negara anggota Uni Eropa1 | 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 |
Pusat data di Amerika Serikat | 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 Data yang berada di multi-region EU
tidak disimpan di pusat data europe-west2
(London) atau europe-west6
(Zürich).
Memberikan akses ke bucket Amazon S3
Anda harus memiliki bucket Amazon S3 untuk digunakan sebagai area staging guna mentransfer data Amazon Redshift ke BigQuery. Untuk petunjuk selengkapnya, lihat dokumentasi Amazon.
Sebaiknya Anda membuat pengguna Amazon IAM khusus, dan memberikan akses Baca saja kepada pengguna tersebut ke Amazon Redshift serta akses Baca dan Tulis ke Amazon S3. Untuk mencapai langkah ini, Anda dapat menerapkan kebijakan berikut:
Buat pasangan kunci akses pengguna IAM Amazon.
Mengonfigurasi kontrol workload dengan antrean migrasi terpisah
Jika ingin, Anda dapat menentukan antrean Amazon Redshift untuk tujuan migrasi guna membatasi dan memisahkan resource yang digunakan untuk migrasi. Anda dapat mengonfigurasi antrean migrasi ini dengan jumlah kueri konkurensi maksimum. Selanjutnya, Anda dapat mengaitkan grup pengguna migrasi tertentu dengan antrean dan menggunakan kredensial tersebut saat menyiapkan migrasi untuk mentransfer data ke BigQuery. Layanan transfer hanya memiliki akses ke antrean migrasi.
Mengumpulkan informasi transfer
Kumpulkan informasi yang Anda perlukan untuk menyiapkan migrasi deng BigQuery Data Transfer Service:
- Ikuti petunjuk ini untuk mendapatkan URL JDBC.
- Dapatkan nama pengguna dan sandi pengguna dengan izin yang sesuai ke database Amazon Redshift Anda.
- Ikuti petunjuk di bagian Memberikan akses ke bucket Amazon S3 untuk mendapatkan pasangan kunci akses AWS.
- Dapatkan URI bucket Amazon S3 yang ingin Anda gunakan untuk transfer. Sebaiknya siapkan kebijakan Lifecycle untuk bucket ini guna menghindari biaya yang tidak perlu. Waktu habis masa berlaku yang direkomendasikan adalah 24 jam agar tersedia waktu yang cukup untuk mentransfer semua data ke BigQuery.
Menilai data Anda
Sebagai bagian dari transfer data, BigQuery Data Transfer Service menulis data dari Amazon Redshift ke Cloud Storage sebagai file CSV. Jika file ini berisi karakter 0 ASCII, file tersebut tidak dapat dimuat ke BigQuery. Anda sebaiknya menilai data untuk menentukan apakah hal ini dapat menjadi masalah. Jika demikian, Anda dapat mengatasi hal ini dengan mengekspor data Anda ke Amazon S3 sebagai file Parquet, lalu mengimpor file tersebut dengan menggunakan BigQuery Data Transfer Service. Untuk informasi selengkapnya, lihat Ringkasan transfer Amazon S3.
Menyiapkan transfer Amazon Redshift
Pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud, buka halaman BigQuery.
Klik Data transfers.
Klik Buat Transfer.
Di bagian Jenis sumber, pilih Migrasi: Amazon Redshift dari daftar Sumber.
Di bagian Transfer nama konfigurasi, masukkan nama untuk transfer, misalnya
My migration
, di kolom Nama tampilan. Nama tampilan dapat berupa nilai apa pun yang memudahkan Anda mengidentifikasi transfer jika perlu mengubahnya nanti.Di bagian Setelan tujuan, pilih set data yang Anda buat dari daftar Set data.
Di bagian Detail sumber data, lakukan hal berikut:
- Bagi URL koneksi JDBC untuk Amazon Redshift, berikan URL JDBC untuk mengakses cluster Amazon Redshift Anda.
- Untuk Nama pengguna database, masukkan nama pengguna untuk database Amazon Redshift yang ingin dimigrasikan.
Untuk Sandi database Anda, masukkan sandi database.
Untuk ID kunci akses dan Kunci akses rahasia, masukkan pasangan kunci akses yang diperoleh dari Memberikan akses ke bucket S3.
Untuk Amazon S3 URI, masukkan URI bucket S3 yang akan Anda gunakan sebagai area staging.
Untuk Amazon Redshift Schema, masukkan skema Amazon Redshift yang Anda migrasikan.
Untuk Pola nama tabel, tentukan nama atau pola untuk mencocokkan nama tabel dalam skema. Anda dapat menggunakan ekspresi reguler untuk menentukan pola dalam bentuk:
<table1Regex>;<table2Regex>
. Pola ini harus mengikuti sintaksis ekspresi reguler Java. Contoh:lineitem;ordertb
cocok dengan tabel yang bernamalineitem
danordertb
..*
cocok dengan semua tabel.
Kosongkan kolom ini untuk memigrasikan semua tabel dari skema yang ditentukan.
Untuk VPC dan rentang IP yang dicadangkan, kosongkan kolom ini.
Di menu Service Account, pilih service account dari akun layanan yang terkait dengan project Google Cloud Anda. Anda dapat mengaitkan akun layanan dengan transfer, bukan menggunakan kredensial pengguna. Untuk mengetahui informasi selengkapnya tentang cara menggunakan akun layanan dengan transfer data, lihat Menggunakan akun layanan.
- Jika Anda login dengan identitas gabungan, akun layanan diperlukan untuk membuat transfer. Jika Anda login dengan Akun Google, akun layanan untuk transfer bersifat opsional.
- Akun layanan harus memiliki izin yang diperlukan.
Opsional: Di bagian Opsi notifikasi, lakukan hal berikut:
- Klik tombol untuk mengaktifkan notifikasi email. Saat Anda mengaktifkan opsi ini, administrator transfer akan menerima notifikasi email saat proses transfer gagal.
- Untuk Select a Pub/Sub topic, pilih nama topik atau klik Create a topic. Opsi ini mengonfigurasi notifikasi operasi Pub/Sub untuk transfer Anda.
Klik Simpan.
Konsol Google Cloud menampilkan semua detail penyiapan transfer, termasuk Nama resource untuk transfer ini.
bq
Masukkan perintah bq mk
dan berikan flag pembuatan transfer --transfer_config
. Flag berikut juga diperlukan:
--project_id
--data_source
--target_dataset
--display_name
--params
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'
Dengan keterangan:
- project_id adalah ID project Google Cloud Anda. Jika
--project_id
tidak ditentukan, project default akan digunakan. - data_source adalah sumber data:
redshift
. - dataset adalah set data target BigQuery untuk konfigurasi transfer.
- name adalah nama tampilan untuk konfigurasi transfer. Nama transfer dapat berupa nilai apa pun yang memungkinkan Anda mengidentifikasi transfer jika perlu mengubahnya nanti.
- service_account: adalah nama akun layanan yang digunakan untuk
mengautentikasi transfer Anda. Akun layanan harus dimiliki oleh
project_id
yang sama yang digunakan untuk membuat transfer dan harus memiliki semua izin yang diperlukan. - parameters berisi parameter untuk konfigurasi transfer yang dibuat dalam format JSON. Untuk contoh:
--params='{"param":"param_value"}'
.
Parameter yang diperlukan untuk konfigurasi transfer Amazon Redshift adalah:
jdbc_url
: URL koneksi JDBC digunakan untuk menemukan cluster Amazon Redshift.database_username
: Nama pengguna untuk mengakses database Anda guna menghapus muatan tabel yang ditentukan.database_password
: Sandi yang digunakan dengan nama pengguna untuk mengakses database Anda guna menghapus muatan tabel yang ditentukan.access_key_id
: ID kunci akses untuk menandai permintaan yang dibuat ke AWS.secret_access_key
: Kunci akses secret yang digunakan dengan ID kunci akses untuk menandai permintaan yang dibuat ke AWS.s3_bucket
: URI Amazon S3 yang diawali dengan "s3://" dan menentukan awalan file sementara yang akan digunakan.redshift_schema
: Skema Amazon Redshift yang berisi semua tabel yang akan dimigrasikan.table_name_patterns
: Pola nama tabel yang dipisahkan titik koma (;). Pola tabel adalah ekspresi reguler untuk tabel(-tabel) yang akan dimigrasikan. Jika tidak disediakan, semua tabel dalam skema database akan dimigrasikan.
Misalnya, perintah berikut akan membuat transfer Amazon Redshift bernama My Transfer
dengan set data target bernama mydataset
dan project dengan 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
Gunakan metode projects.locations.transferConfigs.create
dan berikan instance resource TransferConfig
.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Kuota dan batas
BigQuery memiliki kuota muatan sebesar 15 TB untuk setiap tugas pemuatan untuk setiap tabel. Secara internal, Amazon Redshift mengompresi data tabel, sehingga ukuran tabel yang diekspor akan lebih besar dari ukuran tabel yang dilaporkan oleh Amazon Redshift. Jika Anda berencana memigrasikan tabel yang lebih besar dari 15 TB, hubungi Cloud Customer Care terlebih dahulu.
Biaya dapat dikenakan di luar Google dengan menggunakan layanan ini. Tinjau halaman harga Amazon Redshift dan Amazon S3 untuk mengetahui detailnya.
Karena model konsistensi Amazon S3, ada kemungkinan bahwa beberapa file tidak akan disertakan dalam transfer ke BigQuery.
Langkah berikutnya
- Pelajari cara Memigrasikan instance pribadi Amazon Redshift dengan VPC.
- Pelajari BigQuery Data Transfer Service lebih lanjut.
- Migrasikan kode SQL dengan terjemahan Batch SQL.