All Products
Search
Document Center

AnalyticDB:Instans dengan optimisasi vector engine diaktifkan

Last Updated:Jun 06, 2026

Cloud-native Data Warehouse AnalyticDB for PostgreSQL kini menyediakan optimisasi vector engine untuk skenario analisis vektor seperti AIGC dan pengambilan vektor (vector retrieval). Tutorial ini menjelaskan proses lengkap, mulai dari pembuatan instans AnalyticDB for PostgreSQL hingga pelaksanaan analisis vektor.

Prasyarat

  • Anda harus memiliki Akun Alibaba Cloud. Jika belum memilikinya, daftar akun di website resmi Alibaba Cloud.

  • Jika Anda menggunakan AnalyticDB for PostgreSQL untuk pertama kalinya, Anda harus mengotorisasi peran terkait layanan (service-linked role) di Konsol. Ikuti langkah-langkah berikut:

    1. Masuk ke Konsol AnalyticDB for PostgreSQL.
    2. Di pojok kanan atas halaman, klik Create Instance.

    3. Pada kotak dialog Create Service Linked Role, klik OK.

Penagihan

Pembuatan instans dikenai biaya komputasi dan penyimpanan. Detail harga tersedia di Harga Produk.

Uji coba gratis

Alibaba Cloud menawarkan uji coba gratis untuk instans Elastic Storage Mode. Jika Anda pengguna baru AnalyticDB for PostgreSQL, Anda dapat mendaftar di halaman Uji Coba Gratis Alibaba Cloud. Jika Anda tidak memenuhi syarat untuk uji coba gratis, buat instans dengan mengikuti prosedur dalam topik ini.

Prosedur

Buat Instans

  1. Masuk ke Konsol AnalyticDB for PostgreSQL.
  2. Di pojok kanan atas halaman, klik Create Instance untuk menuju halaman pembelian.

  3. Pada halaman pembelian, konfigurasikan parameter inti untuk instans Anda. Anda dapat membiarkan parameter lain pada nilai default-nya. Untuk informasi lebih lanjut tentang parameter tersebut, lihat Buat instans.

    Parameter

    Deskripsi

    Contoh

    Region and Zone

    • Subscription: Metode penagihan prabayar. Anda membayar saat membuat instans. Metode ini hemat biaya untuk beban kerja jangka panjang. Periode langganan yang lebih lama memberikan diskon lebih besar.

    • Pay-as-you-go: Metode penagihan pascabayar yang menagih per jam. Metode ini ideal untuk beban kerja jangka pendek. Anda dapat melepas instans kapan saja untuk menghemat biaya.

    Pay-As-You-Go

    Product Type

    Menentukan lokasi geografis instans.

    Anda tidak dapat mengubah wilayah setelah instans dibuat. Kami menyarankan agar Anda membuat instans di wilayah yang sama dengan Instance ECS yang ingin Anda sambungkan. Hal ini memungkinkan komunikasi melalui jaringan internal.

    China (Hangzhou): Zone J

    Instance resource type

    • Elastic Storage Mode: Mendukung penskalaan disk independen dan penskalaan online yang lancar.

    • ServerlessPro: Anda hanya menentukan sumber daya komputasi yang diperlukan tanpa menyediakan sumber daya penyimpanan sebelumnya.

    Storage-elastic Mode

    Engine Version

    Kami menyarankan Anda memilih 7.0 Standard Edition untuk fungsionalitas yang lebih lengkap. 6.0 Standard Edition juga didukung.

    7.0 Standard Edition

    Instance Edition

    • High-performance (Basic Edition): Cocok untuk sebagian besar beban kerja analitik bisnis.

    • High-availability Edition: Direkomendasikan untuk beban kerja inti perusahaan.

    High-performance (Basic Edition)

    Vector engine optimization

    Pilih Enable.

    Enable

    VPC

    Pilih ID VPC.

    Untuk menghubungkan ke Instance ECS di wilayah yang sama melalui jaringan internal, pilih VPC yang sama dengan Instance ECS tersebut. Anda dapat memilih VPC yang sudah ada atau membuat VPC dan VSwitch sesuai petunjuk di halaman.

    vpc-xxxx

    vSwitch

    Pilih VSwitch dalam VPC tersebut. Jika tidak ada VSwitch yang terdaftar, zona ketersediaan saat ini tidak memiliki sumber daya VSwitch. Anda dapat beralih ke zona ketersediaan lain atau membuat VSwitch di zona saat ini sesuai petunjuk.

    vsw-xxxx

  4. Klik Buy Now, verifikasi pesanan, lalu klik Create Now.

  5. Selesaikan pembayaran dan klik Console untuk kembali ke daftar instans.

    Catatan

    Instans AnalyticDB for PostgreSQL memerlukan waktu untuk inisialisasi. Tunggu hingga status berubah menjadi Running sebelum melanjutkan.

Buat akun awal

Penting

AnalyticDB for PostgreSQL menyediakan dua jenis pengguna:

  • Pengguna dengan hak istimewa: Akun awal memiliki peran RDS_SUPERUSER dengan izin penuh ke database.

  • Pengguna standar: Tidak memiliki izin default. Pengguna dengan hak istimewa atau pengguna dengan izin GRANT harus memberikan akses ke objek basis data. Buat dan kelola pengguna.

  1. Di panel navigasi kiri, klik Account Management.

  2. Klik Create Account. Di jendela Create Account, masukkan nama akun dan atur password. Lalu, klik OK.

    Parameter

    Deskripsi

    Account

    Nama akun awal harus memenuhi persyaratan berikut:

    • Hanya boleh berisi huruf kecil, angka, dan garis bawah (_).

    • Harus dimulai dengan huruf kecil dan diakhiri dengan huruf kecil atau angka.

    • Tidak boleh dimulai dengan gp.

    • Panjangnya harus 2 hingga 16 karakter.

    New Password dan Confirm Password

    Password harus memenuhi persyaratan berikut:

    • Harus berisi karakter dari minimal tiga kategori berikut: huruf kapital, huruf kecil, angka, dan karakter khusus.

    • Karakter khusus yang didukung adalah !@#$%^&*()_+-=.

    • Panjangnya harus 8 hingga 32 karakter.

    Penting

    Untuk keamanan data, ganti password Anda secara berkala dan jangan gunakan kembali password sebelumnya.

Konfigurasikan daftar putih IP

Catatan

Anda dapat melewati langkah ini jika hanya menggunakan DMS untuk mengakses database. Jika Anda menggunakan IDE lokal atau Instance ECS untuk mengakses database, Anda harus mengonfigurasi daftar putih IP. Untuk mendapatkan alamat IP klien, lihat Prasyarat.

  1. Di bilah navigasi kiri halaman detail instans, klik Security Controls.

  2. Klik Create Whitelist dan konfigurasikan informasi berikut:

    Parameter

    Deskripsi

    Whitelist Name

    Nama grup daftar putih baru. Nama harus memenuhi persyaratan berikut:

    • Hanya boleh terdiri dari huruf kecil, angka, atau garis bawah (_).

    • Harus dimulai dengan huruf kecil dan diakhiri dengan huruf kecil atau angka.

    • Panjangnya harus 2 hingga 32 karakter.

    IP Addresses

    Alamat IP yang akan ditambahkan ke daftar putih. Perhatikan hal berikut:

    • Pisahkan beberapa alamat IP dengan koma (,). Alamat IP duplikat tidak diperbolehkan. Anda dapat menambahkan maksimal 999 alamat IP.

    • Anda dapat menggunakan alamat IP dalam format 10.23.12.24 dan Blok CIDR dalam format 10.23.12.24/24. CIDR merupakan singkatan dari Classless Inter-Domain Routing. Dalam mode CIDR, /24 menentukan panjang awalan alamat. Panjang awalan dapat berupa bilangan bulat dari 1 hingga 32.

    • Mengatur panjang awalan menjadi 0, seperti pada 0.0.0.0/0 atau 127.0.0.1/0, memungkinkan akses dari alamat IP mana pun. Hal ini menimbulkan risiko keamanan tinggi. Lakukan dengan hati-hati.

    • 127.0.0.1 menolak akses dari semua alamat IP eksternal.

  3. Klik OK.

Sambungkan ke database

Bagian ini menggunakan tool psql sebagai contoh untuk menunjukkan cara menyambungkan ke database. Untuk informasi tentang penyambungan dengan tool lain, lihat Koneksi klien.

  1. Instal psql.

    1. Unduh tool psql.

      wget https://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/181125/cn_zh/1598426198114/adbpg_client_package.el7.x86_64.tar.gz

      Perintah unduh di atas hanya berlaku jika sistem operasi klien Anda adalah RHEL 7 atau CentOS 7. Untuk versi psql sistem operasi lain, lihat Koneksi klien.

    2. Ekstrak paket tool psql.

      tar -xzvf adbpg_client_package.el7.x86_64.tar.gz
    3. Navigasi ke direktori tempat tool psql berada.

      cd adbpg_client_package/bin
  2. Masuk ke database.

     -p 5432 -d  -U ./psql -h <instance_endpoint> -p 5432 -d <database_name> -U </database_name></instance_endpoint>

    Untuk mendapatkan titik akhir koneksi:

    • Jika klien dan instans AnalyticDB for PostgreSQL ditempatkan pada Instance ECS di wilayah yang sama dan jenis jaringan yang sama, Anda dapat menggunakan Alamat IP pribadi untuk menyambungkan. Masuk ke Konsol AnalyticDB for PostgreSQL. Klik ID instans target untuk menuju halaman detail instans. Di bilah navigasi kiri, klik Basic Information dan temukan bagian Database Connection Information untuk melihat Internal Endpoint.

    • Jika klien dan instans AnalyticDB for PostgreSQL ditempatkan di wilayah berbeda, pada Instance ECS dengan jenis jaringan berbeda, atau pada sistem di luar Alibaba Cloud, Anda perlu mengajukan Alamat IP publik dan menggunakannya untuk menyambungkan. Untuk informasi lebih lanjut, lihat Kelola alamat IP publik.

    Contoh:

    psql -h gp-bp13zq652yy4p****-master.gpdb.rds.aliyuncs.com -p 5432 -d postgres -U testuser

    Saat Anda memasukkan password dan menekan Enter, prompt postgres=> muncul, menandakan koneksi berhasil.

Impor data vektor menggunakan SQL

  1. Verifikasi bahwa ekstensi pengambilan vektor FastANN telah diinstal.

    Jalankan perintah \dx fastann untuk memeriksa ekstensi tersebut. Jika perintah mengembalikan informasi tentang FastANN, artinya ekstensi tersebut telah diinstal. Jika tidak, kirim tiket untuk meminta dukungan teknis menginstalnya.

  2. Unduh data sampel.

    Untuk memudahkan pengujian, AnalyticDB for PostgreSQL menyediakan data uji yang dapat Anda unduh dari vector_sample_data.csv.

    Data sampel memiliki struktur sebagai berikut:

    Kolom

    Tipe

    Deskripsi

    id

    bigint

    ID.

    market_time

    timestamp

    Waktu kendaraan dirilis ke pasar.

    color

    varchar(10)

    Warna kendaraan.

    price

    int

    Harga kendaraan.

    feature

    float4[]

    Vektor fitur dari gambar kendaraan.

    Pada Server Linux, jalankan perintah berikut untuk mengunduh data sampel:

    wget https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20230606/uzkx/vector_sample_data.csv
  3. Impor data.

    1. Buat dan beralih ke database baru.

      -- Buat database bernama testdb.
      CREATE DATABASE testdb;
      
      -- Beralih ke database baru.
      \c testdb
    2. Buat tabel dengan kolom vektor berdasarkan data sampel.

      CREATE SCHEMA IF NOT EXISTS vector_test;
      CREATE TABLE IF NOT EXISTS vector_test.car_info
      (
        id bigint NOT NULL,
        market_time timestamp,
        color varchar(10),
        price int,
        feature float4[],
        PRIMARY KEY(id)
      ) 
      USING heap -- Mesin heap digunakan secara default saat optimisasi vector engine diaktifkan.
      DISTRIBUTED BY(id);
    3. Buat indeks.

      Dalam tutorial ini, Anda membuat indeks terstruktur untuk bidang seperti market_time, color, dan price, serta indeks vektor untuk vektor fitur dari gambar kendaraan.

      -- Ubah format penyimpanan kolom vektor menjadi PLAIN.
      ALTER TABLE vector_test.car_info ALTER COLUMN feature SET STORAGE PLAIN;
      
      -- Buat indeks terstruktur.
      CREATE INDEX ON vector_test.car_info(market_time);
      CREATE INDEX ON vector_test.car_info(color);
      CREATE INDEX ON vector_test.car_info(price);
      
      -- Buat indeks vektor.
      CREATE INDEX ON vector_test.car_info USING ann(feature) WITH (dim='10', pq_enable='0');
    4. Muat data sampel ke dalam tabel.

      \COPY vector_test.car_info FROM '/DATA_PATH/vector_sample_data.csv';

      Ganti /DATA_PATH/vector_sample_data.csv dengan path aktual ke file data sampel yang Anda unduh. Misalnya, jika Anda mengunduh data sampel ke direktori /home, path-nya harus /home/vector_sample_data.csv.

      Impor yang berhasil akan mengembalikan COPY 10000.

Analisis vektor

Bagian ini memberikan contoh cara melakukan analisis vektor untuk menghitung jarak Euclidean kuadrat, jarak hasil kali titik (dot product), dan kemiripan kosinus (cosine similarity).

Jarak Euclidean kuadrat

Lakukan analisis vektor dan kembalikan jarak Euclidean kuadrat.

SELECT id, l2_squared_distance(feature, array[0.495181661387,0.108697291209,0.181728549067,0.109680543346,0.19713082404,0.0197809514512,0.534227452778,0.442411970815,0.409909873031,0.0975687394505]::float4[]) AS distance 
  FROM vector_test.car_info 
  ORDER BY feature <-> array[0.495181661387,0.108697291209,0.181728549067,0.109680543346,0.19713082404,0.0197809514512,0.534227452778,0.442411970815,0.409909873031,0.0975687394505]::float4[] 
  LIMIT 10;

Contoh output:

 id | distance
------+--------------------
    2 | 0
 1331 | 0.0677967891097069
 1543 | 0.079616591334343
 5606 | 0.0892329216003418
 6423 | 0.0894578248262405
 1667 | 0.0903968289494514
 8215 | 0.0936210229992867
 7801 | 0.0952572822570801
 2581 | 0.0965127795934677
 2645 | 0.0987173467874527
(10 rows)

Jarak hasil kali titik (kemiripan kosinus)

Lakukan analisis vektor dan kembalikan jarak hasil kali titik. Untuk vektor yang dinormalisasi, jarak hasil kali titik setara dengan kemiripan kosinus.

SELECT id, dp_distance(feature, array[0.495181661387,0.108697291209,0.181728549067,0.109680543346,0.19713082404,0.0197809514512,0.534227452778,0.442411970815,0.409909873031,0.0975687394505]::float4[]) AS similarity 
  FROM vector_test.car_info 
  ORDER BY feature <-> array[0.495181661387,0.108697291209,0.181728549067,0.109680543346,0.19713082404,0.0197809514512,0.534227452778,0.442411970815,0.409909873031,0.0975687394505]::float4[] 
  LIMIT 10;

Contoh output:

 id | similarity
------+-------------------
    2 | 1
 1331 | 0.966101586818695
 1543 | 0.960191607475281
 5606 | 0.955383539199829
 6423 | 0.955271065235138
 1667 | 0.954801559448242
 8215 | 0.953189492225647
 7801 | 0.95237135887146
 2581 | 0.951743602752686
 2645 | 0.950641334056854
(10 rows)

Pencarian hibrida

Untuk menggabungkan filter terstruktur dengan pencarian vektor tak terstruktur, jalankan kueri SQL berikut:

SELECT id, dp_distance(feature, array[0.495181661387,0.108697291209,0.181728549067,0.109680543346,0.19713082404,0.0197809514512,0.534227452778,0.442411970815,0.409909873031,0.0975687394505]::float4[]) AS similarity 
  FROM vector_test.car_info 
  WHERE market_time >= '2020-10-30 00:00:00' 
  AND market_time < '2021-01-01 00:00:00' 
  AND color in ('red', 'white', 'blue') 
  AND price < 100 
  ORDER BY feature <-> array[0.495181661387,0.108697291209,0.181728549067,0.109680543346,0.19713082404,0.0197809514512,0.534227452778,0.442411970815,0.409909873031,0.0975687394505]::float4[] 
  LIMIT 10;

Contoh output:

 id | similarity
------+-------------------
 7645 | 0.922723233699799
 8956 | 0.920517802238464
 8219 | 0.91210675239563
 8503 | 0.895939946174622
 5113 | 0.895431876182556
 7680 | 0.893448948860168
 8433 | 0.893425941467285
 3604 | 0.89293098449707
 3945 | 0.891274154186249
 7153 | 0.891128540039062
(10 rows)

Dokumentasi terkait

Untuk informasi lebih lanjut tentang analisis vektor, lihat Analisis vektor.