在進行向量分析前,您需要在資料庫中匯入資料,本教程將指導您如何通過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
命令匯入本機資料。
建立一個新的資料庫並切換到該庫。
-- 建立一個名為testdb的資料庫 CREATE DATABASE testdb; -- 切換到該庫 \c testdb
根據測試資料建立一張包含向量列的表。
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);
建立索引。
本次教程將為汽車的上市時間、顏色、價格等欄位建立結構化索引,為汽車照片特徵向量建立向量索引。
-- 修改向量列的儲存格式為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');
將測試資料載入至資料表中。
\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
。