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

Tablestore:行の読み取り

最終更新日:Aug 05, 2026

Tablestore SDK for Python を使用して、プライマリキーで行を読み取り、必要に応じて属性列、データバージョン、またはフィルターを指定できます。

前提条件

Tablestore SDK for Python をインストールし、クライアントを初期化します。

機能の説明

get_row を呼び出して行を読み取ります。

def get_row(
    self,
    table_name,
    primary_key,
    columns_to_get=None,
    column_filter=None,
    max_version=1,
    time_range=None,
    start_column=None,
    end_column=None,
    token=None,
    transaction_id=None,
)

次の例では、example_table からプライマリキーが [("partition", "device"), ("id", 1)] の行を読み取ります。各属性列の最新バージョンのみが返されます。

primary_key = [("partition", "device"), ("id", 1)]

consumed, return_row, next_token = client.get_row(
    "example_table",
    primary_key,
)
if return_row is not None:
    print(return_row.primary_key)
    print(return_row.attribute_columns)

パラメーター

get_row メソッドには、次のパラメーターが含まれます。

名前

説明

table_name (必須)

str

テーブルの名前。

primary_key (必須)

List[Tuple]

プライマリキー。すべてのプライマリキー列を指定します。名前、順序、数、型は、テーブルのプライマリキーのスキーマと一致している必要があります。

columns_to_get (任意)

List[str]

返すプライマリキーまたは属性列。省略した場合、行全体が返されます。行に指定した属性列が含まれていない場合、return_rowNone になります。

column_filter (任意)

ColumnCondition

フィルター。詳細については、「フィルターの使用」をご参照ください。columns_to_getcolumn_filter の両方を指定した場合、列はフィルターが適用される前に選択されます。

max_version (任意)

int

各属性列で返すバージョンの最大数です。デフォルト値は 1 です。一致するバージョンが複数ある場合、新しいものから古い順に返されます。max_version または time_range のいずれかを指定する必要があります。time_range を使用するには、max_versionNone に設定します。

time_range (任意)

Tuple[int, int]

ミリ秒単位のデータバージョンの時間範囲。開始は含み、終了は含みません。この範囲内のデータバージョンのみが返されます。このパラメーターと max_version は同時に指定できません。

start_column (任意)

str

ワイド行を読み取る際の開始属性列。

end_column (任意)

str

ワイド行を読み取る際の終了属性列。

token (任意)

bytes

ワイド行の次ページの開始位置。前回のリクエストで返された next_token を使用します。

transaction_id (任意)

str

ローカルトランザクションID。ローカルトランザクション内で読み取る場合にのみ、このパラメーターを指定します。詳細については、「ローカルトランザクションの使用」をご参照ください。

応答

get_row は次の値を返します。

フィールド

説明

consumed

CapacityUnit

この操作で消費された読み取りおよび書き込み CU。

return_row

Row

返された行。行が存在しない、フィルターを通過しない、または指定した属性列が 1 つも含まれていない場合、この値は None になります。

next_token

bytes

ワイド行の次ページの開始位置。None は、行内のすべての属性列を読み取ったことを示します。

属性列の指定

次の例では、statustemperature の属性列のみを返します。

primary_key = [("partition", "device"), ("id", 1)]
columns_to_get = ["status", "temperature"]

consumed, return_row, next_token = client.get_row(
    "example_table",
    primary_key,
    columns_to_get=columns_to_get,
)

データバージョンの時間範囲の指定

次の例では、直近 1 日に書き込まれたすべてのデータバージョンを返します。

end_time = int(time.time() * 1000)
start_time = end_time - 86400 * 1000
primary_key = [("partition", "device"), ("id", 1)]

consumed, return_row, next_token = client.get_row(
    "example_table",
    primary_key,
    max_version=None,
    time_range=(start_time, end_time),
)

行のフィルタリング

次の例では、status 属性列の最新値が online の場合にのみ行を返します。

primary_key = [("partition", "device"), ("id", 1)]
column_filter = SingleColumnCondition(
    "status",
    "online",
    ComparatorType.EQUAL,
    pass_if_missing=False,
)

consumed, return_row, next_token = client.get_row(
    "example_table",
    primary_key,
    column_filter=column_filter,
)