全部产品
Search
文档中心

AnalyticDB:Berbagi data

更新时间:Jun 26, 2025

AnalyticDB for PostgreSQL dalam mode Serverless menyediakan fitur berbagi data untuk berbagi dan menanyakan data di seluruh instans. Topik ini menjelaskan cara menggunakan fitur berbagi data.

Deskripsi

Diperlukan dua instans AnalyticDB for PostgreSQL dalam mode Serverless. Dalam topik ini, mereka disebut sebagai Instans A dan Instans B. Kedua instans tersebut harus milik akun Alibaba Cloud yang sama dan berada di wilayah yang sama. Untuk informasi lebih lanjut tentang cara membuat instans AnalyticDB for PostgreSQL dalam mode Serverless, lihat Buat Instans.

Dalam topik ini, Anda dapat mengaktifkan berbagi data untuk Instans A dan Instans B. Kemudian, Anda dapat membuat share untuk database sumber di Instans A, menambahkan tabel uji ke share, dan memberikan otorisasi kepada database tujuan di Instans B untuk menggunakan share tersebut. Setelah Anda berlangganan share untuk database tujuan di Instans B, Anda dapat menanyakan data yang terkandung dalam tabel uji dari database tujuan di Instans B.

Prosedur

  1. Tambahkan instans AnalyticDB for PostgreSQL dalam mode Serverless untuk berbagi data.
    1. Masuk ke Konsol AnalyticDB for PostgreSQL.
    2. Di pojok kiri atas konsol, pilih wilayah tempat instans berada.
    3. Di panel navigasi sisi kiri, klik Data Sharing.
    4. Pada tab Instances for Data Sharing, pilih instans yang ingin Anda tambahkan untuk berbagi data, lalu klik Add.
      Catatan Data hanya dapat dibagikan antar instans yang ditambahkan untuk berbagi data. Pilih setidaknya dua instans. Dalam topik ini, Instans A berbagi data dan Instans B menggunakan data yang dibagikan oleh Instans A.
    5. Dalam pesan Add Instances for Data Sharing, klik OK.
      Catatan Proses ini mungkin memakan waktu 5 hingga 10 menit untuk diselesaikan. Setelah kedua instans ditambahkan untuk berbagi data, data bersama dapat ditanyakan di seluruh instans.
  2. Gunakan alat klien untuk terhubung ke Instans A dan Instans B. Untuk informasi lebih lanjut, lihat Koneksi Klien.
    Dalam topik ini, alat klien psql dan Data Management (DMS) digunakan.
  3. Buat database sumber pada Instans A dan tanyakan pengenal unik universal (UUID) dari database sumber.
    1. Buat database sumber bernama db01 pada Instans A.
      CREATE DATABASE db01;
    2. Tanyakan UUID dari database sumber untuk digunakan nanti di Langkah 8.

      Jalankan \c db01; untuk beralih ke database db01 dan kemudian jalankan pernyataan berikut untuk menanyakan UUID:

      SELECT current_database_uuid();
  4. Buat database tujuan pada Instans B dan tanyakan UUID dari database tujuan.
    1. Buat database tujuan bernama db02 pada Instans B.
      CREATE DATABASE db02;
    2. Tanyakan UUID dari database tujuan untuk digunakan nanti di Langkah 5.

      Jalankan \c db02; untuk beralih ke database db02 dan kemudian jalankan pernyataan berikut untuk menanyakan UUID:

      SELECT current_database_uuid();
  5. Buat share untuk database sumber dan berikan otorisasi kepada database tujuan untuk menggunakan share tersebut.
    1. Beralih ke database sumber.
      • psql
        \c db01;
      • DMS
        1. Di panel navigasi sisi kiri, klik Instances Connected dan temukan Instans A.
        2. Klik database sumber db01.
        3. Klik dua kali skema publik untuk beralih ke database tujuan.

      Anda dapat menjalankan pernyataan berikut untuk memeriksa apakah db02 digunakan:

      SELECT current_database();

      Jika database saat ini adalah db01, informasi berikut akan dikembalikan:

       current_database
      ------------------
       db01
      (1 row)
    2. Buat share.
      CREATE DATASHARE s01;
    3. Berikan otorisasi kepada database tujuan untuk menggunakan share.
      GRANT USAGE ON DATASHARE s01 TO DATABASE "<target_dbuuid>";

      <target_dbuuid> menentukan UUID dari db02 yang ditanyakan di Langkah 4.

  6. Buat tabel uji bernama t1_1 di database sumber db01 dan masukkan data ke dalam tabel.
    CREATE TABLE t1_1 (a int, b int, c int, d int)  DISTRIBUTED BY (a);
    INSERT INTO t1_1 SELECT v,v,v,v FROM generate_series(1, 10) AS v;

    Skema:

     a  | b  | c  | d
    ----+----+----+----
      1 |  1 |  1 |  1
      2 |  2 |  2 |  2
      5 |  5 |  5 |  5
      6 |  6 |  6 |  6
      7 |  7 |  7 |  7
      9 |  9 |  9 |  9
     10 | 10 | 10 | 10
      3 |  3 |  3 |  3
      4 |  4 |  4 |  4
      8 |  8 |  8 |  8
    (10 rows)
  7. Tambahkan tabel ke share.
    ALTER DATASHARE s01 ADD TABLE t1_1;
  8. Berlangganan share untuk database tujuan db02.
    1. Beralih ke database tujuan.
      • psql
        \c db02;
      • DMS
        1. Di panel navigasi sisi kiri, klik Instances Connected dan temukan Instans B.
        2. Klik database tujuan db02.
        3. Klik dua kali skema publik untuk beralih ke database tujuan.

      Anda dapat menjalankan pernyataan berikut untuk memeriksa apakah db02 digunakan:

      SELECT current_database();

      Jika database saat ini adalah db02, informasi berikut akan dikembalikan:

       current_database
      ------------------
       db02
      (1 row)
    2. Berlangganan share dan atur alias untuk share di database tujuan.
      IMPORT DATASHARE s01 AS s01a FROM DATABASE "<source_dbuuid>";

      <source_dbuuid> menentukan UUID dari db01 yang ditanyakan di Langkah 3.

  9. Tanyakan data yang dibagikan oleh database sumber db01 dari database tujuan db02.
    SELECT * FROM s01a.public.t1_1 ORDER BY 1;

    Informasi berikut dikembalikan:

     a  | b  | c  | d
    ----+----+----+----
      1 |  1 |  1 |  1
      2 |  2 |  2 |  2
      5 |  5 |  5 |  5
      6 |  6 |  6 |  6
      7 |  7 |  7 |  7
      9 |  9 |  9 |  9
     10 | 10 | 10 | 10
      3 |  3 |  3 |  3
      4 |  4 |  4 |  4
      8 |  8 |  8 |  8
    (10 rows)