Tüm Ürünler
Search
Belge Merkezi

Tablestore:Create a table

Son Güncelleme:Oct 02, 2026

Go için Tablestore SDK kullanarak Wide Column modeli tablosu oluşturun; şema, özellikler, Stream ayarları, yerel işlemler, ikincil dizinler ve veri şifrelemesini yapılandırın.

Önkoşullar

Go için Tablestore SDK öğesini yükleyin ve istemciyi başlatın.

Açıklama

Tablo oluşturmak için CreateTable yöntemini çağırın. Tablo şemasını, tablo seçeneklerini ve ayrılmış aktarım hızını belirtmeniz gerekir. Ayrıca ikincil dizinleri, Stream'i, yerel işlemleri ve veri şifrelemeyi de yapılandırabilirsiniz.

func (tableStoreClient *TableStoreClient) CreateTable(request *CreateTableRequest) (*CreateTableResponse, error)
Not

Tabloyu oluşturduktan sonra veri işlemlerini gerçekleştirmeden önce tablonun yüklenmesini bekleyin. Yükleme işlemi genellikle birkaç saniye sürer.

Aşağıdaki örnekte, user_id ve record_id birincil anahtar sütunlarına sahip example_table tablosu oluşturulur.

tableMeta := &tablestore.TableMeta{TableName: "example_table"}
tableMeta.AddPrimaryKeyColumn("user_id", tablestore.PrimaryKeyType_STRING)
tableMeta.AddPrimaryKeyColumn("record_id", tablestore.PrimaryKeyType_INTEGER)

request := &tablestore.CreateTableRequest{
    TableMeta: tableMeta,
    TableOption: &tablestore.TableOption{
        TimeToAlive:               -1,
        MaxVersion:                1,
        DeviationCellVersionInSec: 86400,
    },
    ReservedThroughput: &tablestore.ReservedThroughput{},
}

_, err := client.CreateTable(request)
if err != nil {
    log.Fatal(err)
}

Parametreler

CreateTableRequest aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


TableMeta (gerekli)


*TableMeta


Tablo şeması.


TableOption (gerekli)


*TableOption


Tablo seçenekleri.


ReservedThroughput (gerekli)


*ReservedThroughput


Ayrılmış okuma/yazma aktarım hızı (CU cinsinden). Varsayılan okuma ve yazma CU değerlerinin her ikisi de 0 şeklindedir. Sıfırdan farklı değerler yalnızca CU modundaki yüksek performanslı örnekler için geçerlidir.


IndexMetas (isteğe bağlı)


[]*IndexMeta


Tabloyla birlikte oluşturulacak ikincil dizinler.


StreamSpec (isteğe bağlı)


*StreamSpecification


Stream ayarları.


EnableLocalTxn (isteğe bağlı)


*bool


Yerel işlemlerin etkinleştirilip etkinleştirilmeyeceğini belirtir. Varsayılan değer: false.


SSESpecification (isteğe bağlı)


*SSESpecification


Veri şifreleme ayarları. Veri şifreleme yalnızca tablo oluşturulurken etkinleştirilebilir ve yapılandırılabilir. Oluşturulduktan sonra devre dışı bırakılamaz veya değiştirilemez.

Tablo şeması

TableMeta aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


TableName (gerekli)


string


Tablo adı.


SchemaEntry (gerekli)


[]*PrimaryKeySchema


Birincil anahtar şeması. Bir tabloda bir ila dört birincil anahtar sütunu bulunmalıdır. İlk birincil anahtar sütunu bölüm anahtarıdır.


DefinedColumns (isteğe bağlı)


[]*DefinedColumnSchema


Önceden tanımlanmış sütunlar. Önceden tanımlanmış sütunlar ikincil dizin oluşturmak için kullanılabilir.

Birincil anahtar sütunu

TableMeta.SchemaEntry içindeki her öğe PrimaryKeySchema türündedir ve aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


Name (gerekli)


*string


Birincil anahtar sütunu adı.


Type (gerekli)


*PrimaryKeyType


Birincil anahtar sütunu türü. Geçerli değerler: PrimaryKeyType_STRING, PrimaryKeyType_INTEGER ve PrimaryKeyType_BINARY.


Option (isteğe bağlı)


*PrimaryKeyOption


Birincil anahtar sütunu seçeneği. Bölüm olmayan INTEGER birincil anahtar sütunu AUTO_INCREMENT olarak ayarlanabilir. Daha fazla bilgi için Otomatik artan birincil anahtar sütunu kullanma konusuna bakın.

Önceden tanımlanmış sütun

TableMeta.DefinedColumns içindeki her öğe DefinedColumnSchema türündedir ve aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


Name (gerekli)


string


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


ColumnType (gerekli)


DefinedColumnType


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

Tablo seçenekleri

TableOption aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


TimeToAlive (gerekli)


int


Yaşam süresi (TTL), saniye cinsinden. -1 değeri verilerin hiçbir zaman sona ermediğini gösterir. Diğer değerler için minimum değer 86400 (bir gün) olur. Arama dizini veya ikincil dizin kullanmak için bu parametreyi -1 olarak ayarlayın veya AllowUpdate değerini false olarak belirleyin.


MaxVersion (gerekli)


int


Her nitelik sütunu için saklanan maksimum sürüm sayısı. Arama dizini veya ikincil dizin kullanmak için bu parametreyi 1 olarak ayarlayın.


DeviationCellVersionInSec (isteğe bağlı)


int64


Maksimum sürüm sapması, saniye cinsinden. Varsayılan değer: 86400 (bir gün). Yazılan verinin zaman damgası ile mevcut sistem saati arasındaki fark bu aralıkta olmalıdır. Geçerli sürümler [max(yazma zamanı - maksimum sürüm sapması, yazma zamanı - TTL), yazma zamanı + maksimum sürüm sapması) aralığındadır.


AllowUpdate (isteğe bağlı)


*bool


UpdateRow çağrılarak verilerin güncellenip güncellenemeyeceğini belirtir. Varsayılan değer: true.


UpdateFullRow (isteğe bağlı)


*bool


Tam satır güncellemelerinin etkinleştirilip etkinleştirilmeyeceğini belirtir. Bu parametre yalnızca tablo oluşturulurken yapılandırılabilir ve UpdateTable çağrısıyla değiştirilemez.

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

ReservedThroughput aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


Readcap (isteğe bağlı)


int


Ayrılmış okuma aktarım hızı, CU cinsinden. Varsayılan değer: 0.


Writecap (isteğe bağlı)


int


Ayrılmış yazma aktarım hızı, CU cinsinden. Varsayılan değer: 0.

İkincil dizin

IndexMetas içindeki her öğe IndexMeta türündedir ve aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


IndexName (gerekli)


string


İkincil dizin adı.


Primarykey (gerekli)


[]string


Dizin birincil anahtar sütunları; tablo birincil anahtar sütunlarından ve önceden tanımlanmış sütunlardan oluşabilir. Yerel ikincil dizin için ilk dizin birincil anahtar sütunu, ilk tablo birincil anahtar sütunu olmalıdır.


DefinedColumns (isteğe bağlı)


[]string


Dizin önceden tanımlanmış sütunları.


IndexType (isteğe bağlı)


IndexType


Dizin türü. IT_GLOBAL_INDEX genel ikincil dizini, IT_LOCAL_INDEX ise yerel ikincil dizini belirtir. Varsayılan değer: IT_GLOBAL_INDEX.

Stream ayarları

StreamSpec, StreamSpecification türündedir ve aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


EnableStream (isteğe bağlı)


bool


Stream'in etkinleştirilip etkinleştirilmeyeceğini belirtir. Varsayılan değer: false.


ExpirationTime (isteğe bağlı)


int32


Artımlı günlüklerin saklama süresi, saat cinsinden. Maksimum değer: 168 (yedi gün). EnableStream değeri true olarak ayarlandığında bu parametre gereklidir.

Yerel işlem ayarları

Yerel işlemleri etkinleştirmek için EnableLocalTxn değerini true olarak ayarlayın. Aşağıdaki hususlara dikkat edin:

  • Bu parametre, Go için Tablestore SDK 1.7.8 ve sonraki sürümlerde desteklenir. En son sürümü kullanmanızı öneririz.

  • Yerel işlemler ve otomatik artan birincil anahtar sütunları birlikte kullanılamaz. Otomatik artan birincil anahtar sütunu yapılandırılırsa, yerel işlemler etkinleştirildiğinde bile etkili olmaz.

  • Mevcut bir tabloda yerel işlemleri etkinleştirmek için destek talebi gönderin .

Veri şifreleme ayarları

SSESpecification 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.


KeyType (isteğe bağlı)


*SSEKeyType


Şifreleme türü. SSE_KMS_SERVICE KMS hizmet anahtarı şifrelemesini, SSE_BYOK ise BYOK şifrelemesini belirtir.


KeyId (isteğe bağlı)


*string


Müşteri ana anahtar ID'si. Bu parametre BYOK şifrelemesi için gereklidir.


RoleArn (isteğe bağlı)


*string


RAM rolü ARN'si. Bu parametre BYOK şifrelemesi için gereklidir.

Örnekler

Stream etkinleştirilmiş tablo oluşturma

Aşağıdaki örnekte tablo oluşturulurken Stream etkinleştirilir ve artımlı günlük saklama süresi 168 saat olarak ayarlanır.

tableMeta := &tablestore.TableMeta{TableName: "stream_table"}
tableMeta.AddPrimaryKeyColumn("id", tablestore.PrimaryKeyType_STRING)

request := &tablestore.CreateTableRequest{
    TableMeta:          tableMeta,
    TableOption:        &tablestore.TableOption{TimeToAlive: -1, MaxVersion: 1},
    ReservedThroughput: &tablestore.ReservedThroughput{},
    StreamSpec: &tablestore.StreamSpecification{
        EnableStream:   true,
        ExpirationTime: 168,
    },
}

_, err := client.CreateTable(request)
if err != nil {
    log.Fatal(err)
}

Yerel işlemler etkinleştirilmiş tablo oluşturma

Aşağıdaki örnekte tablo oluşturulurken yerel işlemler etkinleştirilir.

tableMeta := &tablestore.TableMeta{TableName: "transaction_table"}
tableMeta.AddPrimaryKeyColumn("user_id", tablestore.PrimaryKeyType_STRING)
tableMeta.AddPrimaryKeyColumn("record_id", tablestore.PrimaryKeyType_INTEGER)

request := &tablestore.CreateTableRequest{
    TableMeta:          tableMeta,
    TableOption:        &tablestore.TableOption{TimeToAlive: -1, MaxVersion: 1},
    ReservedThroughput: &tablestore.ReservedThroughput{},
    EnableLocalTxn:     proto.Bool(true),
}

_, err := client.CreateTable(request)
if err != nil {
    log.Fatal(err)
}