全部产品
Search
文档中心

AnalyticDB:Migrasi data secara manual dari klaster Amazon Redshift ke instans AnalyticDB for PostgreSQL

更新时间:Jul 06, 2025

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.

    Catatan

    Untuk 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.

Catatan
  • 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' }
Catatan
  • 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

  1. Masuk ke Konsol Transportasi Data.

  2. Buat alamat data sumber dan tujuan untuk sinkronisasi data.

    1. Di panel navigasi sebelah kiri, pilih Data Online Migration > Data Address.

    2. Klik Create Data Address untuk membuat alamat data sumber.

    3. 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.

      Catatan

      Nama 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.

      Penting
      • Parameter 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.

      Penting
      • Parameter 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.

    4. Klik Create Data Address lagi untuk membuat alamat data tujuan.

    5. 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.

      Penting

      Jika 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.

      Catatan

      Saat 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.

      Penting

      Jika 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.

  3. Buat pekerjaan migrasi online.

    1. Di panel navigasi sebelah kiri, pilih Data Online Migration > Migration Jobs.

    2. Klik Create Job.

    3. 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.

    4. Di pesan Fee Reminder, klik Yes, Go Ahead.

    5. 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/ kecuali root_dir/bad_sub1/ dan root_dir/bad_sub2/. Dalam hal ini, Anda dapat memilih metode ini dan menentukan bad_sub1/ dan bad_sub2/.

      • Contain: hanya memigrasikan file dan subdirektori di direktori tertentu.

        Sebagai contoh, Anda ingin memigrasikan hanya root_dir/good_sub1/ dan root_dir/good_sub2/ di direktori root_dir/. Dalam hal ini, Anda dapat memilih metode ini dan menentukan good_sub1/ dan good_sub2/.

      Catatan
      • Nama 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.

      Penting

      Sebelum 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.

        Peringatan
        • Jika 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.

    6. Di langkah Performance, buka bagian Data Prediction dan konfigurasikan parameter Data Size dan File Count.

      Catatan

      Untuk memastikan pekerjaan migrasi berhasil, disarankan memperkirakan jumlah data yang ingin dimigrasikan seakurat mungkin. Untuk informasi lebih lanjut, lihat Persiapkan Pekerjaan Migrasi.

    7. (Opsional) Di langkah Performance, buka bagian Flow Control, tentukan parameter Time Range dan Max Flow(MB/s), lalu klik Add.

      Catatan

      Untuk memastikan kelangsungan bisnis, disarankan mengonfigurasi parameter Time Range dan Max Flow berdasarkan fluktuasi lalu lintas.

    8. Klik Create dan tunggu hingga pekerjaan migrasi selesai.

ossimport

  1. 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.
  2. 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=true

    Untuk informasi lebih lanjut, lihat Ikhtisar.

  3. 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.

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):timestamp
  • Ganti 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 XXX dalam 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 TABLE Amazon 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 TABLE berikut 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 TABLE Amazon 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 TABLE berikut 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;
    Catatan

    Untuk 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.

Catatan

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.