All Products
Search
Document Center

AnalyticDB:Migrasi dari kluster Greenplum yang dikelola sendiri ke AnalyticDB for PostgreSQL

Last Updated:Mar 28, 2026

AnalyticDB for PostgreSQL merupakan layanan Alibaba Cloud yang dioptimalkan berdasarkan Greenplum. Produk ini mendukung komputasi vektor dan pemrosesan transaksi dalam arsitektur multi-coordinator serta menggunakan operasi API yang sama dengan Greenplum Community Edition, sehingga mempermudah proses migrasi. Topik ini memandu Anda melalui seluruh proses migrasi—mulai dari pemilihan metode hingga validasi hasil.

Sebelum melakukan migrasi

Tinjau batasan berikut sebelum memulai:

  • Hanya migrasi satu arah. Migrasi data tidak mendukung sinkronisasi berkelanjutan. Jika penulisan data berlanjut selama migrasi, lakukan backfill data baru setelah migrasi selesai. Hentikan sementara operasi write selama migrasi untuk menghindari degradasi performa dan kesenjangan data.

  • Statistik pasca-migrasi. Setelah migrasi, AnalyticDB for PostgreSQL menjalankan ANALYZE untuk mengumpulkan statistik guna perencanaan kueri. Beban CPU pada node coordinator meningkat sementara tergantung pada volume data.

  • Jumlah node. Buat instans AnalyticDB for PostgreSQL dengan jumlah node komputasi minimal sama dengan kluster Greenplum sumber. Saat menggunakan gpcopy, menyamakan jumlah node memberikan throughput migrasi terbaik.

  • Ekstensi. Periksa ekstensi yang digunakan oleh kluster Greenplum yang dikelola sendiri terhadap ekstensi yang didukung oleh AnalyticDB for PostgreSQL. Untuk daftar lengkapnya, lihat Manage extensions.

  • Kompatibilitas sintaksis. AnalyticDB for PostgreSQL sebagian tidak kompatibel dengan sintaksis Greenplum 4X. Tinjau dan perbarui SQL yang terdampak sebelum migrasi.

  • Tabel partisi dan tabel warisan. Lakukan migrasi berdasarkan tabel anak (child tables), bukan tabel induk (parent table).

Ikhtisar migrasi

Migrasi mencakup empat tahap berikut:

  1. Evaluasi risiko migrasi dan pilih metode migrasi.

  2. Beli instans uji AnalyticDB for PostgreSQL dan verifikasi pendekatan migrasi Anda.

  3. Beli instans produksi AnalyticDB for PostgreSQL dan migrasikan data produksi Anda.

  4. Hubungkan aplikasi Anda ke instans produksi dan verifikasi migrasi tersebut.

Pilih metode migrasi

MetodeKapan digunakan
gpcopyKluster Greenplum yang dikelola sendiri dapat terhubung langsung ke instans AnalyticDB for PostgreSQL
gptransferInstans AnalyticDB for PostgreSQL dapat terhubung langsung ke kluster Greenplum yang dikelola sendiri
OSS foreign tableKluster Greenplum yang dikelola sendiri dan instans AnalyticDB for PostgreSQL tidak dapat saling terhubung
gpcopy tidak mendukung instans dalam mode elastic storage (V7.0) atau mode Serverless. Gunakan gptransfer atau metode OSS foreign table untuk jenis instans tersebut.

Anda juga dapat menggunakan Alibaba Cloud DataWorks (Data Integration) untuk migrasi. Untuk detailnya, lihat Use Data Integration to migrate and batch synchronize data.

Migrasi data menggunakan gpcopy

Prasyarat

Sebelum memulai, pastikan hal-hal berikut:

  • Kluster Greenplum yang dikelola sendiri dapat menjangkau instans AnalyticDB for PostgreSQL melalui jaringan.

  • Akun superuser tersedia di kluster Greenplum.

  • Instans AnalyticDB for PostgreSQL tidak berada dalam mode elastic storage (V7.0) atau mode Serverless. gpcopy tidak mendukung jenis instans tersebut.

Langkah 1: Hubungi dukungan teknis Alibaba Cloud

Submit a ticketSubmit a ticket dan berikan:

  • ID instans AnalyticDB for PostgreSQL Anda

  • Alamat IP dan nomor port kluster Greenplum yang dikelola sendiri

  • Akun superuser di kluster Greenplum

  • Alamat IP server tempat kluster Greenplum berada

Dukungan teknis Alibaba Cloud akan mengunduh dan menginstal gpcopy pada instans AnalyticDB for PostgreSQL Anda.Submit a ticket

Langkah 2: Perbarui daftar putih alamat IP

Tambahkan 0.0.0.0/0 ke daftar putih alamat IP instans AnalyticDB for PostgreSQL untuk mengizinkan akses eksternal.

Peringatan

0.0.0.0/0 mengizinkan semua alamat IP mengakses instans. Segera hapus entri ini dan kembalikan daftar IP spesifik setelah migrasi selesai.

Langkah 3: Instal gpcopy pada server Greenplum

  1. Unduh gpcopy pada server tempat kluster Greenplum yang dikelola sendiri berada.

    Topik ini menggunakan gpcopy 2.3.2. Gunakan gpcopy 2.3.x untuk migrasi. gpcopy 2.4.x memerlukan enkripsi SSL — lihat Configure SSL encryption jika Anda menggunakan versi tersebut.
  2. Di direktori tempat paket gpcopy berada, jalankan skrip berikut untuk menginstal gpcopy:

    #!/bin/bash
    
    tar xzvf gpcopy-2.3.2.tar.gz
    
    cd gpcopy-2.3.2/
    cp gpcopy $GPHOME/bin
    cp gpcopy_helper $GPHOME/bin
    chmod 755 $GPHOME/bin/gpcopy
    chmod 755 $GPHOME/bin/gpcopy_helper
    
    host_sql=`psql -A -t -c "select address from gp_segment_configuration where role = 'p' and content >= 0 group by address"`
    host=(${host_sql})
    host_len=${#host[@]}
    
    host_str=""
    for ((i=0; i<$host_len; ++i)); do
        host_str=$host_str" -h "${host[$i]}
    done
    
    gpscp $host_str gpcopy_helper =:$GPHOME/bin
    gpssh $host_str -e "chmod 755 $GPHOME/bin/gpcopy_helper"

Langkah 4: Jalankan migrasi

Jalankan perintah berikut untuk migrasi data:

gpcopy --full \
  --source-host <SOURCEHOST> \
  --source-port <SOURCEPORT> \
  --source-user <SOURCEUSER> \
  --dest-host <DESTHOST> \
  --dest-port <DESTPORT> \
  --dest-user <DESTUSER> \
  --jobs 4 \
  --drop \
  --validate count

Ganti placeholder dengan nilai aktual:

PlaceholderDeskripsiCatatan
<SOURCEHOST>Alamat IP server GreenplumGunakan localhost jika menjalankan perintah di server Greenplum
<SOURCEPORT>Nomor port kluster GreenplumDefault: 5432. Jalankan gpstate -s untuk memeriksa port aktual
<SOURCEUSER>Akun superuser Greenplum
<DESTHOST>Alamat IP node coordinator AnalyticDB for PostgreSQLHubungi dukungan teknis Alibaba Cloud
<DESTPORT>Nomor port node coordinatorHubungi dukungan teknis Alibaba Cloud
<DESTUSER>Akun superuser AnalyticDB for PostgreSQLHubungi dukungan teknis Alibaba Cloud

Opsi utama:

OpsiDeskripsi
--fullMigrasi semua database pengguna. Ganti dengan -d <database name> untuk migrasi satu database saja
--jobsJumlah tabel yang dimigrasikan secara paralel. Default: 4. Konfigurasikan nilai ini sesuai kebutuhan bisnis Anda. Kami merekomendasikan menghitung nilai menggunakan rumus: 2 × Jumlah koneksi + 1
--validate countMemvalidasi migrasi dengan membandingkan jumlah baris antara tabel sumber dan tujuan

Langkah 5: Pulihkan kontrol akses

Setelah migrasi selesai:

  1. Perbarui daftar putih alamat IP dari 0.0.0.0/0 ke alamat IP yang dibutuhkan untuk bisnis Anda.

  2. Hubungi dukungan teknis Alibaba Cloud untuk memulihkan konfigurasi akun superuser, grup keamanan, dan pengaturan logon tanpa password pg_hba.

Migrasi data menggunakan gptransfer

Prasyarat

Sebelum memulai, pastikan hal-hal berikut:

  • Instans AnalyticDB for PostgreSQL dapat menjangkau kluster Greenplum yang dikelola sendiri melalui jaringan.

  • Akun istimewa tersedia pada instans AnalyticDB for PostgreSQL. Jika belum ada, buat akun tersebut — lihat Create a database account.

Langkah-langkah

  1. Buat akun istimewa untuk instans AnalyticDB for PostgreSQL jika belum tersedia.

  2. Tambahkan 0.0.0.0/0 ke daftar putih alamat IP instans AnalyticDB for PostgreSQL untuk mengizinkan akses eksternal.

    Peringatan

    0.0.0.0/0 mengizinkan semua alamat IP mengakses instans. Segera hapus entri ini setelah migrasi selesai.

  3. Perbarui instans AnalyticDB for PostgreSQL ke versi minor terbaru. Lihat View the minor engine version dan Update the minor engine version.

  4. Submit a ticketSubmit a ticket dan berikan: ID instans, alamat IP dan nomor port kluster Greenplum yang dikelola sendiri, akun kluster Greenplum yang memiliki izin untuk migrasi data, dan alamat IP server.

  5. Tunggu hingga migrasi selesai.

  6. Perbarui daftar putih alamat IP dari 0.0.0.0/0 ke alamat IP yang dibutuhkan untuk bisnis Anda. Verifikasi data Anda, lalu hubungkan aplikasi Anda ke instans tersebut.

Migrasi data menggunakan OSS foreign table

Gunakan metode ini ketika kluster Greenplum dan instans AnalyticDB for PostgreSQL tidak dapat terhubung langsung. Prosesnya terdiri dari tiga tahap: migrasi skema, migrasi data tabel, dan verifikasi data.

Migrasi skema

  1. Pada node master kluster Greenplum yang dikelola sendiri, ekspor skema DDL menggunakan pg_dumpall:

    export PGHOST=<alamat IP kluster Greenplum yang dikelola sendiri>
    export PGPORT=<nomor port kluster Greenplum yang dikelola sendiri>
    export PGUSER=<akun superuser kluster Greenplum yang dikelola sendiri>
    export PGPASSWORD=<password akun superuser>
    
    # Untuk Greenplum 4X
    pg_dumpall -s -q --gp-syntax > full_schema.sql
    
    # Untuk Greenplum 5X atau 6X
    pg_dumpall -s --gp-syntax > full_schema.sql
  2. Periksa library kustom. Hubungkan ke kluster Greenplum menggunakan psql dan jalankan:

    SELECT * FROM pg_catalog.pg_library;

    Jika terdapat library kustom, buat skema yang sesuai secara manual pada instans AnalyticDB for PostgreSQL sebelum melanjutkan.

  3. Terapkan skema DDL ke instans AnalyticDB for PostgreSQL:

    export PGHOST=<alamat IP instans AnalyticDB for PostgreSQL>
    export PGPORT=<nomor port instans AnalyticDB for PostgreSQL>
    export PGUSER=<akun istimewa instans AnalyticDB for PostgreSQL>
    export PGPASSWORD=<password akun istimewa>
    
    psql postgres -f full_schema.sql > psql.log 2>&1 &

    Periksa psql.log untuk mencari error. Sebagian besar error terkait perbedaan sintaksis SQL, terutama untuk Greenplum 4X. Untuk detail kompatibilitas, lihat Compatibility comparisons between AnalyticDB for PostgreSQL V4.3 and V6.0 dan Check for incompatibility between AnalyticDB for PostgreSQL V4.3 and V6.0.

Migrasi data tabel

Langkah 1: Ekspor data dari kluster Greenplum

Pilih salah satu metode ekspor berikut:

Opsi A: COPY TO

Jalankan pernyataan COPY TO pada klien psql:

-- Berfungsi dengan Greenplum 4X, 5X, dan 6X
COPY public.t1 TO '/data/gpload/public_t1.csv' FORMAT CSV ENCODING 'UTF8';

Untuk Greenplum 5X atau 6X, Anda dapat menggunakan ON SEGMENT untuk ekspor secara paralel:

COPY public.t1 TO '<SEG_DATA_DIR>/public_t1_<SEGID>.csv' FORMAT CSV ENCODING 'UTF8' ON SEGMENT;
Jangan ubah placeholder <SEGID> — sistem akan menggantinya secara otomatis selama ekspor. Anda dapat membiarkan <SEG_DATA_DIR> apa adanya atau menggantinya dengan jalur mutlak.

Opsi B: Tabel eksternal gpfdist

  1. Jalankan layanan gpfdist:

    mkdir -p /data/gpload
    gpfdist -d /data/gpload -p 8000 &
  2. Hubungkan ke kluster Greenplum menggunakan psql dan ekspor data:

    -- Buat tabel eksternal writable untuk public.t1
    CREATE WRITABLE EXTERNAL TABLE ext_w_t1 (LIKE public.t1)
    LOCATION ('gpfdist://<alamat IP kluster Greenplum yang dikelola sendiri>:8000/public_t1.csv')
    FORMAT 'CSV' ENCODING 'UTF8';
    
    -- Tulis data tabel ke tabel eksternal
    INSERT INTO ext_w_t1 SELECT * FROM public.t1;

Langkah 2: Unggah data ke Object Storage Service (OSS)

Unggah file yang diekspor ke bucket OSS. Bucket harus berada di wilayah yang sama dengan instans AnalyticDB for PostgreSQL. Untuk instruksi unggah, lihat Upload objects.

Langkah 3: Impor data ke AnalyticDB for PostgreSQL

Gunakan tabel eksternal OSS untuk memuat data dari OSS ke instans AnalyticDB for PostgreSQL Anda. Lihat bagian Import OSS data to an AnalyticDB for PostgreSQL table untuk detailnya.

Verifikasi hasil migrasi

Jalankan kedua pemeriksaan berikut untuk memastikan migrasi telah selesai:

  • Pemeriksaan konsistensi data. Bandingkan jumlah baris dan nilai agregat bidang numerik antara sumber dan tujuan. Untuk tabel besar, perbandingan berbasis sampel dapat diterima.

  • Pemeriksaan konsistensi bisnis. Hubungkan aplikasi Anda ke instans AnalyticDB for PostgreSQL dan verifikasi bahwa kueri bisnis dijalankan dengan benar serta mengembalikan hasil yang diharapkan.

Langkah selanjutnya