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)
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tablo şeması
TableMeta aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Birincil anahtar sütunu
TableMeta.SchemaEntry içindeki her öğe PrimaryKeySchema türündedir ve aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Önceden tanımlanmış sütun
TableMeta.DefinedColumns içindeki her öğe DefinedColumnSchema türündedir ve aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
Tablo seçenekleri
TableOption aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ayrılmış aktarım hızı
ReservedThroughput aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
İkincil dizin
IndexMetas içindeki her öğe IndexMeta türündedir ve aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Stream ayarları
StreamSpec, StreamSpecification türündedir ve aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ö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)
}