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

MaxCompute:Proxima CE パッケージをインストールする

最終更新日:Apr 08, 2025

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 を使用したリソースのアップロード方法の詳細については、「リソースを追加する」をご参照ください。

  1. DataWorks の [データ開発] ページで、インストールパッケージを JAR リソースとして視覚的にアップロードします。

    説明

    次の点に注意してください。

    • MaxCompute にアップロードされていないリソースを作成またはアップロードする場合は、[MaxCompute にアップロード] を選択する必要があります。リソースが MaxCompute に既にアップロードされている場合は、[MaxCompute にアップロード] をオフにします。そうしないと、リソースのアップロード時にエラーが報告されます。

    • リソースの作成またはアップロード時に [MaxCompute にアップロード] を選択すると、リソースの作成またはアップロード後に、リソースは DataWorks と MaxCompute の両方に保存されます。後で MaxCompute からリソースを削除するコマンドを実行しても、DataWorks に保存されているリソースは引き続き存在し、通常どおり表示されます。

    • リソース名は、アップロードされたファイルの名前と異なる場合があります。

    image

  2. リソースをコミットしてデプロイします。

    リソースを作成した後、リソースの構成タブの上部にあるツールバーの 提交 アイコンをクリックして、リソースを開発環境にコミットできます。

    説明

    本番環境のノードでリソースを使用する必要がある場合は、リソースを本番環境にもデプロイする必要があります。詳細については、「ノードをデプロイする」をご参照ください。

入力テーブルを準備する

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

...

...

...

...