Tüm Ürünler
Search
Belge Merkezi

Tablestore:İkincil dizin oluşturma

Son Güncelleme:Oct 09, 2026

İkincil dizin özelliği, veri tablosunun birincil anahtarına ve bu tablo için oluşturulan ikincil dizinin dizin sütunlarına dayalı olarak veri sorgulamanıza olanak tanır. Veri tablosunun nitelik sütunlarını kullanarak veri sorgulamak istiyorsanız, sorguları hızlandırmak için veri tablosu üzerinde bir ikincil dizin oluşturabilirsiniz. Bir veri tablosu için ikincil dizin oluştururken, ikincil dizinin dizin veya nitelik sütunlarını veri tablosunu oluşturduğunuzda belirttiğiniz önceden tanımlanmış sütunlar olarak ayarlayabilirsiniz. İkincil dizini oluşturduktan sonra verileri sorgulamak için bu dizini kullanabilirsiniz.

Not
  • İkincil dizinler genel ikincil dizinler ve yerel ikincil dizinler olarak sınıflandırılır. İkincil dizin özelliği hakkında daha fazla bilgi için bkz. Overview.

  • CreateTable işlemi çağrılarak bir veri tablosu oluştururken bir veya daha fazla dizin tablosu oluşturabilirsiniz. Daha fazla bilgi için bkz. Create a data table.

Önkoşullar

  • Bir OTSClient örneği başlatın. Daha fazla bilgi için bkz. Initialize an OTSClient instance.

  • max_version parametresi 1 olarak ayarlanmış bir veri tablosu oluşturun. Veri tablosunun time_to_live parametresi aşağıdaki koşullardan birini karşılamalıdır: Daha fazla bilgi için bkz. Create a data table.

    • Veri tablosunun time_to_live parametresi -1 olarak ayarlanmalıdır; bu değer, veri tablosundaki verilerin süresiz olarak geçerli kalacağını belirtir.

    • Veri tablosunun time_to_live parametresi -1 dışındaki bir değere ayarlanmış olmalı ve veri tablosu üzerinde güncelleme işlemleri yasaklanmış olmalıdır.

  • Veri tablosu için önceden tanımlanmış sütunlar belirtin.

Açıklama

İkincil dizin, veri tablosundaki birincil anahtar sütunları ve önceden tanımlanmış sütunlardan oluşan farklı bir birincil anahtar şeması kullanarak ek sorgu boyutları sağlar. İkincil dizinler genel ikincil dizinler ve yerel ikincil dizinler olarak iki türe ayrılır. Bu iki dizin türü farklı veri senkronizasyon modlarına ve birincil anahtar gereksinimlerine sahiptir. Daha fazla bilgi için bkz. Overview.

Mevcut bir veri tablosu için ikincil dizin oluşturmak üzere createIndex metodunu çağırın. Bir veri tablosuyla birlikte bir veya daha fazla ikincil dizin oluşturmak için createTable isteğinde dizin şemalarını yapılandırın. Daha fazla bilgi için bkz. Create a data table.

public CreateIndexResponse createIndex(CreateIndexRequest createIndexRequest)
        throws TableStoreException, ClientException

Aşağıdaki örnek kod, example_table için example_global_index adlı genel ikincil dizini oluşturur. Dizin mevcut verileri içerir.

IndexMeta indexMeta = new IndexMeta("example_global_index");
indexMeta.addPrimaryKeyColumn("category");
indexMeta.addDefinedColumn("status");

CreateIndexRequest request =
        new CreateIndexRequest("example_table", indexMeta, true);
client.createIndex(request);

Parametreler

Parameter

Description

main_table_name

Veri tablosunun adı.

index_meta

Dizin tablosuna ilişkin şema bilgileri. Şema bilgileri aşağıdaki öğeleri içerir:

  • index_name: Dizin tablosunun adı.

  • primary_key_names: Dizin tablosunun birincil anahtarı. Birincil anahtar, veri tablosundaki tüm birincil anahtar sütunlarının ve rastgele sayıda önceden tanımlanmış sütunun birleşimidir.

    Yerel bir ikincil dizin oluşturmak istiyorsanız dizin tablosunun ilk birincil anahtar sütunu veri tablosunun ilk birincil anahtar sütunuyla aynı olmalıdır.

  • defined_column_names: Dizin tablosunun nitelik sütunları. Nitelik sütunları veri tablosundaki önceden tanımlanmış sütunların birleşimidir.

  • index_type: Dizin tablosunun türü. Geçerli değerler: IT_GLOBAL_INDEX ve IT_LOCAL_INDEX.

    • index_type parametresini belirtmezseniz veya IT_GLOBAL_INDEX olarak ayarlarsanız genel bir ikincil dizin oluşturulur.

      Tablestore veri tablosundaki dizine alınan sütunlardan ve birincil anahtar sütunlarından verileri oluşturmak istediğiniz dizin tablosunun sütunlarına eşzamanlı olmayan (asenkron) modda otomatik olarak senkronize eder. Senkronizasyon gecikmesi birkaç milisaniye içinde gerçekleşir.

    • index_type parametresini IT_LOCAL_INDEX olarak ayarlarsanız yerel bir ikincil dizin oluşturulur.

      Tablestore veri tablosundaki dizine alınan sütunlardan ve birincil anahtar sütunlarından verileri oluşturmak istediğiniz dizin tablosunun sütunlarına eşzamanlı (senkron) modda otomatik olarak senkronize eder. Veriler veri tablosuna yazıldıktan hemen sonra dizin tablosunda sorgulanabilir.

include_base_data

Mevcut veri tablosu verilerinin dizin tablosuna dahil edilip edilmeyeceğini belirtir.

include_base_data parametresini true olarak ayarlarsanız dizin tablosu mevcut verileri içerir. Parametreyi false olarak ayarlarsanız mevcut veriler dahil edilmez.

Örnekler

Genel ikincil dizin oluşturma

Aşağıdaki örnek kod bir veri tablosu için ikincil dizin oluşturmayı göstermektedir. Bu örnekte veri tablosunun birincil anahtar sütunları pk1 ve pk2'dir. İkincil dizin için belirtilen birincil anahtar sütunları definedcol1 ve pk1'dir. İkincil dizin için belirtilen nitelik sütunları ise definedcol2 ve definedcol3'tür.

# Specify the metadata of the index table. 
# Specify the name, primary key columns, and attribute columns of the index table in sequence. 
index_meta = SecondaryIndexMeta('<INDEX_NAME>', ['definedcol1', 'pk1'], ['definedcol2', 'definedcol3'])
# Specify the name of the data table and specify that the index table does not include the existing data of the data table. 
client.create_secondary_index('<TABLE_NAME>', index_meta, False)
# Specify the name of the data table and specify that the index table includes the existing data of the data table. 
# After you create the index table, the existing data of the data table is synchronized to the index table. After the existing data is synchronized, you can use the index table to query all data in the data table. The time that is required for synchronization varies based on the amount of data to synchronize. 
# client.create_secondary_index('<TABLE_NAME>', index_meta, True)

Yerel ikincil dizin oluşturma

Aşağıdaki örnek kod bir veri tablosu için ikincil dizin oluşturmayı göstermektedir. Bu örnekte veri tablosunun birincil anahtar sütunları pk1 ve pk2'dir. İkincil dizin için belirtilen birincil anahtar sütunları definedcol1 ve pk1'dir. İkincil dizin için belirtilen nitelik sütunları ise definedcol2 ve definedcol3'tür.

# Specify the metadata of the index table. 
# Specify the name, primary key columns, attribute columns, and type of the index table in sequence. 
# The first primary key column of a local secondary index must be the same as the first primary key column of the data table. 
index_meta = SecondaryIndexMeta('<INDEX_NAME>', ['pk1', 'definedcol1'], ['definedcol2', 'definedcol3'],index_type= SecondaryIndexType.LOCAL_INDEX)
# Specify the name of the data table and specify that the index table does not include the existing data of the data table.
client.create_secondary_index('<TABLE_NAME>', index_meta, False)
# Specify the name of the data table and specify that the index table includes the existing data of the data table. 
# After you create the index table, the existing data of the data table is synchronized to the index table. After the existing data is synchronized, you can use the index table to query all data in the data table. The time that is required for synchronization varies based on the amount of data to synchronize. 
# client.create_secondary_index('<TABLE_NAME>', index_meta, True)

İlgili Kaynaklar

  • İkincil dizin oluşturduktan sonra tek bir veri satırını veya belirli bir aralıktaki birincil anahtar değerine sahip verileri okumak için bu dizini kullanabilirsiniz. Daha fazla bilgi için bkz. Use a secondary index to read data.

  • Artık kullanmadığınız bir ikincil dizini silebilirsiniz. Daha fazla bilgi için bkz. Delete a secondary index.