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)
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tablo şeması
table_meta parametresi TableMeta türündedir ve aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ö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.
|
|
|
|
|
|
|
|
|
|
|
|
Tablo yapılandırmaları
table_options parametresi TableOptions türündedir ve aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ayrılmış aktarım hızı
reserved_throughput parametresi ReservedThroughput türündedir ve aşağıdaki parametreyi içerir.
|
|
|
|
|
|
|
|
Kapasite birimleri
reserved_throughput.capacity_unit parametresi CapacityUnit türündedir ve aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
İkincil dizin
secondary_indexes[] içindeki her öğe SecondaryIndexMeta türündedir ve aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sunucu tarafı şifreleme ayarları
sse_spec parametresi SSESpecification türündedir ve aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ö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.
Ş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,
)