Proxima CE を使用する前に、Proxima CE パッケージをインストールする必要があります。このトピックでは、環境の準備、インストールパッケージの取得とアップロード、および Proxima CE の入力データの準備方法について説明します。
前提条件
「準備」の手順を完了する必要があります。
Proxima CE インストールパッケージを取得する
Proxima CE パッケージ をクリックして、インストールパッケージをダウンロードします。
Proxima CE インストールパッケージには、Proxima CE の実行可能 JAR ファイルが含まれています。 JAR ファイルをリソースとして MaxCompute プロジェクトにアップロードした後、JAR ファイルを呼び出して Proxima CE タスクを実行できます。
インストールパッケージを MaxCompute リソースとしてアップロードする
MaxCompute クライアント (odpscmd) または DataWorks を使用して、JAR ファイルをリソースとして MaxCompute プロジェクトにアップロードできます。この例では、DataWorks を使用してリソースをアップロードおよび公開します。 odpscmd を使用したリソースのアップロード方法の詳細については、「リソースを追加する」をご参照ください。
DataWorks の [データ開発] ページで、インストールパッケージを JAR リソースとして視覚的にアップロードします。
説明次の点に注意してください。
MaxCompute にアップロードされていないリソースを作成またはアップロードする場合は、[MaxCompute にアップロード] を選択する必要があります。リソースが MaxCompute に既にアップロードされている場合は、[MaxCompute にアップロード] をオフにします。そうしないと、リソースのアップロード時にエラーが報告されます。
リソースの作成またはアップロード時に [MaxCompute にアップロード] を選択すると、リソースの作成またはアップロード後に、リソースは DataWorks と MaxCompute の両方に保存されます。後で MaxCompute からリソースを削除するコマンドを実行しても、DataWorks に保存されているリソースは引き続き存在し、通常どおり表示されます。
リソース名は、アップロードされたファイルの名前と異なる場合があります。

リソースをコミットしてデプロイします。
リソースを作成した後、リソースの構成タブの上部にあるツールバーの
アイコンをクリックして、リソースを開発環境にコミットできます。説明本番環境のノードでリソースを使用する必要がある場合は、リソースを本番環境にもデプロイする必要があります。詳細については、「ノードをデプロイする」をご参照ください。
入力テーブルを準備する
Proxima CE タスクを実行する前に、次の入力テーブルを準備する必要があります。
doc テーブル:ベーステーブル。
query テーブル:クエリテーブル。
テーブル作成コマンド
-- doc テーブルを作成する
CREATE TABLE doc_table_float_smoke(pk STRING,vector STRING <,category BIGINT>) PARTITIONED BY (pt STRING);
-- query テーブルを作成する
CREATE TABLE query_table_float_smoke(pk STRING,vector STRING <,category BIGINT>) PARTITIONED BY (pt STRING);入力テーブルの形式要件
テーブル名
入力テーブルの名前には、
tmp_文字列を含めることはできません。そうしないと、タスクは実行に失敗します。入力テーブルの名前と入力テーブルのパーティション値の長さは 1 ~ 64 文字である必要があります。そうしないと、タスクは実行に失敗します。
フィールド
説明入力テーブルには、次の固定フィールドが含まれている必要があり、フィールド名は完全に同じである必要があります。
固定フィールド
説明
データ型
pk
クエリで使用されるプライマリキー値フィールド。
デフォルトのデータ型は STRING です。
pk 列の場合:値は数値または文字列です。たとえば、
1.nid,2.nid,3.nid,...形式の文字列、または123,456,789,...形式の INT64 値です。pk 列の場合:すべての値が INT64 値の場合は、列に BIGINT データ型を指定できます。起動パラメーター
-pk_typeも INT64 として指定すると、パフォーマンスが向上します。
vector
ベクトルフィールド。
デフォルトのデータ型は STRING です。
category
複数カテゴリのシナリオで使用されるカテゴリ。
このフィールドは、複数カテゴリ検索の場合にのみ必須です。
デフォルトのデータ型は BIGINT です。
pt
パーティションフィールド。
デフォルトのデータ型は STRING です。
入力テーブルの例
doc テーブル
pk
vector
pt
id1
0~1~1~5
20190322
id2
0~1~1~2
20190322
id3
3~2~1~1
20190322
...
...
...
query テーブル
pk
vector
pt
id8
0~1~1~5
20190322
id9
0~1~1~2
20190322
id10
3~2~1~1
20190322
...
...
...
次のステップ:ベクトル検索機能を使用する
シナリオ | 主な機能 | 参照 |
基本的なベクトル検索 | 数百万のデータレコードから上位 K 件の結果の検索をサポートします。 | |
複数カテゴリ検索 | クエリテーブルと doc テーブルが異なるカテゴリに属するシナリオや、単一のクエリテーブルが複数のカテゴリに属するシナリオなど、複数カテゴリのシナリオをサポートします。 | |
クラスタシャーディング | クラスタシャーディングに基づいてインデックスを作成できます。この方法を使用すると、計算するデータ量を削減し、インデックスベースのクエリを高速化できます。 | |
内積とコサイン距離 | 内積検索をサポートします。 | |
コンバーター | コンバーターを使用できます。ほとんどの場合、コンバーターはパフォーマンスを向上させ、インデックスサイズを小さくするのに役立ちます。検索の損失は、実際の状況によって異なります。 |
ベクトル検索機能を使用すると、出力テーブルが自動的に生成され、MaxCompute に保存されます。出力テーブルを作成する必要はありません。 Proxima CE コードの -output_table パラメーターの後にテーブル名を指定するだけです。出力テーブルの形式の詳細については、このトピックの「出力テーブルの形式」をご参照ください。
出力テーブルの形式
ベクトル検索タスクを実行すると、出力テーブルが自動的に生成され、MaxCompute に保存されます。次の表に、出力テーブルの形式を示します。
テーブル名:Proxima CE のコードで指定した出力テーブルの名前。
出力テーブルの名前には、ピリオド (
.) 文字を含めることはできません。これは MaxCompute の特殊文字であるため、MaxCompute がテーブルを解析できなくなります。出力テーブルの名前には、
tmp_文字列を含めることはできません。そうしないと、タスクは実行に失敗します。出力テーブルの名前と出力テーブルのパーティションの名前の長さは 1 ~ 64 文字である必要があります。そうしないと、タスクは実行に失敗します。
フィールド
固定フィールド
説明
データ型
pk
クエリテーブル内の各クエリのプライマリキー値。
デフォルトのデータ型は STRING です。
pk 列の値は数値または文字列です。たとえば、
1.nid,2.nid,3.nid,...形式の文字列、または123,456,789,...形式の INT64 値です。pk 列のすべての値が INT64 値の場合は、列に BIGINT データ型を指定できます。起動パラメーター
-pk_typeも INT64 として指定すると、パフォーマンスが向上します。
knn_result
クエリ用に取得された doc テーブルのプライマリキー値。
デフォルトのデータ型は STRING です。
score
取得されたドキュメントの類似度スコア。
デフォルトのデータ型は STRING です。 Proxima CE では、結果は類似度スコアの降順でソートされます。
説明Proxima2 カーネルの
inner_product/mips_squared_euclidean距離アルゴリズムの場合、距離が大きいほど類似度が高くなります。他の距離アルゴリズムの場合、距離が小さいほど類似度が高くなります。ただし、Proxima CE は統一された処理を提供し、類似度スコアの降順で結果をソートします。inner_product/mips_squared_euclidean距離アルゴリズムの場合、結果はscore値の降順でソートされます。他の距離アルゴリズムの場合、結果は
score値の昇順でソートされます。これは、Proxima2 カーネルと一致しています。
category
複数カテゴリのシナリオで使用されるカテゴリ。
このフィールドは、複数カテゴリ検索の場合にのみ必須です。
デフォルトのデータ型は BIGINT です。
pt
パーティションフィールド。
デフォルトのデータ型は STRING です。
出力テーブルの例
pk | knn_result | score | pt |
id8 | id1 | 0.1 | 20190322 |
id8 | id2 | 0.2 | 20190322 |
id9 | id1 | 0.1 | 20190322 |
id9 | id3 | 0.3 | 20190322 |
... | ... | ... | ... |