全部产品
Search
文档中心

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

更新时间:Jul 02, 2025

AnalyticDB for PostgreSQL dioptimalkan oleh Alibaba Cloud berdasarkan Greenplum. Produk ini mendukung komputasi vektor dan pemrosesan transaksi dalam arsitektur multi-coordinator serta menggunakan API operasi yang sama dengan Greenplum Community Edition. Topik ini menjelaskan cara memigrasikan data dari kluster Greenplum yang dikelola sendiri ke instance AnalyticDB for PostgreSQL.

Proses migrasi

  1. Evaluasi risiko migrasi dan pilih solusi yang sesuai.

  2. Beli instance uji AnalyticDB for PostgreSQL dan periksa apakah solusi migrasi dapat digunakan untuk memigrasikan aplikasi dan data Anda.

  3. Beli instance produksi AnalyticDB for PostgreSQL dan migrasikan pustaka produksi dari kluster Greenplum yang dikelola sendiri ke instance tersebut.

  4. Sambungkan aplikasi Anda ke instance produksi AnalyticDB for PostgreSQL dan pastikan bahwa aplikasi dan data telah dimigrasikan.

Catatan penggunaan

  • Data dapat dimigrasikan tetapi tidak disinkronkan. Jika data baru ditulis selama proses migrasi, Anda harus mengisi ulang data setelah migrasi selesai.

  • Disarankan untuk memigrasikan data saat operasi penulisan dijeda. Jika tidak, kinerja layanan Anda mungkin terganggu dan proses migrasi melambat.

  • Setelah migrasi data, instance AnalyticDB for PostgreSQL mengeksekusi pernyataan ANALYZE untuk mengumpulkan statistik guna menghasilkan rencana eksekusi optimal. Saat pernyataan ANALYZE dieksekusi, beban CPU pada node koordinator sementara meningkat sesuai dengan volume data.

  • Disarankan untuk membuat instance AnalyticDB for PostgreSQL dengan jumlah node komputasi lebih besar atau sama dengan jumlah node dalam kluster Greenplum yang dikelola sendiri. Jika menggunakan gpcopy untuk migrasi data, jumlah node yang sama memberikan kecepatan migrasi optimal.

  • Periksa perbedaan antara ekstensi yang didukung oleh kluster Greenplum yang dikelola sendiri dan instance AnalyticDB for PostgreSQL. Untuk informasi tentang ekstensi yang didukung oleh AnalyticDB for PostgreSQL, lihat Kelola Ekstensi.

  • Sintaksis AnalyticDB for PostgreSQL sebagian tidak kompatibel dengan Greenplum 4X. Modifikasi diperlukan untuk menyesuaikan dengan sintaksis tersebut.

  • Jika kluster Greenplum yang dikelola sendiri berisi tabel partisi atau tabel turunan, disarankan untuk memigrasikan data berdasarkan tabel anak.

Pilih metode migrasi

Metode migrasi

Skenario

Gunakan gpcopy untuk memigrasikan data

Kluster Greenplum yang dikelola sendiri dapat tersambung ke instance AnalyticDB for PostgreSQL.

Penting

Utilitas gpcopy tidak didukung untuk memigrasikan data untuk instance AnalyticDB for PostgreSQL dalam mode penyimpanan elastis (V7.0) atau mode Serverless.

Gunakan gptransfer untuk memigrasikan data

Instance AnalyticDB for PostgreSQL dapat tersambung ke kluster Greenplum yang dikelola sendiri.

Gunakan tabel asing OSS untuk memigrasikan data

Kluster Greenplum yang dikelola sendiri dan instance AnalyticDB for PostgreSQL tidak dapat saling tersambung.

Gunakan gpcopy untuk memigrasikan data

  1. Kirim Tiket untuk menghubungi dukungan teknis Alibaba Cloud dan menyediakan informasi berikut: ID instance AnalyticDB for PostgreSQL, alamat IP dan nomor port kluster Greenplum yang dikelola sendiri, akun kluster Greenplum dengan hak superuser untuk migrasi data, dan alamat IP server tempat kluster Greenplum berada.

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

    Peringatan

    Pengaturan 0.0.0.0/0 memungkinkan semua alamat IP mengakses instance AnalyticDB for PostgreSQL, yang memiliki risiko keamanan tinggi. Setelah migrasi data, ubah daftar putih alamat IP secara tepat waktu.

  3. Unduh gpcopy di server tempat kluster Greenplum yang dikelola sendiri berada. Hubungi dukungan teknis Alibaba Cloud untuk mengunduh dan menginstal gpcopy pada instance AnalyticDB for PostgreSQL.

    Catatan

    Dalam topik ini, gpcopy 2.3.2 digunakan. Disarankan untuk menggunakan gpcopy 2.3.x untuk migrasi data. Jika menggunakan gpcopy 2.4.x, enkripsi SSL harus diaktifkan. Untuk informasi lebih lanjut, lihat Konfigurasikan Enkripsi SSL.

  4. Di direktori tempat paket gpcopy berada, jalankan kode 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"
  5. Jalankan perintah berikut untuk memigrasikan 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

    Tabel berikut menjelaskan parameter.

    Parameter

    Deskripsi

    --full

    Memigrasikan data lengkap dari kluster Greenplum yang dikelola sendiri.

    Jika Anda ingin memigrasikan hanya satu database dari kluster Greenplum yang dikelola sendiri, Anda dapat mengganti parameter ini dengan -d <nama database>.

    --jobs

    Jumlah tabel yang dapat dimigrasikan secara bersamaan. Nilai default: 4.

    Anda dapat mengonfigurasi parameter ini berdasarkan kebutuhan bisnis Anda. Kami menyarankan Anda menghitung nilai parameter ini menggunakan rumus berikut: 2 × Jumlah koneksi + 1.

    <SOURCEHOST>

    Alamat IP server tempat kluster Greenplum yang dikelola sendiri berada.

    Jika Anda menjalankan perintah migrasi di server tempat kluster Greenplum yang dikelola sendiri berada, Anda dapat mengganti parameter ini dengan localhost.

    <SOURCEPORT>

    Nomor port kluster Greenplum yang dikelola sendiri. Nilai default: 5432.

    Anda dapat menjalankan perintah gpstate -s di server tempat kluster Greenplum yang dikelola sendiri berada untuk menanyakan nomor port aktual.

    <SOURCEUSER>

    Akun kluster Greenplum yang dikelola sendiri yang memiliki hak superuser.

    <DESTHOST>

    Alamat IP node koordinator instance AnalyticDB for PostgreSQL. Untuk informasi lebih lanjut, hubungi dukungan teknis Alibaba Cloud.

    <DESTPORT>

    Nomor port node koordinator instance AnalyticDB for PostgreSQL. Untuk mendapatkan nomor port, hubungi dukungan teknis Alibaba Cloud.

    <DESTUSER>

    Akun instance AnalyticDB for PostgreSQL yang memiliki hak superuser. Untuk mendapatkan akun, hubungi dukungan teknis Alibaba Cloud.

  6. Setelah data dimigrasikan, ubah daftar putih alamat IP instance AnalyticDB for PostgreSQL dari 0.0.0.0/0 menjadi alamat IP yang diperlukan untuk bisnis Anda. Hubungi dukungan teknis Alibaba Cloud untuk memulihkan konfigurasi akun superuser, grup keamanan, dan logon tanpa kata sandi pg_hba.

Gunakan gptransfer untuk memigrasikan data

  1. Buat akun istimewa untuk instance AnalyticDB for PostgreSQL. Untuk informasi lebih lanjut, lihat bagian "Buat Akun Istimewa" dari topik Buat Akun Basis Data.

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

    Peringatan

    Pengaturan 0.0.0.0/0 memungkinkan semua alamat IP mengakses instance AnalyticDB for PostgreSQL, yang memiliki risiko keamanan tinggi. Setelah migrasi data, ubah daftar putih alamat IP secara tepat waktu.

  3. Perbarui instance AnalyticDB for PostgreSQL ke versi minor terbaru. Untuk informasi tentang cara melihat dan memperbarui versi minor, lihat Lihat Versi Mesin Minor dan Perbarui Versi Mesin Minor.

  4. Kirim Tiket untuk menghubungi dukungan teknis Alibaba Cloud dan menyediakan informasi berikut: ID instance AnalyticDB for PostgreSQL, alamat IP dan nomor port kluster Greenplum yang dikelola sendiri, akun kluster Greenplum dengan izin untuk migrasi data, dan alamat IP server tempat kluster Greenplum berada.

  5. Tunggu hingga migrasi data selesai.

  6. Ubah daftar putih alamat IP instance AnalyticDB for PostgreSQL dari 0.0.0.0/0 menjadi alamat IP yang diperlukan untuk bisnis Anda dan periksa apakah data Anda telah dimigrasikan ke instance tersebut. Setelah memastikan bahwa data telah dimigrasikan, sambungkan aplikasi Anda ke instance AnalyticDB for PostgreSQL.

Gunakan tabel asing OSS untuk memigrasikan data

Migrasi skema

  1. Di node master kluster Greenplum yang dikelola sendiri, gunakan pg_dumpall atau pg_dump untuk mengekspor skema DDL. Perintah Bash digunakan dalam contoh berikut:

    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=<Kata sandi akun superuser>
    
    #-- Ekspor skema lengkap untuk kluster Greenplum 4X.
    pg_dumpall -s -q --gp-syntax  > full_schema.sql
    
    #-- Ekspor skema lengkap untuk kluster Greenplum 5X atau 6X.
    pg_dumpall -s --gp-syntax  > full_schema.sql
  2. Gunakan psql untuk masuk ke kluster Greenplum yang dikelola sendiri. Jalankan pernyataan berikut untuk memeriksa apakah pustaka kustom ada. Jika pustaka kustom ada, Anda harus secara manual membuat skema di instance AnalyticDB for PostgreSQL.

    SELECT * FROM pg_catalog.pg_library;
  3. Masuk ke instance AnalyticDB for PostgreSQL dan jalankan skema DDL. Perintah Bash digunakan dalam contoh berikut:

    export PGHOST=<Alamat IP instance AnalyticDB for PostgreSQL>
    export PGPORT=<Nomor port instance AnalyticDB for PostgreSQL>
    export PGUSER=<Akun istimewa instance AnalyticDB for PostgreSQL>
    export PGPASSWORD=<Kata sandi akun istimewa>
    
    psql postgres -f full_schema.sql > psql.log 2>&1 &

    Saat menjalankan perintah Bash, periksa psql.log untuk pesan kesalahan. Jika ada pesan kesalahan, analisis penyebabnya dan perbaiki masalahnya. Sebagian besar pesan kesalahan terkait dengan sintaksis SQL, terutama untuk Greenplum 4X. Untuk informasi tentang item yang tidak kompatibel, lihat Perbandingan Kompatibilitas antara AnalyticDB for PostgreSQL V4.3 dan V6.0 dan Periksa Ketidakcocokan antara AnalyticDB for PostgreSQL V4.3 dan V6.0.

Migrasi data tabel

  1. Gunakan pernyataan COPY TO atau tabel eksternal gpfdist untuk mengekspor data tabel dari kluster Greenplum yang dikelola sendiri.

    • COPY TO

      Jalankan pernyataan COPY TO di klien psql untuk mengekspor data tabel. Contoh pernyataan:

      • Ekspor data tabel dari Greenplum 4X, 5X, atau 6X.

        COPY public.t1 TO '/data/gpload/public_t1.csv' FORMAT CSV ENCODING 'UTF8';
      • Ekspor data tabel dari Greenplum 5X atau 6X menggunakan ON SEGMENT.

        COPY public.t1 TO '<SEG_DATA_DIR>/public_t1_<SEGID>.csv' FORMAT CSV ENCODING 'UTF8' 
        ON SEGMENT;
        Catatan

        Jangan ubah string <SEGID>. Sistem secara otomatis menghasilkan <SEGID> yang sesuai selama ekspor. Anda dapat membiarkan string <SEG_DATA_DIR> tidak berubah atau menyesuaikan jalur absolut.

    • Tabel Eksternal gpfdist

      1. Aktifkan layanan gpfdist yang disimpan di direktori bin program startup Greenplum. Perintah Bash digunakan dalam contoh berikut:

        mkdir -p /data/gpload
        gpfdist -d /data/gpload -p 8000 & 
      2. Gunakan psql untuk tersambung ke kluster Greenplum yang dikelola sendiri dan ekspor data tabel dari kluster tersebut. Contoh pernyataan:

        -- public.t1 menentukan tabel yang akan dimigrasikan.
        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';
        
        -- Tuliskan data tabel ke tabel eksternal.
        INSERT INTO ext_w_t1 SELECT * FROM public.t1;
  2. Unggah data yang diekspor ke Bucket Object Storage Service (OSS). Untuk informasi lebih lanjut, lihat Unggah Objek.

    Catatan

    Bucket OSS yang terlibat harus berada di wilayah yang sama dengan instance AnalyticDB for PostgreSQL.

  3. Gunakan tabel asing OSS untuk mengimpor data dari Bucket OSS ke instance AnalyticDB for PostgreSQL. Untuk informasi lebih lanjut, lihat bagian "Impor Data OSS ke Tabel AnalyticDB for PostgreSQL" dari topik Gunakan Tabel Asing OSS untuk Analisis Danau Data.

Pemeriksaan data

Periksa apakah data dan bisnis Anda konsisten antara instance AnalyticDB for PostgreSQL dan kluster Greenplum yang dikelola sendiri. Pemeriksaan data mencakup pemeriksaan konsistensi data dan konsistensi bisnis.

  • Pemeriksaan Konsistensi Data: Anda dapat memeriksa konsistensi data dengan membandingkan data lengkap atau data sampel. Jika menggunakan perbandingan sampel, periksa apakah data konsisten dengan memeriksa volume data tabel dan hasil agregat bidang numerik.

  • Pemeriksaan Konsistensi Bisnis: Sambungkan aplikasi Anda ke instance AnalyticDB for PostgreSQL dan periksa apakah kueri bisnis Anda dapat dieksekusi secara normal dan mengembalikan respons yang diharapkan.

Metode migrasi lainnya

Anda juga dapat menggunakan DataWorks Alibaba Cloud untuk memigrasikan data. Untuk informasi lebih lanjut, lihat Gunakan Integrasi Data untuk Memigrasikan dan Menyinkronkan Data Secara Batch.