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

:データの操作

最終更新日:Dec 28, 2024

Tablestore CLI を使用して、データの挿入、読み取り、更新、削除、スキャン、エクスポート、インポートを実行できます。

データの挿入

データテーブルにデータ行を挿入できます。または、JSON 設定ファイルをインポートして、データテーブルにデータ行を挿入することもできます。

コマンド構文

put --pk '[primaryKeyValue, primaryKeyValue]' --attr '[{"c":"attributeColumnName", "v":"attributeColumnValue"}, {"c":"attributeColumnName", "v":"attributeColumnValue", "ts":timestamp}]' --condition condition

次の表に、コマンドのパラメーターを示します。

パラメーター

必須

説明

-k,--pk

はい

["86", 6771]

行のプライマリキー列の値。このパラメーターの値は配列です。

重要
  • 指定するプライマリキー列の数と型は、データテーブル内のプライマリキー列の実際の数と型と同じである必要があります。

  • プライマリキー列が自動インクリメントプライマリキー列の場合、自動インクリメントプライマリキー列の値をプレースホルダー null に設定するだけで済みます。

-a,--attr

はい

[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china", "t":"string", "ts":15327798534}]

行の属性列。このパラメーターの値は JSON 配列です。各属性列は、次のフィールドを使用して指定されます。

  • c: 必須。属性列の名前。

  • v: 必須。属性列の値。

  • t: オプション。属性列の型。有効な値: integer、string、binary、boolean、double。このフィールドを string に設定すると、属性列の値は UTF-8 でエンコードされた文字列になります。このフィールドは、binary 型の属性列に必要です。

  • ts: オプション。データのバージョン番号として使用されるタイムスタンプ。タイムスタンプは自動的に生成することも、設定することもできます。このフィールドを設定しない場合、Tablestore はタイムスタンプを自動的に生成します。詳細については、データバージョンと TTL を参照してください。

--condition

いいえ

ignore

データ行を挿入するかどうかを決定するために使用される、条件付き更新の行存在条件。デフォルト値: ignore。有効な値:

  • ignore: 行が存在するかどうかに関係なく、データが挿入されます。行が存在する場合、既存のデータは挿入されたデータによって上書きされます。

  • exist: 行が存在する場合にのみ、データが挿入されます。既存のデータは挿入されたデータによって上書きされます。

  • not_exist: 行が存在しない場合にのみ、データが挿入されます。

詳細については、条件付き更新 を参照してください。

-i, --input

いいえ

/temp/inputdata.json

データの挿入に使用する JSON 設定ファイルのパス。

設定ファイルを使用してデータを挿入することもできます。コマンド構文は、オペレーティングシステムによって異なります。

  • Windows

    put -i D:\\localpath\\filename.json
  • Linux および macOS

    put -i /localpath/filename.json

次のサンプルコードは、設定ファイルの内容の例を示しています。

{
    "PK":{
        "Values":[
            "86",
            6771
        ]
    },
    "Attr":{
        "Values":[
            {
                "C":"age",
                "V":32,
                "TS":1626860801604,
                "IsInt":true
            }
        ]
    }
}

  • 例 1

    次のサンプルコードは、データテーブルにデータ行を挿入する方法の例を示しています。行の最初のプライマリキー列の値は "86" です。行の 2 番目のプライマリキー列の値は 6771 です。行には、name と country の 2 つの属性列が含まれています。name 列と country 列は STRING 型です。

    put --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]'
  • 例 2

    次のサンプルコードは、データテーブルにデータ行を挿入する方法の例を示しています。行の最初のプライマリキー列の値は "86" です。行の 2 番目のプライマリキー列の値は 6771 です。行には、name と country の 2 つの属性列が含まれています。name 列と country 列は STRING 型です。この例では、行が存在するかどうかに関係なく、データが挿入されます。行が存在する場合、挿入されたデータは既存のデータを上書きします。

    put --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]'  --condition ignore
  • 例 3

    次のサンプルコードは、データテーブルにデータ行を挿入する方法の例を示しています。行の最初のプライマリキー列の値は "86" です。行の 2 番目のプライマリキー列の値は 6771 です。行には、name と country の 2 つの属性列が含まれています。name 列と country 列は STRING 型です。country 列のデータのタイムスタンプは 15327798534 です。

    put --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china", "t":"string", "ts":15327798534}]'
  • 例 4

    次のサンプルコードは、2 番目のプライマリキー列が自動インクリメントプライマリキー列であるデータテーブルにデータ行を挿入する方法の例を示しています。行の最初のプライマリキー列の値は "86" です。行の 2 番目のプライマリキー列の値は null です。行には、name と country の 2 つの属性列が含まれています。name 列と country 列は STRING 型です。

    put --pk '["86", null]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]'

データの読み取り

データテーブルからデータを読み取り、ローカルの JSON ファイルにエクスポートできます。

説明

読み取る行が存在しない場合は、空の結果が返されます。

コマンド構文

get --pk '[primaryKeyValue,primaryKeyValue]'

次の表に、コマンドのパラメーターを示します。

パラメーター

必須

説明

-k,--pk

はい

["86",6771]

行のプライマリキー列の値。このパラメーターの値は配列です。

重要

指定するプライマリキー列の数と型は、データテーブル内のプライマリキー列の実際の数と型と同じである必要があります。

-c,--columns

いいえ

name,uid

読み取る列。プライマリキー列または属性列の名前を指定できます。列を指定しない場合は、行のすべてのデータが返されます。

--max_version

いいえ

1

読み取ることができるデータバージョンの最大数。

--time_range_start

いいえ

1626860469000

読み取るデータのバージョン範囲。time_range_start パラメーターは開始タイムスタンプを指定し、time_range_end パラメーターは終了タイムスタンプを指定します。範囲には開始値が含まれ、終了値は含まれません。

--time_range_end

いいえ

1626865270000

--time_range_specific

いいえ

1626862870000

読み取るデータの特定のバージョン。

-o, --output

いいえ

/tmp/querydata.json

クエリ結果がエクスポートされる JSON ファイルのローカルパス。

次のサンプルコードは、最初のプライマリキー列の値が "86" で、2 番目のプライマリキー列の値が 6771 であるデータ行を読み取る方法の例を示しています。

get --pk '["86",6771]'

データの更新

データテーブルのデータ行を更新できます。または、JSON 設定ファイルをインポートして、データテーブルのデータ行を更新することもできます。

コマンド構文

update --pk '[primaryKeyValue, primaryKeyValue]' --attr '[{"c":"attributeColumnName", "v":"attributeColumnValue"}, {"c":"attributeColumnName", "v":"attributeColumnValue", "ts":timestamp}]' --condition condition

次の表に、コマンドのパラメーターを示します。

パラメーター

必須

説明

-k,--pk

はい

["86", 6771]

行のプライマリキー列の値。このパラメーターの値は配列です。

重要

指定するプライマリキー列の数と型は、データテーブル内のプライマリキー列の実際の数と型と同じである必要があります。

--attr

はい

[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china", "ts":15327798534}]

行の属性列。このパラメーターの値は JSON 配列です。各属性列は、次のフィールドを使用して指定されます。

  • c: 必須。属性列の名前。

  • v: 必須。属性列の値。

  • t: オプション。属性列の型。有効な値: integer、string、binary、boolean、double。このフィールドを string に設定すると、属性列の値は UTF-8 でエンコードされた文字列になります。このフィールドは、binary 型の属性列に必要です。

  • ts: オプション。データのバージョン番号として使用されるタイムスタンプ。タイムスタンプは自動的に生成することも、設定することもできます。このフィールドを設定しない場合、Tablestore はタイムスタンプを自動的に生成します。

--condition

いいえ

ignore

データ行を更新するかどうかを決定するために使用される、条件付き更新の行存在条件。デフォルト値: ignore。有効な値:

  • ignore: 行が存在するかどうかに関係なく、データが挿入されます。行が存在する場合、既存のデータは挿入されたデータによって上書きされます。

  • exist: 行が存在する場合にのみ、データが挿入されます。既存のデータは挿入されたデータによって上書きされます。

  • not_exist: 行が存在しない場合にのみ、データが挿入されます。

詳細については、条件付き更新 を参照してください。

-i, --input

いいえ

/tmp/inputdata.json

データの更新に使用する JSON 設定ファイルのパス。

設定ファイルを使用してデータを更新することもできます。コマンド構文は、オペレーティングシステムによって異なります。

  • Windows

    update -i D:\\localpath\\filename.json
  • Linux および macOS

    update -i /localpath/filename.json

次のサンプルコードは、設定ファイルの内容の例を示しています。

{
    "PK":{
        "Values":[
            "86",
            6771
        ]
    },
    "Attr":{
        "Values":[
            {
                "C":"age",
                "V":32,
                "TS":1626860801604,
                "IsInt":true
            }
        ]
    }
}

次のサンプルコードは、最初のプライマリキー列の値が "86" で、2 番目のプライマリキー列の値が 6771 であるデータ行を更新する方法の例を示しています。この例では、行が存在するかどうかに関係なく、データが挿入されます。行が存在する場合、挿入されたデータは既存のデータを上書きします。

update --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]'  --condition ignore

データの削除

指定されたプライマリキーを持つデータ行を削除できます。

コマンド構文

delete --pk '[primaryKeyValue,primaryKeyValue]'

次の表に、コマンドのパラメーターを示します。

パラメーター

必須

説明

-k,--pk

はい

["86", 6771]

行のプライマリキー列の値。このパラメーターの値は配列です。

重要

指定するプライマリキー列の数と型は、データテーブル内のプライマリキー列の実際の数と型と同じである必要があります。

次のサンプルコードは、最初のプライマリキー列の値が "86" で、2 番目のプライマリキー列の値が 6771 であるデータ行を削除する方法の例を示しています。

delete --pk '["86", 6771]'

データのスキャン

データテーブルをスキャンして、データテーブル内のすべてのデータまたは指定された数のデータ行を取得できます。

コマンド構文

scan --limit limit

次の表に、コマンドのパラメーターを示します。

パラメーター

必須

説明

--limit

いいえ

10

スキャンする行の最大数。このパラメーターを設定しない場合、データテーブル内のすべてのデータがスキャンされます。

次のサンプルコードは、データテーブルで最大 10 行のデータをスキャンする方法の例を示しています。

scan --limit 10

データのエクスポート

データテーブルからローカルの JSON ファイルにデータをエクスポートできます。

コマンド構文

scan -o /localpath/filename.json -c attributeColumnName,attributeColumnName,attributeColumnName

次の表に、コマンドのパラメーターを示します。

パラメーター

必須

説明

-c, --columns

はい

uid,name

エクスポートする列のセット。プライマリキー列または属性列の名前を指定できます。列名を指定しない場合は、行のすべてのデータがエクスポートされます。

--max_version

いいえ

1

エクスポートできるデータバージョンの最大数。

--time_range_start

いいえ

1626865596000

エクスポートするデータのバージョン範囲。time_range_start パラメーターは開始タイムスタンプを指定し、time_range_end パラメーターは終了タイムスタンプを指定します。範囲には開始値が含まれ、終了値は含まれません。

--time_range_end

いいえ

1626869196000

--time_range_specific

いいえ

1626867396000

エクスポートするデータの特定のバージョン。

--backward

いいえ

該当なし

エクスポートされたデータをプライマリキーの降順でソートするように指定します。

-o, --output

はい

/tmp/mydata.json

クエリ結果がエクスポートされる JSON ファイルのローカルパス。

-l, --limit

いいえ

10

クエリで返す行の最大数。

-b, --begin

いいえ

'["86", 6771]'

エクスポートするデータの値の範囲。プライマリキーの範囲は、左閉右開区間です。

説明
  • --begin パラメーターの値が [null,null] の場合、エクスポートするデータの範囲の開始値は [INF_MIN,INF_MIN] です。これは、最初と 2 番目のプライマリキー列の開始値が無限に小さいことを指定します。

  • --end パラメーターの値が [null,null] の場合、エクスポートするデータの範囲の終了値は [INF_MAX,INF_MAX] です。これは、最初と 2 番目のプライマリキー列の終了値が無限に大きいことを指定します。

-e, --end

いいえ

'["86", 6775]'

  • 例 1

    次のサンプルコードは、現在のテーブルから mydata.json という名前のローカルファイルにすべてのデータをエクスポートする方法の例を示しています。

    scan -o /tmp/mydata.json
  • 例 2

    次のサンプルコードは、現在のテーブルの uid 列と name 列のデータを mydata.json ローカルファイルにエクスポートする方法の例を示しています。

    scan -o /tmp/mydata.json -c uid,name
  • 例 3

    次のサンプルコードは、プライマリキー値が特定の範囲内にあるデータを現在のテーブルから mydata.json ローカルファイルにエクスポートする方法の例を示しています。エクスポートが開始される最初のプライマリキー列の値は "86" です。エクスポートが開始される 2 番目のプライマリキー列の値は 6771 です。エクスポートが終了する最初のプライマリキー列の値は "86" です。エクスポートが終了する 2 番目のプライマリキー列の値は 6775 です。

    scan -o D:\\0testreport\\mydata.json -b '["86", 6771]' -e '["86", 6775]'
  • 例 4

    次のサンプルコードは、プライマリキー値が特定の範囲内にあるデータを現在のテーブルから mydata.json ローカルファイルにエクスポートする方法の例を示しています。エクスポートが開始される最初のプライマリキー列の値は "50" で、エクスポートが終了する最初のプライマリキー列の値は "100" です。2 番目のプライマリキー列の値の範囲は指定されていません。

    scan -o /tmp/mydata.json -b '["50",null]' -e '["100",null]'

データのインポート

ローカルの JSON ファイルからデータテーブルにデータをインポートできます。

重要

ローカル JSON ファイルのパスに漢字が含まれている場合、データをインポートするとエラーが発生します。

コマンド構文

import -i /localpath/filename.json --ignore_version

次の表に、コマンドのパラメーターを示します。

パラメーター

必須

説明

-a, --action

いいえ

put

データのインポートモード。デフォルト値: put。有効な値:

  • put: 行が存在する場合、既存の行のすべての列のすべてのバージョンのデータが削除され、新しいデータ行がデータテーブルに書き込まれます。

  • update: 行が存在する場合、行に属性列を追加または削除したり、属性列の指定されたバージョンのデータを削除したり、属性列の既存のデータを更新したりできます。行が存在しない場合は、新しいデータ行が追加されます。

-i, --input

はい

/tmp/inputdata.json

現在のデータテーブルにデータがインポートされるローカル JSON ファイルのパス。

--ignore_version

いいえ

該当なし

タイムスタンプチェックを無視し、現在の時刻をタイムスタンプとして使用します。

次のサンプルコードは、ローカル設定ファイルの内容の例を示しています。

{"PK":{"Values":["redchen",0]},"Attr":{"Values":[{"C":"country","V":"china0"},{"C":"name","V":"redchen0"}]}}
{"PK":{"Values":["redchen",1]},"Attr":{"Values":[{"C":"country","V":"china1"},{"C":"name","V":"redchen1"}]}}                              

  • 例 1

    次のサンプルコードは、mydata.json ファイルから現在のデータテーブルにデータをインポートする方法の例を示しています。

    import -i /tmp/mydata.json
  • 例 2

    次のサンプルコードは、現在の時刻をタイムスタンプとして使用して、mydata.json ファイルから現在のデータテーブルにデータをインポートする方法の例を示しています。

    import -i /tmp/mydata.json --ignore_version