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

Platform For AI:KVへのテーブル

最終更新日:Jul 22, 2024

このトピックでは、Machine Learning Designerが提供するTable to KVコンポーネントを使用して、共通形式のテーブルをキー値形式のテーブルに変換する方法について説明します。

制限事項

  • 出力テーブルには、入力テーブルのnull値は表示されません。 出力テーブルに保持する列を指定できます。 指定された列は元の形式で保持されます。

  • 入力key_mapテーブルが存在する場合、出力テーブルに変換される列は、key_mapテーブルとkey-valueテーブルの両方にキーが存在する列です。

  • 入力key_mapテーブルが存在し、key_mapテーブルで指定されたデータ型が入力テーブルの特定の列のデータ型と異なる場合、出力key_mapテーブルは指定したデータ型を使用します。

  • 入力テーブルでキーと値の形式に変換する列は、BIGINTまたはDOUBLEデータ型である必要があります。

テーブルをKVコンポーネントに設定する

次のいずれかの方法を使用して、Table to KVコンポーネントを設定できます。

方法1: 視覚化された方法でテーブルをKVコンポーネントに設定する

Machine Learning Platform for AI (PAI) のMachine Learning Designerのパイプラインページで、Table to KVコンポーネントのパラメーターを設定できます。 Machine Learning Designerは、以前はMachine Learning Studioとして知られていました。 下表に、各パラメーターを説明します。

タブ

パラメーター

説明

フィールド設定

変換する列

変換する列の名前。

予約済み列

保持する列の名前。

KVデリミタ

キーと値の間で使用される区切り文字。 Colons (:) はデフォルトで使用されます。

KVペア区切り文字

キーと値のペア間で使用される区切り文字。 デフォルトでは、Commas (,) が使用されます。

パラメーター設定

列をIDに変換

列をIDに変換するかどうかを指定します。 有効な値:

  • 不可

チューニング

コア

コアの数。 システムは、入力データの量に基づいて、トレーニングに使用されるコアを自動的に割り当てます。

メモリサイズ

各コアのメモリサイズ。 システムは、入力データの量に基づいてメモリを自動的に割り当てます。 単位:MB。

方法2: PAIコマンドを使用してテーブルをKVコンポーネントに設定する

Table to KVコンポーネントのパラメーターは、PAIコマンドを使用して設定できます。 SQLスクリプトコンポーネントを使用してPAIコマンドを実行できます。 詳細については、「SQLスクリプト」をご参照ください。 下表に、各パラメーターを説明します。

PAI -name TableToKV
    -project algo_public
    -DinputTableName=maple_tabletokv_basic_input
    -DoutputTableName=maple_tabletokv_basic_output
    -DselectedColNames=col0,col1,col2
    -DappendColNames=rowid;

パラメーター

必須

説明

デフォルト値

inputTableName

入力テーブルの名前。

デフォルト値なし

inputTablePartitions

不可

トレーニング用に入力テーブルから選択されたパーティション。 このパラメーターは、Partition_name=value形式で指定できます。

マルチレベルパーティションが存在する場合、このパラメーターはname1=value1/name2=value2; 形式で指定できます。

複数のパーティションはコンマ (,) で区切ります。

選択されたすべてのパーティション

selectedColNames

不可

変換するために選択した列の名前。 選択する列のデータ型は、BIGINTまたはDOUBLEである必要があります。

選択されたすべての列

appendColNames

不可

保持する列の名前。 指定された列は元の形式で保持されます。

デフォルト値なし

outputTableName

出力テーブルの名前。

デフォルト値なし

kvDelimiter

不可

キーと値の間で使用される区切り文字。

コロン (:)

itemDelimiter

不可

キーと値のペア間で使用される区切り文字。

コンマ (,)

convertColToIndexId

不可

列をIDに変換するかどうかを指定します。 有効な値:

  • 1: 列はIDに変換されます。

  • 0: 列はIDに変換されません。

0

inputKeyMapTableName

不可

入力インデックステーブルの名前。

このパラメーターは、convertColToIndexIdパラメーターが1に設定されている場合にのみ有効です。 このパラメーターが指定されていない場合、システムは自動的に一連のIDを計算します。

null

outputKeyMapTableName

convertColToIndexIdに基づいて決定

出力インデックステーブルの名前。 このパラメーターは、convertColToIndexIdパラメーターが1に設定されている場合にのみ必要です。

デフォルト値なし

ライフサイクル

不可

出力テーブルのライフサイクル。 このパラメーターの値は正の整数でなければなりません。

デフォルト値なし

coreNum

不可

コアの数。 このパラメーターの値は正の整数でなければなりません。 有効な値: [1,9999] 。 このパラメーターは、memSizePerCoreパラメーターと一緒に使用する必要があります。

システムによって決定される

memSizePerCore

不可

各コアのメモリサイズ。 単位:MB。 このパラメーターの値は正の整数でなければなりません。 有効値: [1024,64 × 1024]

システムによって決定される

例:

  • 入力データ

    drop table if exists test;
    create table test as
    select * from
        (
            select 0 as rowid, 1 as col0, 1.1 as col1, 2 as col2 union all
            select 1 as rowid, 0 as col0, 1.2 as col1, 3 as col2 union all
            select 2 as rowid, 1 as col0, 2.3 as col1, 4 as col2 union all
            select 3 as rowid, 1 as col0, 0.0 as col1, 5 as col2
        ) tmp;
  • PAIコマンド

    PAI -name TableToKV
        -project algo_public
        -DinputTableName=test
        -DoutputTableName=test_output
        -DselectedColNames=col0,col1,col2
        -DconvertColToIndexId=1
        -DoutputKeyMapTableName=test_key_map
        -DappendColNames=rowid;
  • 出力テーブル

    出力テーブルtest_output

    rowid

    kv

    0

    0:1,1:1.1,2:2

    1

    0:0,1:1.2,2:3

    2

    0:1,1:2.3,2:4

    3

    0:1,1:0,2:5

    出力テーブルtest_key_map

    col_name

    col_index

    col_datatype

    col0

    0

    bigint

    col1

    1

    double

    col2

    2

    bigint