Tablestore SDK for Python, verilere SQL ile erişebilmeniz için mevcut bir veri tablosu veya arama dizini üzerinde eşleme tablosu oluşturur.
Ön koşullar
Tablestore SDK for Python öğesini yükleyin ve bir istemciyi başlatın.
SQL sorguları için 5.4.2 veya daha yeni bir sürüm gerekir. En son sürümü kullanmanızı öneririz.
Açıklama
Mevcut bir veri tablosu veya arama dizini için eşleme tablosu oluşturmak üzere CREATE TABLE ifadesini çalıştırmak amacıyla exe_sql_query yöntemini çağırın.
def exe_sql_query(self, query)
Bir veri tablosu için eşleme tablosunun adı, veri tablosunun adıyla aynı olmalıdır. Alan adları büyük/küçük harfe duyarlı değildir ve alan türleri veri tablosu alan türleriyle eşleşmelidir. Bir arama dizini için eşleme tablosu adını özelleştirebilir; veri tablosunu ve arama dizinini belirtmek üzere ENGINE ve ENGINE_ATTRIBUTE parametrelerini kullanabilirsiniz.
CREATE TABLE ifadesinin sözdizimi, alan türleri ve parametreleri hakkında bilgi için DDL işlemleri konusuna bakın.
Aşağıdaki örnekte example_table veri tablosu için bir eşleme tablosu oluşturulmaktadır.
query = """
CREATE TABLE example_table (
pk VARCHAR(1024), long_value BIGINT, double_value DOUBLE,
string_value MEDIUMTEXT, bool_value BOOL, PRIMARY KEY(pk)
)
"""
client.exe_sql_query(query)
Parametreler
exe_sql_query yöntemi aşağıdaki parametreyi içerir.
|
|
|
|
|
|
|
|
Senaryo örnekleri
Arama dizini için eşleme tablosu oluşturma
ENGINE değerini searchindex olarak ayarlayın ve ENGINE_ATTRIBUTE içinde veri tablosunu ve arama dizinini belirtin. Aşağıdaki örnekte, example_table veri tablosundaki example_index arama dizini için example_search_table adlı bir eşleme tablosu oluşturulmaktadır.
query = """
CREATE TABLE example_search_table (
pk MEDIUMTEXT, long_value BIGINT, string_value MEDIUMTEXT
) ENGINE='searchindex'
ENGINE_ATTRIBUTE='{"index_name":"example_index","table_name":"example_table"}'
"""
client.exe_sql_query(query)
SSS
Table 'instance.table' doesn't exist hatası döndürülüyor
Neden: Belirtilen veri tablosu veya arama dizini mevcut değil. CREATE TABLE ifadesi yalnızca eşleme tablosunu oluşturur.
Çözüm: Adları kontrol edin, veri tablosunun veya arama dizininin var olduğundan emin olun ve ifadeyi yeniden çalıştırın.
Table 'instance.table' already exists hatası döndürülüyor
Neden: Eşleme tablosu zaten mevcut. DESCRIBE veya SELECT ifadeleri de yalnızca birincil anahtar sütunları ve önceden tanımlanmış sütunları içeren bir eşleme tablosunu otomatik olarak oluşturabilir.
Çözüm: Yinelemeli oluşturma hatalarını önlemek için IF NOT EXISTS ifadesini kullanın. Otomatik olarak oluşturulmuş bir eşleme tablosunu değiştirmek istiyorsanız etkiyi değerlendirin, eşleme tablosunu silin ve yeniden oluşturun.