このトピックでは、Table Store Writer でサポートされるデータ型およびパラメーター、およびコードエディターを使用した設定方法について説明します。

Table Storeは、Apsara 分散オペレーティングシステム上に構築された NoSQL データベースサービスです。大量の構造化データをリアルタイムで保存し、アクセスできます。 Table Store は、インスタンスとテーブルにデータを編成します。 データシャーディングおよび負荷分散テクノロジーを使用して、Table Store はシームレスにデータスケールを拡張します。

Table Store Writer は、公式の Java SDK を使用して Table Store サーバーに接続し、Table Store サーバーにデータを書き込みます。 Table Store Writer では、書き込みタイムアウト時の再試行、書き込みによる例外時の再試行、およびバッチサブミッション、などの書き込みプロセスが大幅に最適化されました。

現在、Table Store Writer はすべての Table Store データ型をサポートしています。 下表に、Table Store がサポートしているデータ型を示します。
Category Table store のデータ型
Integer INTEGER
Floating point Double
String STRING
Boolean BOOLEAN
Binary BINARY
INTEGER 型のデータを書き込むには、コードエディターでデータ型を INT に設定します。 次に、DataWorks が INT 型を INTEGER 型に変換します。 Table Store に書き込まれるデータのデータ型を INTEGER に設定すると、ログにエラーが記録され、同期ノードは失敗します。

パラメーター

パラメーター 説明 必須 / 任意 デフォルト値
datasource 接続の名前です。 追加された接続の名前と同じである必要があります。 コードエディタで接続を追加できます。 必須 なし
endPoint Table Store サーバーのエンドポイントです。 必須 なし
accessId Table Store にアクセスするためのAccessKey ID です。 必須 なし
accessKey Table Store にアクセスするための AccessKey secret です。 必須 なし
instanceName アクセスする Table Store インスタンスの名前です。

このインスタンスを介してTable Store サービスにアクセスし、管理します。 Table Store の有効化後、Table Store コンソールでインスタンスを作成し、このインスタンス内でテーブルを作成および管理します。 インスタンスは、Table Store リソースを管理するための基本単位です。 アプリケーションに対するすべてのアクセス制御およびリソース測定は、インスタンスレベルで完了します。

必須 なし
table 書き込み先テーブルの名前です。 書き込み先テーブルとして指定できるテーブルは 1 つに限られます。 Table Store では、複数テーブルの同期は不要です。 必須 なし
primaryKey Table Store 内の書き込み先テーブルの主キーです。 主キーは JSON 配列に記述されます。 Table Store は NoSQL データベースサービスです。 Table Store Writer でデータをインポートするには、フィールド名を指定する必要があります。
Table Store では、STRING および INT 型の主キーのみサポートされます。 したがって、コードエディタで主キーのデータ型をいずれかに設定する必要があります。
Data Integration では、データ型の変換をサポートしています。 Table Store Write rは、STRING または INT 型ではないデータをSTRINGまたはINT 型に変換できます。 例:
"primaryKey" : [
    {"name":"pk1", "type":"string"},
    {"name":"pk2", "type":"int"}
                    ],
必須 なし
column データが書き込まれる書き込み先テーブルの列です。 列は JSON 配列に記述されます。

書式:

{"name":"col2", "type":"INT"},

name パラメーターは、データが書き込まれる列の名前を指定します。 type パラメーターは、列のデータ型を指定します。 Table Store でサポートされているデータ型は、String、Int、Double、Boolean、および Binary です。

必須 なし
writeMode

書き込みモードです。 有効な値は、PutRow および UpdateRow です。

  • PutRow:指定された行にデータを挿入する Table Store の API です。 指定された行が存在しない場合は、新しい行が追加されます。 それ以外の場合は、元の行が上書きされます。
  • UpdateRow:指定された行のデータを更新する Table Store の APIです。 指定された行が存在しない場合は、新しい行が追加されます。 それ以外の場合は、指定された列の値は、リクエストに合わせて、追加、変更、又は削除されます。
必須 なし
requestTotalSizeLimitation Table Store に書き込まれる行の最大データサイズです。 値は数値です。 任意 1 MB
attributeColumnSizeLimitation Table Store に書き込まれる属性列のデータの最大サイズです。 値は数値です。 任意 2 MB
primaryKeyColumnSizeLimitation Table Store に書き込まれる主キー列のデータの最大サイズです。 値は数値です。 任意 1 KB
attributeColumnMaxCount Table Store に書き込まれる属性列の最大数です。 値は数値です。 任意 1024

コードレス UI を使用した Table Store Writer の設定

現在、Table Store Writerではコードレス UI をサポートしていません。

コードエディターを使用した Table Store Writer の設定

以下のコードでは、データを Table Store に書き込むようにノードが設定されます。
{
    "type":"job",
    "version":"2.0",// The version number.
    "steps":[
        { 
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"ots",// The writer type.
            "parameter":{
                "datasource":"",// The connection name.
                "column":[// The columns to which data is written.
                    {
                        "name":"columnName1",// The name of the column.
                        "type":"INT"// The data type of the column.
                    },
                    {
                        "name":"columnName2",
                        "type":"STRING"
                    },
                    {
                        "name":"columnName3",
                        "type":"DOUBLE"
                    },
                    {
                        "name":"columnName4",
                        "type":"BOOLEAN"
                    },
                    {
                        "name":"columnName5",
                        "type":"BINARY"
                    }
                ],
                "writeMode":"",// The write mode.
                "table":"",// The name of the destination table.
                "primaryKey":[// The primary keys of the destination table in Table Store.
                    {
                        "name":"pk1",
                        "type":"STRING"
                    },
                    {
                        "name":"pk2",
                        "type":"INT"
                    }
                ]
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// The maximum number of dirty data records allowed.
        },
        "speed":{
            "throttle":false,// Specifies whether to enable bandwidth throttling. A value of false indicates that the bandwidth is not throttled. A value of true indicates that the bandwidth is throttled. The maximum transmission rate takes effect only if you set this parameter to true.
            "concurrent":1// The maximum number of concurrent threads.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}