Tüm Ürünler
Search
Belge Merkezi

Tablestore:Create a table

Son Güncelleme:Oct 02, 2026

Tablestore SDK for Python kullanarak bir tablo oluşturun; isteğe bağlı olarak şemasını, ayarlarını, ikincil dizinlerini ve veri şifrelemesini yapılandırın.

Ön koşullar

Tablestore SDK for Python yükleyin ve bir istemci başlatın.

İşlev açıklaması

Bir tablo oluşturmak için create_table yöntemini çağırın.

def create_table(
    self,
    table_meta,
    table_options,
    reserved_throughput,
    secondary_indexes=None,
    sse_spec=None,
)

Aşağıdaki örnekte, birincil anahtar sütunu olarak id alan example_table adlı bir tablo oluşturulur. Tablodaki veriler hiçbir zaman sona ermez ve her özellik sütunu için yalnızca bir sürüm saklanır.

table_meta = TableMeta(
    "example_table",
    [("id", "STRING")],
)
table_options = TableOptions(
    time_to_live=-1,
    max_version=1,
    max_time_deviation=86400,
    allow_update=True,
)
reserved_throughput = ReservedThroughput(CapacityUnit(0, 0))

client.create_table(table_meta, table_options, reserved_throughput)
Not

Tabloyu oluşturduktan sonra veri işlemlerini gerçekleştirmeden önce tablonun yüklenmesi için birkaç saniye bekleyin.

Parametreler

create_table yöntemi aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


table_meta (gerekli)


TableMeta


Tablo şeması.


table_options (gerekli)


TableOptions


Tablo yapılandırmaları.


reserved_throughput (gerekli)


ReservedThroughput


Ayrılmış aktarım hızı.


secondary_indexes (isteğe bağlı)


List[SecondaryIndexMeta]


Tablo ile birlikte oluşturulacak ikincil dizinler.


sse_spec (isteğe bağlı)


SSESpecification


Sunucu tarafı şifreleme ayarları. Şifreleme yalnızca tablo oluşturulurken etkinleştirilebilir ve sonrasında devre dışı bırakılamaz. Bu özellik için Tablestore SDK for Python 6.4.0 veya sonraki bir sürüm gerekir.

Tablo şeması

table_meta parametresi TableMeta türündedir ve aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


table_name (gerekli)


str


Tablonun adı.


schema_of_primary_key (gerekli)


List[Tuple]


Birincil anahtar şeması. Bir tabloda bir ila dört birincil anahtar sütunu bulunabilir. İlk birincil anahtar sütunu bölüm anahtarıdır ve birincil anahtar sütunları artan düzende sıralanır. Birincil anahtar sütunları STRING, INTEGER ve BINARY türlerini destekler. INTEGER türündeki bölüm olmayan bir birincil anahtar sütunu, otomatik artan birincil anahtar sütunu olarak yapılandırılabilir.


defined_columns (isteğe bağlı)


List[Tuple]


Önceden tanımlanmış sütunlar. Önceden tanımlanmış sütunlar STRING, INTEGER, BINARY, DOUBLE ve BOOLEAN türlerini destekler; ikincil dizinler ve arama dizinleri oluşturmak için kullanılabilir.

Birincil anahtar sütunu

table_meta.schema_of_primary_key[] içindeki her demet, bir birincil anahtar sütununu yapılandırır ve aşağıdaki öğeleri içerir.


Ad


Tür


Açıklama


name (gerekli)


str


Birincil anahtar sütununun adı.


type (gerekli)


str


Birincil anahtar sütununun türü. Geçerli değerler STRING, INTEGER ve BINARY değerleridir.


option (isteğe bağlı)


PrimaryKeyOption


Birincil anahtar seçeneği. INTEGER türündeki bölüm olmayan bir birincil anahtar sütununu otomatik artan birincil anahtar sütunu yapmak için PK_AUTO_INCR olarak ayarlayın.

Önceden tanımlanmış sütun

table_meta.defined_columns[] içindeki her demet, bir önceden tanımlanmış sütunu yapılandırır ve aşağıdaki öğeleri içerir.


Ad


Tür


Açıklama


name (gerekli)


str


Önceden tanımlanmış sütunun adı.


type (gerekli)


str


Önceden tanımlanmış sütunun türü. Geçerli değerler STRING, INTEGER, BINARY, DOUBLE ve BOOLEAN değerleridir.

Tablo yapılandırmaları

table_options parametresi TableOptions türündedir ve aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


time_to_live (isteğe bağlı)


int


Verilerin saniye cinsinden yaşam süresi (TTL). Varsayılan değer -1 olup verilerin hiçbir zaman sona ermediğini gösterir. Başka bir değer belirtirseniz minimum değer bir gün olan 86400 değeridir. Süresi dolan veriler otomatik olarak silinir. Arama dizini veya ikincil dizin kullanmak için bu parametreyi -1 olarak ayarlayın veya allow_update değerini False olarak belirleyin.


max_version (isteğe bağlı)


int


Her özellik sütunu için saklanacak maksimum sürüm sayısı. Varsayılan değer 1 değeridir. Arama dizini veya ikincil dizin kullanmak için bu parametreyi 1 olarak ayarlayın.


max_time_deviation (isteğe bağlı)


int


Saniye cinsinden maksimum sürüm sapması. Varsayılan değer bir gün olan 86400 değeridir. Yazılacak verinin zaman damgası ile mevcut sistem saati arasındaki fark maksimum sürüm sapması içinde olmalıdır. Geçerli sürüm aralığı [max(data write time - maximum version deviation, data write time - TTL), data write time + maximum version deviation) şeklindedir.


allow_update (isteğe bağlı)


bool


update_row çağrılarak verilerin güncellenip güncellenemeyeceğini belirtir. Bu parametreyi belirtmezseniz sunucu varsayılan olarak güncellemelere izin verir. Bu parametreyi False olarak ayarlarsanız update_row çağrılarak veriler güncellenemez.

Ayrılmış aktarım hızı

reserved_throughput parametresi ReservedThroughput türündedir ve aşağıdaki parametreyi içerir.


Ad


Tür


Açıklama


capacity_unit (gerekli)


CapacityUnit


Kapasite birimi (CU) cinsinden ayrılmış aktarım hızı. Varsayılan okuma ve yazma CU değerlerinin her ikisi de 0 değeridir. Yalnızca CU modundaki yüksek performanslı örnekler sıfır dışı değerleri destekler.

Kapasite birimleri

reserved_throughput.capacity_unit parametresi CapacityUnit türündedir ve aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


read (isteğe bağlı)


int


CU cinsinden ayrılmış okuma aktarım hızı. Varsayılan değer 0 değeridir.


write (isteğe bağlı)


int


CU cinsinden ayrılmış yazma aktarım hızı. Varsayılan değer 0 değeridir.

İkincil dizin

secondary_indexes[] içindeki her öğe SecondaryIndexMeta türündedir ve aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


index_name (gerekli)


str


Dizinin adı.


primary_key_names (gerekli)


List[str]


Dizinin birincil anahtar sütunları. Tablonun birincil anahtar sütunlarını ve önceden tanımlanmış sütunlarını kullanabilirsiniz. Yerel bir ikincil dizin için dizinin ilk birincil anahtar sütunu tablonunkiyle aynı olmalıdır.


defined_column_names (isteğe bağlı)


List[str]


Dizine dahil edilen önceden tanımlanmış sütunlar. Sütunlar tabloda zaten tanımlanmış olmalıdır.


index_type (isteğe bağlı)


SecondaryIndexType


Dizin türü. Geçerli değerler, genel ikincil dizin için varsayılan değer olan GLOBAL_INDEX ve yerel ikincil dizin için LOCAL_INDEX değerleridir.

Sunucu tarafı şifreleme ayarları

sse_spec parametresi SSESpecification türündedir ve aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


enable (isteğe bağlı)


bool


Veri şifrelemenin etkinleştirilip etkinleştirilmeyeceğini belirtir. Varsayılan değer False değeridir.


key_type (isteğe bağlı)


SSEKeyType


Şifreleme türü. Geçerli değerler, KMS tarafından yönetilen anahtar şifrelemesi için SSE_KMS_SERVICE ve kendi anahtarınızı getirin (BYOK) şifrelemesi için SSE_BYOK değerleridir. Şifreleme etkinleştirildiğinde bu parametre gereklidir.


key_id (isteğe bağlı)


str


Müşteri ana anahtar kimliği. Bu parametre BYOK şifrelemesi için gereklidir.


role_arn (isteğe bağlı)


str


RAM rolünün Alibaba Cloud Resource Name (ARN) değeri. Bu parametre BYOK şifrelemesi için gereklidir.

Örnekler

Tablo şemasını ve veri sürümlerini yapılandırma

Aşağıdaki örnekte name adlı önceden tanımlanmış sütun eklenir ve her özellik sütunu için en fazla üç sürüm saklanır.

table_meta = TableMeta(
    "example_table",
    [("id", "STRING")],
    [("name", "STRING")],
)
table_options = TableOptions(
    time_to_live=-1,
    max_version=3,
    max_time_deviation=86400,
    allow_update=True,
)
reserved_throughput = ReservedThroughput(CapacityUnit(0, 0))

client.create_table(table_meta, table_options, reserved_throughput)

Tablo ile birlikte ikincil dizin oluşturma

Aşağıdaki örnekte bir tablo ile birlikte yerel bir ikincil dizin oluşturulur. Hem tablonun hem de ikincil dizinin ilk birincil anahtar sütunu id değeridir.

table_meta = TableMeta(
    "example_table",
    [("id", "STRING"), ("device_id", "INTEGER")],
    [("status", "STRING")],
)
table_options = TableOptions(time_to_live=-1, max_version=1)
reserved_throughput = ReservedThroughput(CapacityUnit(0, 0))
secondary_indexes = [
    SecondaryIndexMeta(
        "example_local_index",
        ["id", "device_id"],
        ["status"],
        index_type=SecondaryIndexType.LOCAL_INDEX,
    )
]

client.create_table(
    table_meta,
    table_options,
    reserved_throughput,
    secondary_indexes=secondary_indexes,
)

Tabloyu şifreleme

Aşağıdaki örneklerde bir tabloyu şifrelemek için KMS tarafından yönetilen bir anahtar ve müşteri tarafından yönetilen bir anahtar kullanılır.

Önemli

Şifreleme yalnızca tablo oluşturulurken etkinleştirilebilir ve sonrasında devre dışı bırakılamaz.

KMS tarafından yönetilen anahtar

sse_spec = SSESpecification(
    enable=True,
    key_type=SSEKeyType.SSE_KMS_SERVICE,
)

client.create_table(
    table_meta,
    table_options,
    reserved_throughput,
    sse_spec=sse_spec,
)

BYOK şifrelemesi

BYOK şifrelemesini kullanmadan önce müşteri ana anahtar kimliğini ve RAM rolü ARN değerini edinin. Daha fazla bilgi için bkz. Veri şifreleme.

sse_spec = SSESpecification(
    enable=True,
    key_type=SSEKeyType.SSE_BYOK,
    key_id="key-example",
    role_arn="acs:ram::1234567890123456:role/example-role",
)

client.create_table(
    table_meta,
    table_options,
    reserved_throughput,
    sse_spec=sse_spec,
)