全部产品
Search
文档中心

:Akses Sumber Data AnalyticDB Jarak Jauh

更新时间:Jul 06, 2025

Anda dapat menggunakan fitur akses sumber data AnalyticDB jarak jauh dari AnalyticDB for PostgreSQL untuk mengakses data dari instans lain dalam akun Alibaba Cloud yang sama. Fitur ini memungkinkan Anda melakukan kueri gabungan pada sumber data eksternal, memastikan ketepatan waktu data dan mengurangi redundansi.

Kueri lintas instans melibatkan setidaknya dua instans: instans lokal yang memulai kueri dan instans jarak jauh yang berfungsi sebagai sumber data eksternal.

Versi yang Didukung

  • AnalyticDB for PostgreSQL V6.0: V6.6.0.0 atau lebih baru.

  • AnalyticDB for PostgreSQL V7.0: V7.0.3.0 atau lebih baru.

  • AnalyticDB for PostgreSQL dalam Mode Serverless: V2.1.1.5 atau lebih baru.

Catatan

Anda dapat melihat versi minor di halaman Informasi Dasar instans pada konsol AnalyticDB for PostgreSQL. Jika instans Anda tidak memenuhi versi yang diperlukan, perbarui versi minor instans tersebut.

Prasyarat

Instans lokal dan jarak jauh harus berada dalam virtual private cloud (VPC) yang sama.

Persiapan

Dalam contoh ini, kueri lintas instans dilakukan antara instans lokal A dan instans jarak jauh B. Anda dapat mengakses tabel di database remote_db dari instans jarak jauh B melalui database local_db di instans lokal A untuk kueri gabungan.

  1. Buat akun awal untuk instans lokal A dan instans jarak jauh B.

  2. Tambahkan alamat IP atau blok CIDR klien ke Daftar Putih Alamat IP dari kedua instans.

  3. Siapkan data uji.

    • Pada instans lokal A, buat database dan skema untuk membuat tabel eksternal dan mengakses data dari instans jarak jauh B.

      1. Sambungkan ke instans lokal A.

        psql -h gp-bp166cyrtr4p*****-master.gpdb.rds.aliyuncs.com -p 5432 -d postgres -U gpdbaccount
        Jika instans Elastic Compute Service (ECS) Anda tidak berada dalam VPC yang sama dengan instans AnalyticDB for PostgreSQL, atau jika Anda menyambungkan dari perangkat lokal, gunakan Titik Akhir Publik dari instans tersebut.
      2. Pada instans lokal A, buat database bernama local_db, lalu beralih ke database local_db.

        CREATE DATABASE local_db;
        \c local_db
      3. Buat skema di database local_db dari instans lokal A.

        CREATE SCHEMA s02;
    • Pada instans jarak jauh B, buat database dan tabel untuk menanyakan data tabel dari instans jarak jauh B melalui instans lokal A.

      1. Sambungkan ke instans jarak jauh B dengan cara yang sama seperti Anda menyambungkan ke instans lokal A.

      2. Pada instans jarak jauh B, buat database bernama remote_db dan beralih ke database remote_db.

        CREATE DATABASE remote_db;
        \c remote_db
      3. Siapkan data uji di database remote_db dari instans jarak jauh B.

        CREATE SCHEMA s01;
        
        CREATE TABLE s01.t1(a int, b int, c text); 
        CREATE TABLE s01.t2(a int, b int, c text); 
        CREATE TABLE s01.t3(a int, b int, c text); 
        
        INSERT INTO s01.t1 VALUES(generate_series(1,10),generate_series(11,20),'t1');
        INSERT INTO s01.t2 VALUES(generate_series(11,20),generate_series(11,20),'t2');
        INSERT INTO s01.t3 VALUES(generate_series(21,30),generate_series(11,20),'t3');

Prosedur

Langkah 1: Tambahkan sumber data ke instans lokal

  1. Masuk ke Konsol AnalyticDB for PostgreSQL. Temukan instans lokal A dan klik ID instans tersebut.

  2. Di panel navigasi sebelah kiri, klik External Data Source Management.

  3. Klik tab Remote AnalyticDB Data Source Access dan klik Add Data Source. Di panel yang muncul, konfigurasikan parameter-parameter sesuai penjelasan dalam tabel berikut.

    Parameter

    Deskripsi

    Local Instance ID

    ID dari instans lokal A. Parameter ini ditentukan secara otomatis.

    Local Database Name

    Nama database pada instans lokal A. Dalam contoh ini, local_db digunakan.

    Local Initial Account

    Akun awal dari instans lokal A. Jika Anda telah membuat akun awal, Anda tidak perlu menentukan parameter ini.

    Local Initial Password

    Kata sandi akun awal.

    Remote Instance ID

    ID dari instans jarak jauh B.

    Remote Database Name

    Nama database pada instans jarak jauh B. Dalam contoh ini, remote_db digunakan.

    Remote Initial Account

    Akun awal dari instans jarak jauh B.

    Remote Initial Password

    Kata sandi akun awal.

    Data Source Name

    Nama sumber data. Contoh: example_name.

  4. Klik OK. Setelah status koneksi sumber data berubah menjadi Running, Anda dapat menjalankan kueri lintas instans.

    Catatan
    • Setelah menambahkan sumber data, status koneksi berubah menjadi Adding Remote AnalyticDB Data Source. Proses ini memerlukan waktu kurang dari 1 menit dan tidak memengaruhi pembuatan instans atau operasi baca/tulis data.

    • Setelah sumber data ditambahkan, Anda dapat melakukan operasi berikut:

      • Klik Edit di kolom Actions untuk mengubah akun database dan kata sandi dari instans jarak jauh.

      • Klik Remove di kolom Actions untuk menghapus sumber data.

Langkah 2: Kueri data lintas instans

Penting

Jika instans AnalyticDB for PostgreSQL jarak jauh berada dalam mode Serverless, data dari instans dalam keadaan penskalaan tidak dapat diakses.

  1. Sambungkan ke instans lokal A dan beralih ke skema s02 dari database local_db.

  2. Di skema s02 dari instans lokal A, buat tabel asing untuk tabel t1, t2, dan t3 dari instans jarak jauh B.

    Penting

    Skema di instans lokal tidak boleh berisi tabel dengan nama yang sama dengan tabel jarak jauh. Jika tidak, operasi akan gagal.

    Impor beberapa tabel sekaligus

    Sintaks:

    IMPORT FOREIGN SCHEMA remote_schema -- Nama skema di instans jarak jauh.
        [LIMIT TO ( table_name [, ...] ) ] -- Nama tabel di instans jarak jauh.
        FROM SERVER server_name -- Nama sumber data yang dikonfigurasi di Langkah 1.
        INTO local_schema -- Nama skema di instans lokal.

    Contoh:

    IMPORT FOREIGN SCHEMA s01 LIMIT TO (t1, t2, t3) 
    	FROM SERVER example_name INTO s02;
    Catatan

    Lihat IMPORT FOREIGN SCHEMA untuk detail sintaks lebih lanjut.

    Impor satu tabel

    Sintaks:

    CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [ -- Nama tabel di instans jarak jauh.
      { column_name data_type } ] -- Struktur tabel dari instans jarak jauh.
        [, ... ] )
      SERVER server_name -- Nama sumber data yang dikonfigurasi di Langkah 1.
    [ OPTIONS ( option 'value' [, ... ] ) ] -- Nama skema dan tabel di instans lokal.

    Contoh:

    CREATE FOREIGN TABLE s01.t1(a int, b int) 
    	SERVER example_name OPTIONS(schema_name 's02', table_name 't1');
    Catatan

    Lihat CREATE FOREIGN TABLE untuk detail sintaks lebih lanjut.

  3. Kueri data tabel t1 di database remote_db dari instans jarak jauh B melalui database local_db dari instans lokal A.

    Catatan

    AnalyticDB for PostgreSQL tidak mengizinkan Anda mengakses data dalam format Database.Schema.Table.

    SELECT * FROM s02.t1;

    Hasil sampel:

     a  | b  | c
    ----+----+----
      2 | 12 | t1
      3 | 13 | t1
      4 | 14 | t1
      7 | 17 | t1
      8 | 18 | t1
      1 | 11 | t1
      5 | 15 | t1
      6 | 16 | t1
      9 | 19 | t1
     10 | 20 | t1
    (10 baris)

Referensi

Kueri Lintas Database: Menjelaskan cara menanyakan data lintas database dalam instans yang sama.