すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:SQLを使用したベクトルデータのインポート

最終更新日:Sep 23, 2024

データベースでベクトル分析を実行する前に、データをデータベースにインポートする必要があります。 このトピックでは、SQLを使用してAnalyticDB for PostgreSQLインスタンスにデータをインポートする方法について説明します。

前提条件

  • ベクトル検索エンジンの最適化は、次のいずれかの方法を使用して有効になります。

  • AnalyticDB for PostgreSQLデータベースには、ベクトル検索拡張機能FastANNがインストールされています。 \dx fastannコマンドを実行して、FastANN拡張機能がインストールされているかどうかを確認できます。 拡張機能に関する関連情報が返された場合、拡張機能がインストールされます。 情報が返されない場合、

    チケットを起票して、拡張機能をインストールします。

テストデータ

テストを容易にするために、AnalyticDB for PostgreSQLvector_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ステートメントを使用してオンプレミスデータをインポートします。

  1. データベースに接続します

  2. 別のデータベースを作成して切り替えます。

    -- Create a database named testdb.
    CREATE DATABASE testdb;
    
    -- Switch to the testdb database.
    \c testdb
  3. テストデータファイルと同じスキーマを持つテーブルを作成します。 テーブルにはベクトル列が含まれている必要があります。

    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);
    
  4. インデックスを作成します。

    この例では、起動時間、色、および価格フィールドに対して構造化インデックスが作成され、特徴ベクトルフィールドに対してベクトルインデックスが作成されます。

    -- 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');
  5. テストデータをテーブルにインポートします。

    \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が返された場合、データのインポートは成功です。

関連ドキュメント

次に何をすべきか

ベクター解析の実行