Anda dapat menggunakan Alibaba Cloud Data Online Migration atau alat ossimport untuk memigrasikan data dari Amazon Redshift ke AnalyticDB for PostgreSQL.
Prasyarat
Klaster Amazon Redshift telah dibuat.
Amazon S3 yang digunakan untuk mengekspor data Amazon Redshift telah diaktifkan.
Alibaba Cloud Object Storage Service (OSS) telah diaktifkan. Untuk informasi lebih lanjut, lihat Apa itu OSS?
Bucket OSS telah dibuat. Untuk informasi lebih lanjut, lihat Buat Bucket.
CatatanUntuk memudahkan impor data selanjutnya, disarankan membuat bucket OSS di wilayah yang sama dengan instans AnalyticDB for PostgreSQL.
Instans AnalyticDB for PostgreSQL telah dibuat. Untuk informasi tentang cara memilih spesifikasi instans, lihat bagian "Pemilihan Spesifikasi" dari topik ini.
Pemilihan Spesifikasi
Bagian ini menjelaskan cara memilih spesifikasi untuk instans AnalyticDB for PostgreSQL berdasarkan spesifikasi klaster Amazon Redshift sumber.
Klaster Amazon Redshift terdiri dari node leader node dan beberapa node compute nodes.
Leader node: Bertindak sebagai node koordinator dalam instans AnalyticDB for PostgreSQL. Node leader berkomunikasi dengan klien, menganalisis dan mengembangkan rencana eksekusi query, serta melakukan operasi database.
Compute node: Bertindak sebagai set node komputasi dalam instans AnalyticDB for PostgreSQL. Setiap node komputasi dalam klaster Amazon Redshift dipartisi menjadi irisan. Setiap irisan node bertindak sebagai node komputasi dalam instans AnalyticDB for PostgreSQL dan melakukan komputasi untuk penyimpanan data dan query.
Saat membuat instans AnalyticDB for PostgreSQL, Anda dapat memilih spesifikasi node instans berdasarkan spesifikasi setiap irisan node dalam klaster Amazon Redshift sumber.
Contoh
Klaster Amazon Redshift terdiri dari empat node komputasi. Setiap node komputasi terdiri dari dua irisan node. Spesifikasi setiap irisan node adalah 2 core, 16 GB memori, dan 1 TB penyimpanan.
Saat membuat instans AnalyticDB for PostgreSQL, Anda dapat mengatur jumlah node komputasi menjadi 8, spesifikasi node menjadi 2 core dan 16 GB memori, dan penyimpanan per node menjadi 1.000 GB.
Untuk informasi tentang cara membuat instans AnalyticDB for PostgreSQL, lihat Buat Instans.
Disarankan mengatur tipe penyimpanan menjadi Enhanced SSD (ESSD) karena ESSD memberikan kinerja I/O yang lebih baik daripada disk ultra.
Prosedur
Langkah 1: Ekspor data dari klaster Amazon Redshift ke bucket Amazon S3
Anda dapat mengeksekusi pernyataan UNLOAD untuk mengekspor data. Untuk informasi lebih lanjut, lihat UNLOAD.
Sintaks:
UNLOAD ('select-statement')
TO 's3://object-path/name-prefix'
AUTHORIZATION
[ option [ ... ] ]
WHERE option IS
{ [ FORMAT [ AS ] ] CSV | PARQUET
| PARTITION BY ( column_name [, ... ] ) [ INCLUDE ]
| MANIFEST [ VERBOSE ]
| HEADER
| DELIMITER [ AS ] 'delimiter-char'
| FIXEDWIDTH [ AS ] 'fixedwidth-spec'
| ENCRYPTED [ AUTO ]
| BZIP2
| GZIP
| ZSTD
| ADDQUOTES
| NULL [ AS ] 'null-string'
| ESCAPE
| ALLOWOVERWRITE
| CLEANPATH
| PARALLEL [ { ON | TRUE } | { OFF | FALSE } ]
| MAXFILESIZE [AS] max-size [ MB | GB ]
| REGION [AS] 'Amazon-region' }Disarankan menggunakan parameter FORMAT AS PARQUET atau CSV untuk menentukan format data yang diekspor.
Untuk memungkinkan lebih banyak file dihasilkan dan meningkatkan efisiensi ekspor data, disarankan menentukan parameter PARALLEL ON untuk mengekspor data secara paralel.
Untuk menghasilkan lebih banyak file, disarankan menentukan parameter MAXFILESIZE untuk membatasi ukuran file. Nilai yang disarankan adalah kelipatan bulat dari jumlah node dalam instans AnalyticDB for PostgreSQL. Ini meningkatkan efisiensi impor data saat data kemudian diimpor secara paralel dari tabel asing OSS ke instans AnalyticDB for PostgreSQL.
Langkah 2: Sinkronisasi data dari Amazon S3 ke OSS
Anda dapat menggunakan Alibaba Cloud Data Online Migration atau alat ossimport untuk menyinkronkan data dari Amazon S3 ke OSS.
Data Online Migration
Masuk ke Konsol Transportasi Data.
Buat alamat data sumber dan tujuan untuk sinkronisasi data.
Di panel navigasi sebelah kiri, pilih .
Klik Create Data Address untuk membuat alamat data sumber.
Di panel Create Data Address, konfigurasikan parameter yang dijelaskan dalam tabel berikut dan klik OK.
Parameter
Diperlukan
Deskripsi
Name
Ya
Nama alamat data sumber. Nama tersebut harus memenuhi persyaratan berikut:
Nama memiliki panjang 3 hingga 63 karakter.
Nama harus peka huruf besar/kecil dan hanya dapat berisi huruf kecil, angka, tanda hubung (-), dan garis bawah (_).
Nama dikodekan dalam format UTF-8 dan tidak boleh dimulai dengan tanda hubung (-) atau garis bawah (_).
Type
Ya
Tipe alamat data sumber. Pilih AWS S3.
Domain Name
Ya
Titik akhir alamat data sumber. Untuk informasi lebih lanjut, lihat bagian "Amazon S3 endpoints" dari topik Amazon Simple Storage Service endpoints and quotas.
AccessKeyId
Ya
Pasangan kunci akses pengguna Identity and Access Management (IAM) yang digunakan untuk membaca data dari alamat data sumber. Amazon S3 menggunakan pasangan kunci akses untuk memeriksa apakah pengguna IAM memiliki izin untuk membaca data dari alamat data sumber.
SecretAccessKey
Ya
Bucket
Ya
Nama bucket Amazon S3 tempat data yang akan dimigrasikan disimpan.
CatatanNama bucket tidak boleh berisi karakter tidak valid, seperti spasi, baris baru, atau karakter tab.
Prefix
Tidak
Awalan alamat data sumber. Anda dapat menentukan awalan untuk memigrasikan data tertentu.
Jika Anda menentukan awalan, hanya data di direktori yang ditentukan oleh awalan yang dimigrasikan. Awalan tidak boleh dimulai dengan garis miring (/) dan harus diakhiri dengan garis miring (/).
Jika Anda tidak menentukan awalan, semua data di bucket Amazon S3 dimigrasikan.
Tunnel
Tidak
Nama terowongan yang ingin Anda gunakan.
PentingParameter ini hanya diperlukan jika Anda memigrasikan data ke cloud menggunakan sirkuit Express Connect atau gateway VPN atau memigrasikan data dari database mandiri ke cloud.
Jika data di alamat data tujuan disimpan dalam sistem file lokal atau Anda perlu memigrasikan data melalui sirkuit Express Connect di lingkungan seperti Alibaba Finance Cloud atau Apsara Stack, Anda harus membuat dan menerapkan agen.
Agent
Tidak
Nama agen yang ingin Anda gunakan.
PentingParameter ini hanya diperlukan jika Anda memigrasikan data ke cloud menggunakan sirkuit Express Connect atau gateway VPN atau memigrasikan data dari database mandiri ke cloud.
Anda dapat memilih hingga 30 agen sekaligus untuk terowongan tertentu.
Klik Create Data Address lagi untuk membuat alamat data tujuan.
Di panel Create Data Address, konfigurasikan parameter yang dijelaskan dalam tabel berikut dan klik OK.
Parameter
Diperlukan
Deskripsi
Data Type
Ya
Tipe alamat data tujuan. Pilih OSS.
Data Name
Ya
Nama alamat data sumber. Nama tersebut harus memiliki panjang 3 hingga 63 karakter. Nama tersebut tidak boleh berisi karakter khusus kecuali tanda hubung (-) dan garis bawah (_).
Data Region
Ya
Wilayah tempat alamat data tujuan berada.
Enable Transfer Acceleration
Tidak
Jika Anda ingin menggunakan Data Online Migration bersama fitur transfer acceleration dari Object Storage Service (OSS), aktifkan fitur transfer acceleration untuk bucket. Fitur transfer acceleration mulai berlaku dalam waktu 30 menit setelah diaktifkan. Setelah Anda mengaktifkan fitur ini, tunggu selama 30 menit sebelum membuat pekerjaan migrasi.
PentingJika Anda menggunakan fitur transfer acceleration untuk mengakses bucket OSS Anda, Anda akan dikenakan biaya tambahan untuk transfer acceleration. Untuk informasi lebih lanjut, lihat Transfer acceleration.
OSS Endpoint
Ya
Titik akhir alamat data tujuan. Pilih titik akhir berdasarkan wilayah tempat alamat data tujuan berada. Untuk informasi lebih lanjut, lihat Wilayah dan titik akhir.
CatatanSaat Anda memigrasikan data dari layanan cloud pihak ketiga ke OSS, Anda harus mengakses OSS dari titik akhir publik melalui Internet.
Access Key Id and Access Key Secret
Ya
Pasangan AccessKey dari pengguna RAM yang digunakan untuk menulis data ke alamat data tujuan. Pasangan AccessKey digunakan oleh OSS untuk memeriksa apakah pengguna RAM memiliki izin untuk menulis data ke alamat data tujuan.
OSS Bucket
Ya
Bucket OSS ke mana data dimigrasikan.
OSS Prefix
Tidak
Awalan alamat data tujuan.
Jika Anda menentukan awalan, data sumber dimigrasikan ke direktori yang ditentukan. Nilainya tidak boleh dimulai dengan garis miring (/) dan harus diakhiri dengan garis miring (/). Contoh:
data/to/oss/.Jika Anda tidak menentukan awalan, data sumber dimigrasikan ke direktori root bucket tujuan.
PentingJika nama file sumber dimulai dengan garis miring (/), Anda harus menentukan awalan OSS saat menentukan alamat data tujuan. Jika tidak ada awalan OSS yang ditentukan, pekerjaan migrasi gagal. Sebagai contoh, jika nama file yang akan dimigrasikan adalah /test/test.png, Anda harus menentukan awalan OSS, seperti oss/. Setelah migrasi selesai, nama file berubah dari /test/test.png menjadi oss//test/test.png.
Buat pekerjaan migrasi online.
Di panel navigasi sebelah kiri, pilih .
Klik Create Job.
Di panel Create Job, baca syarat layanan migrasi dan pilih I agree to the above terms and activate the Data Transport service. Lalu, klik Next.
Di pesan Fee Reminder, klik Yes, Go Ahead.
Di panel Create Job, konfigurasikan parameter yang dijelaskan dalam tabel berikut dan klik Next.
Parameter
Diperlukan
Deskripsi
Job Name
Ya
Nama alamat data sumber. Nama tersebut harus memiliki panjang 3 hingga 63 karakter. Nama tersebut tidak boleh berisi karakter khusus kecuali tanda hubung (-) dan garis bawah (_).
Source Data Address
Ya
Alamat data sumber yang Anda buat.
Destination Data Address
Ya
Alamat data tujuan yang Anda buat.
Specified Directory
Tidak
Direktori tempat file dan subdirektori dimigrasikan atau tidak dimigrasikan. Nilai yang valid:
Do not filter: memigrasikan semua data dari alamat data sumber.
Exclude: tidak memigrasikan file atau subdirektori di direktori tertentu.
Sebagai contoh, Anda ingin memigrasikan semua direktori di direktori
root_dir/kecualiroot_dir/bad_sub1/danroot_dir/bad_sub2/. Dalam hal ini, Anda dapat memilih metode ini dan menentukanbad_sub1/danbad_sub2/.Contain: hanya memigrasikan file dan subdirektori di direktori tertentu.
Sebagai contoh, Anda ingin memigrasikan hanya
root_dir/good_sub1/danroot_dir/good_sub2/di direktoriroot_dir/. Dalam hal ini, Anda dapat memilih metode ini dan menentukangood_sub1/dangood_sub2/.
CatatanNama direktori hanya boleh berisi angka dan huruf. Jika Anda menggunakan karakter khusus, pekerjaan migrasi mungkin gagal.
Nama direktori tidak boleh dimulai dengan garis miring (/) atau backslash (\), dan tidak boleh berisi dua garis miring (//), dua titik (..), atau tanda kutip ganda ("). Rangkaian karakter dari semua nama direktori yang ditentukan tidak boleh melebihi 10 KB.
Nama direktori harus diakhiri dengan garis miring (/). Sebagai contoh, Anda dapat menentukan
docs/sebagai nama direktori.Anda dapat menentukan hingga 20 direktori tipe Exclude atau Contain.
Migration Type
Ya
Mode migrasi data. Nilai yang valid:
Full: Sistem memigrasikan semua data dari alamat data sumber ke alamat data tujuan. Anda harus mengonfigurasi parameter Start Time Point of File. Sistem memigrasikan semua data yang waktu modifikasi terakhirnya lebih baru dari waktu yang ditentukan. Setelah semua data dimigrasikan, pekerjaan migrasi selesai.
Jika Anda mengubah data di alamat data sumber setelah pekerjaan migrasi selesai, Anda dapat mengirimkan pekerjaan lain untuk memigrasikan semua data. Dalam hal ini, sistem hanya memigrasikan data yang telah berubah.
Incremental: Sistem menjalankan pekerjaan migrasi berdasarkan nilai yang Anda tentukan untuk parameter Migration Interval dan Migration Times.
Anda harus mengonfigurasi parameter Start Time Point of File. Selama migrasi pertama, sistem memigrasikan semua data yang waktu modifikasi terakhirnya lebih baru dari waktu yang ditentukan. Setelah migrasi pertama selesai, migrasi inkremental dilakukan berdasarkan nilai yang Anda tentukan untuk parameter Migration Interval. Untuk setiap migrasi inkremental, sistem hanya memigrasikan data yang dibuat atau dimodifikasi setelah migrasi sebelumnya dimulai dan sebelum migrasi saat ini dimulai.
Jika Anda menetapkan parameter Jumlah Migrasi menjadi N, migrasi penuh dilakukan sekali dan kemudian migrasi inkremental dilakukan (N - 1) kali.
Sebagai contoh, waktu saat ini adalah 08:00, 10 Maret 2019 dan Anda menetapkan parameter Interval Migrasi menjadi 1, parameter Jumlah Migrasi menjadi 5, dan parameter Start Time Point of File menjadi 08:00, 5 Maret 2019. Saat migrasi pertama dimulai, sistem memigrasikan semua file yang waktu modifikasi terakhirnya antara 08:00, 5 Maret 2019 dan 08:00, 10 Maret 2019. Dalam contoh ini, migrasi pertama membutuhkan satu jam untuk selesai dan migrasi kedua dimulai pada 10:00, 10 Maret 2019. Durasi dari 08:00 hingga 10:00 terdiri dari satu jam untuk proses migrasi pertama dan satu jam untuk interval migrasi. Selama migrasi kedua, sistem memigrasikan file yang waktu modifikasi terakhirnya antara 08:00, 10 Maret 2019 dan 10:00, 10 Maret 2019. Pekerjaan migrasi terdiri dari satu migrasi penuh dan empat migrasi inkremental.
PentingSebelum migrasi penuh atau inkremental dimulai, sistem membandingkan file di alamat data sumber dengan file di alamat data tujuan. Jika file sumber memiliki nama yang sama dengan file tujuan, file tujuan akan ditimpa jika salah satu kondisi berikut terpenuhi:
Nilai Content-Type file di alamat data sumber dan alamat data tujuan berbeda.
Waktu modifikasi terakhir file di alamat data sumber lebih baru daripada file di alamat data tujuan.
Ukuran file di alamat data sumber berbeda dari ukuran file di alamat data tujuan.
Start Time Point of File
Ya
Waktu untuk menyaring data yang akan dimigrasikan. Sistem memigrasikan data yang dibuat atau dimodifikasi setelah waktu yang ditentukan. Nilai yang valid:
All: Migrasikan semua file.
Assign: hanya memigrasikan file yang dibuat atau dimodifikasi setelah waktu tertentu.
Sebagai contoh, jika Anda menetapkan waktu menjadi 08:00:00, 1 November 2018, hanya file yang dibuat atau dimodifikasi setelah 08:00:00, 1 November 2018 yang akan dimigrasikan.
Migration Interval
Parameter ini diperlukan jika Anda menetapkan parameter Tipe Migrasi menjadi Inkremental.
Nilai default adalah 1, dan nilai maksimum adalah 24. Unit: jam.
Migration Times
Parameter ini diperlukan jika Anda menetapkan parameter Tipe Migrasi menjadi Inkremental.
Nilai default adalah 1, dan nilai maksimum adalah 30.
File Overwrite Method
Ya
Metode yang digunakan untuk memproses file di alamat data sumber yang namanya sama dengan file di alamat data tujuan. Nilai yang valid:
LastModified: Jika file sumber memiliki nama yang sama dengan file tujuan, sistem membandingkan waktu modifikasi terakhir yang ditunjukkan oleh properti LastModified file.
Jika waktu modifikasi terakhir file di alamat data sumber lebih baru daripada file di alamat data tujuan, file di alamat data sumber dimigrasikan dan file di alamat data tujuan ditimpa.
Jika waktu modifikasi terakhir file di alamat data sumber lebih lama daripada file di alamat data tujuan, file di alamat data sumber tidak dimigrasikan dan file di alamat data tujuan dipertahankan.
Jika kedua file memiliki waktu modifikasi terakhir yang sama, sistem memeriksa nilai properti Size dan Content-Type file.
Jika kedua file memiliki nilai Size dan Content-Type yang sama, file di alamat data sumber tidak dimigrasikan. Jika kedua file memiliki nilai yang berbeda untuk setidaknya satu properti, file di alamat data sumber dimigrasikan dan file di alamat data tujuan ditimpa.
Condition: Jika file sumber memiliki nama yang sama dengan file tujuan, sistem membandingkan nilai properti LastModified, Size, dan Content-Type file.
Jika semua nilai properti kedua file sama, file di alamat data sumber tidak dimigrasikan.
Jika kedua file memiliki nilai yang berbeda untuk setidaknya satu properti, file di alamat data sumber dimigrasikan dan file di alamat data tujuan ditimpa.
All: Jika file sumber memiliki nama yang sama dengan file tujuan, sistem tidak melakukan perbandingan dan langsung menimpa file tujuan dengan file sumber.
No: Jika file sumber memiliki nama yang sama dengan file tujuan, sistem tidak melakukan perbandingan dan langsung melewati file sumber dalam migrasi.
PeringatanJika Anda memilih Condition atau LastModified, file yang lebih lama mungkin menimpa file yang lebih baru.
Jika Anda memilih Condition atau LastModified, pastikan bahwa file sumber memiliki nilai LastModified, Size, dan Content-Type. Jika tidak, kebijakan penimpaan mungkin tidak efektif dan data tidak dimigrasikan sesuai harapan.
Di langkah Performance, buka bagian Data Prediction dan konfigurasikan parameter Data Size dan File Count.
CatatanUntuk memastikan pekerjaan migrasi berhasil, disarankan memperkirakan jumlah data yang ingin dimigrasikan seakurat mungkin. Untuk informasi lebih lanjut, lihat Persiapkan Pekerjaan Migrasi.
(Opsional) Di langkah Performance, buka bagian Flow Control, tentukan parameter Time Range dan Max Flow(MB/s), lalu klik Add.
CatatanUntuk memastikan kelangsungan bisnis, disarankan mengonfigurasi parameter Time Range dan Max Flow berdasarkan fluktuasi lalu lintas.
Klik Create dan tunggu hingga pekerjaan migrasi selesai.
ossimport
Unduh dan instal ossimport dalam mode mandiri. Untuk informasi lebih lanjut, lihat Ikhtisar.
Alat ossimport dalam mode mandiri memiliki struktur file berikut:
ossimport ├── bin │ └── ossimport2.jar # Paket JAR yang berisi modul Master, Worker, TaskTracker, dan Console. ├── conf │ ├── local_job.cfg # File konfigurasi pekerjaan. │ └── sys.properties # File konfigurasi yang berisi parameter sistem. ├── console.bat # Utilitas baris perintah Windows yang digunakan untuk menjalankan tugas secara terdistribusi. ├── console.sh # Utilitas baris perintah Linux yang digunakan untuk menjalankan tugas secara terdistribusi. ├── import.bat # Skrip yang secara otomatis mengimpor file berdasarkan file konfigurasi conf/local_job.cfg di Windows. File konfigurasi berisi parameter yang menentukan operasi migrasi data seperti mulai, migrasi, verifikasi, dan coba lagi. ├── import.sh # Skrip yang secara otomatis mengimpor file berdasarkan file konfigurasi conf/local_job.cfg di Linux. File konfigurasi berisi parameter yang menentukan operasi migrasi data seperti mulai, migrasi, verifikasi, dan coba lagi. ├── logs # Direktori yang berisi log. └ ── README.md # File yang memberikan deskripsi tentang ossimport. Kami sarankan Anda membaca file tersebut sebelum menggunakan ossimport.Konfigurasikan ossimport dalam mode mandiri.
Anda hanya perlu memodifikasi parameter berikut dalam file konfigurasi conf/local_job.cfg:
srcType=s3 srcAccessKey=<Your AWS access key> srcSecretKey=<Your AWS secret key> srcDomain=<Nama domain yang sesuai dengan wilayah tempat bucket Amazon S3 ditempatkan> srcBucket=<Nama bucket Amazon S3> destAccessKey=<ID AccessKey Alibaba Cloud Anda> destSecretKey=<Rahasia AccessKey Alibaba Cloud Anda> destDomain=<Titik akhir yang sesuai dengan wilayah tempat bucket OSS ditempatkan> destBucket=<Nama bucket OSS> destPrefix= isSkipExistFile=trueUntuk informasi lebih lanjut, lihat Ikhtisar.
Jalankan ossimport untuk menyinkronkan data ke OSS. Untuk informasi tentang cara menggunakan ossimport dalam mode mandiri, lihat Penyebaran Mandiri.
Langkah 3: Buat tabel tujuan
Buat tabel tujuan di instans AnalyticDB for PostgreSQL untuk memuat data dari Amazon Redshift. Tabel tujuan harus memiliki skema yang sama dengan tabel sumber. Untuk informasi lebih lanjut, lihat CREATE TABLE.
Ubah informasi tentang objek database seperti skema, tabel, fungsi, dan tampilan untuk mengonversi pernyataan DDL. Untuk informasi lebih lanjut, lihat bagian "Konversi Pernyataan DDL" dari topik ini.
Langkah 4: Impor data dari OSS ke instans AnalyticDB for PostgreSQL
Anda dapat menggunakan pernyataan COPY atau tabel asing OSS untuk mengimpor data ke AnalyticDB for PostgreSQL.
Untuk informasi tentang cara menggunakan pernyataan COPY untuk mengimpor data OSS, lihat Gunakan Pernyataan COPY atau UNLOAD untuk Mengimpor atau Mengekspor Data antara Tabel Asing OSS dan Tabel AnalyticDB for PostgreSQL.
Untuk informasi tentang cara menggunakan tabel asing OSS untuk mengimpor data OSS, lihat bagian "Gunakan Tabel Asing OSS untuk Analisis Danau Data" dari topik Gunakan Tabel Asing OSS untuk Analisis Danau Data.
Konversi pernyataan DDL
Pernyataan DDL Amazon Redshift sedikit berbeda dari pernyataan DDL AnalyticDB for PostgreSQL dan harus dikonversi sebelum Anda memigrasikan data.
CREATE SCHEMA
Jalankan pernyataan CREATE SCHEMA dari AnalyticDB for PostgreSQL untuk membuat skema. Contoh:
CREATE SCHEMA schema1 AUTHORIZATION xxxpoc;
GRANT ALL ON SCHEMA schema1 TO xxxpoc;
GRANT ALL ON SCHEMA schema1 TO public;
COMMENT ON SCHEMA model IS 'for xxx migration poc test';
CREATE SCHEMA oss_external_table AUTHORIZATION xxxpoc;CREATE FUNCTION
AnalyticDB for PostgreSQL tidak mendukung fungsi SQL spesifik Amazon Redshift. Anda harus memodifikasi atau menulis ulang fungsi SQL tersebut. Contoh:
Ganti fungsi
CONVERT_TIMEZONE(a,b,c)dengan fungsi berikut:timezone(b, timezone(a,c))Ganti fungsi
GETDATE()dengan fungsi berikut:current_timestamp(0):timestampGanti atau optimalkan fungsi yang ditentukan pengguna (UDF). Kode sampel berikut memberikan contoh UDF Amazon Redshift:
CREATE OR REPLACE FUNCTION public.f_jdate(dt timestamp WITHOUT time zone) RETURNS character varying AS ' from datetime import timedelta, datetime if dt.hour < 4: d = timedelta(days=-1) dt = dt + d return str(dt.date())' LANGUAGE plpythonu IMMUTABLE; COMMIT;Ganti fungsi di atas dengan fungsi berikut:
to_char(a - interval '4 hour', 'yyyy-mm-dd')Ganti fungsi Amazon Redshift lainnya.
Untuk informasi tentang fungsi PostgreSQL standar, lihat Fungsi dan Operator. Anda dapat memodifikasi atau menulis ulang fungsi SQL Amazon Redshift yang tidak didukung oleh AnalyticDB for PostgreSQL, seperti fungsi berikut:
CREATE TABLE
Modifikasi nama tabel.
Nama tabel Amazon Redshift dapat memiliki panjang hingga 127 karakter, sedangkan nama tabel AnalyticDB for PostgreSQL dapat memiliki panjang hingga 63 karakter. Jika nama objek database seperti tabel, fungsi, dan tampilan lebih dari 63 karakter, Anda harus menghapus karakter yang berlebih.
Modifikasi algoritma kompresi.
Ganti
ENCODE XXXdalam pernyataan CREATE TABLE Amazon Redshift dengan klausa berikut:WITH (COMPRESSTYPE={ZLIB|ZSTD|RLE_TYPE|NONE})Untuk informasi tentang algoritma kompresi yang didukung oleh AnalyticDB for PostgreSQL, lihat bagian "Kompresi Data" dari topik Definisikan model penyimpanan untuk tabel.
Modifikasi kunci distribusi.
Amazon Redshift mendukung tiga kunci distribusi. Untuk informasi lebih lanjut, lihat Gaya Distribusi. Anda harus memodifikasi kunci distribusi berdasarkan aturan berikut:
Distribusi EVEN: Gunakan
DISTRIBUTED RANDOMLY.Distribusi KEY: Gunakan
DISTRIBUTED BY (column, [ ... ] ).Distribusi ALL: Gunakan
DISTRIBUTED REPLICATED.
Modifikasi kunci sortir.
Ganti opsi COMPOUND atau INTERLEAVED dalam klausa kunci sortir
[ COMPOUND | INTERLEAVED ] SORTKEY (column_name [, ...] ) ]Amazon Redshift dengan klausa berikut:ORDER BY (column, [ ... ])
Contoh:
Contoh 1:
Kode sampel berikut memberikan contoh pernyataan
CREATE TABLEAmazon Redshift:CREATE TABLE schema1.table1 ( filed1 VARCHAR(100) ENCODE lzo, filed2 INTEGER DISTKEY, filed3 INTEGER, filed4 BIGINT ENCODE lzo, filed5 INTEGER ) INTERLEAVED SORTKEY ( filed1, filed2 );Konversikan pernyataan di atas menjadi pernyataan
CREATE TABLEberikut dari AnalyticDB for PostgreSQL:CREATE TABLE schema1.table1 ( filed1 VARCHAR(100) , filed2 INTEGER, filed3 INTEGER, filed4 BIGINT, filed5 INTEGER ) WITH(APPENDONLY=true,ORIENTATION=column,COMPRESSTYPE=zstd) DISTRIBUTED BY (filed2) ORDER BY (filed1, filed2); -- Sortir SORT schema1.table1; MULTISORT schema1.table1;Contoh 2:
Kode sampel berikut memberikan contoh pernyataan
CREATE TABLEAmazon Redshift, yang mencakup opsi ENCODE dan SORTKEY:CREATE TABLE schema2.table2 ( filed1 VARCHAR(50) ENCODE lzo, filed2 VARCHAR(50) ENCODE lzo, filed3 VARCHAR(20) ENCODE lzo, ) DISTSTYLE EVEN INTERLEAVED SORTKEY ( filed1 );Konversikan pernyataan di atas menjadi pernyataan
CREATE TABLEberikut dari AnalyticDB for PostgreSQL:CREATE TABLE schema2.table2 ( filed1 VARCHAR(50), filed2 VARCHAR(50), filed3 VARCHAR(20), ) WITH(APPENDONLY=true, ORIENTATION=column, COMPRESSTYPE=zstd) DISTRIBUTED randomly ORDER BY (filed1); -- Sortir SORT schema2.table2; MULTISORT schema2.table2;CatatanUntuk informasi lebih lanjut tentang kunci sortir, lihat Gunakan Kunci Sortir dan Indeks Set Kasar untuk Mempercepat Kueri dalam Tabel Berorientasi Kolom.
CREATE VIEW
Konversikan pernyataan CREATE VIEW Amazon Redshift menjadi pernyataan SQL yang sesuai dengan sintaks AnalyticDB for PostgreSQL. Aturan konversi serupa dengan aturan konversi pernyataan CREATE TABLE.
Klausa WITH NO SCHEMA BINDING tidak didukung.
Referensi
Untuk informasi tentang migrasi data otomatis, lihat Konfigurasikan Migrasi Data Otomatis dari Klaster Amazon Redshift ke Instans AnalyticDB for PostgreSQL.