データベースでベクトル分析を実行する前に、データをデータベースにインポートする必要があります。 このトピックでは、SQLを使用してAnalyticDB for PostgreSQLインスタンスにデータをインポートする方法について説明します。
前提条件
ベクトル検索エンジンの最適化は、次のいずれかの方法を使用して有効になります。
AnalyticDB for PostgreSQLインスタンスを作成するときに、ベクトル検索エンジンの最適化を有効にします。 詳細は、インスタンスの作成をご参照ください。
AnalyticDB for PostgreSQLインスタンスの作成後、ベクトル検索エンジンの最適化を有効にします。 詳細については、「ベクトル検索エンジンの最適化の有効化または無効化」をご参照ください。
AnalyticDB for PostgreSQLデータベースには、ベクトル検索拡張機能FastANNがインストールされています。
\dx fastann
コマンドを実行して、FastANN拡張機能がインストールされているかどうかを確認できます。 拡張機能に関する関連情報が返された場合、拡張機能がインストールされます。 情報が返されない場合、チケットを起票して、拡張機能をインストールします。
テストデータ
テストを容易にするために、AnalyticDB for PostgreSQLはvector_sample_data.csvという名前のテストデータファイルを提供します。
次の表に、ファイルのスキーマを示します。
項目 | データ型 | 説明 |
id | bigint | 車のシリアル番号。 |
market_time | timestamp | 車が市場に投入される時間。 |
color | varchar (10) | 車の色。 |
価格 | int | 車の価格。 |
特徴 | float4[] | 車の画像の特徴ベクトル。 |
Linuxシステムでは、コマンドを実行してテストデータをダウンロードできます。 サンプルコマンド:
wget https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20230606/uzkx/vector_sample_data.csv
データのインポート
この例では、COPY
ステートメントを使用してオンプレミスデータをインポートします。
別のデータベースを作成して切り替えます。
-- Create a database named testdb. CREATE DATABASE testdb; -- Switch to the testdb database. \c testdb
テストデータファイルと同じスキーマを持つテーブルを作成します。 テーブルにはベクトル列が含まれている必要があります。
vector_testが存在しない場合は
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);
インデックスを作成します。
この例では、起動時間、色、および価格フィールドに対して構造化インデックスが作成され、特徴ベクトルフィールドに対してベクトルインデックスが作成されます。
-- Change the storage format of the vector column to PLAIN. ALTER TABLE vector_test.car_info ALTER COLUMN feature SET STORAGE PLAIN; -- Create structured indexes. 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 a vector index. 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/
をテストデータのディレクトリに設定します。 たとえば、テストデータが/home
ディレクトリにダウンロードされている場合は、/DATA_PATH/vector_sample_data.csを/home/vector_sample_data.csv
に置き換えます。COPY 10000
が返された場合、データのインポートは成功です。
関連ドキュメント
次に何をすべきか
ベクター解析の実行