全部產品
Search
文件中心

AnalyticDB:通過SQL匯入向量資料

更新時間:Jun 19, 2024

在進行向量分析前,您需要在資料庫中匯入資料,本教程將指導您如何通過SQL匯入資料至AnalyticDB PostgreSQL版執行個體。

前提條件

  • 已開啟向量檢索引擎功能,目前已支援如下兩種方式開啟:

  • 資料庫已安裝向量檢索外掛程式FastANN,您可以通過\dx fastann命令查看是否安裝,如果返回FastANN外掛程式的相關資訊,表示已安裝;如果沒有返回任何資訊,請提交工單聯絡支援人員進行安裝。

測試資料

為方便您測試,AnalyticDB PostgreSQL版提供了測試資料,下載連結,請參見vector_sample_data.csv

測試資料的表結構如下。

欄位

類型

說明

id

bigint

編號。

market_time

timestamp

汽車上市時間。

color

varchar(10)

汽車的顏色。

price

int

汽車的價格。

feature

float4[]

汽車照片的特徵向量。

以下樣本為Linux系統的伺服器下載測試資料的命令。

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

匯入資料

本教程將使用\COPY命令匯入本機資料。

  1. 登入資料庫

  2. 建立一個新的資料庫並切換到該庫。

    -- 建立一個名為testdb的資料庫
    CREATE DATABASE testdb;
    
    -- 切換到該庫
    \c testdb
  3. 根據測試資料建立一張包含向量列的表。

    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)
    ) DISTRIBUTED BY(id);
    
  4. 建立索引。

    本次教程將為汽車的上市時間、顏色、價格等欄位建立結構化索引,為汽車照片特徵向量建立向量索引。

    -- 修改向量列的儲存格式為PLAIN
    ALTER TABLE vector_test.car_info ALTER COLUMN feature SET STORAGE PLAIN;
    
    -- 建立結構化索引
    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);
    
    -- 建立向量索引
    CREATE INDEX ON vector_test.car_info USING ann(feature) WITH (dim='10', pq_enable='0');
  5. 將測試資料載入至資料表中。

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

    請將樣本中的/DATA_PATH/vector_sample_data.csv替換為測試資料所在的路徑,例如,測試資料下載到了/home目錄下,那麼此處應該為/home/vector_sample_data.csv

    匯入成功後,系統會返回COPY 10000

相關文檔

下一步

向量分析