In Tablestore, tables, rows, primary keys, and attributes are the core components. A table is a collection of rows. Each row consists of a primary key and attribute. The first primary key column is called the partition key.

Primary keys

Primary keys uniquely identify each row in tables. A primary key consists of one to four primary key columns. When you create a table, you must specify primary key columns, including the name, data type, and sequence of the primary key columns.

Tablestore indexes data of a table based on the primary key columns of the table.

Partition keys

The first primary key column is called the partition key. Tablestore distributes each row of data to the corresponding partitions based on the range of the partition key values for load balancing. Rows that share the same partition key values belong to the same partition. A partition may store rows that have multiple partition key values. Tablestore splits and merges partitions based on specified rules.

Note Partition keys are the basic unit to partition data. Data that shares the same partition key value cannot be split. To prevent partitions from being too large to split, we recommend that the total size of all rows that share the same partition key value is at most 10 GB.

Attributes

A row consists of multiple attribute columns. Tablestore does not impose limits on the number of attribute columns that can be contained in each row. Each row can contain a different number of attribute columns. The value in an attribute column of a row can be null. The values in an attribute column of multiple rows can be of different data types.

Attribute columns support the version feature. Multiple versions of a value in an attribute column can be retained for queries and use. You can configure time to live (TTL) for values in attribute columns. For more information, see Max versions and TTL.