Tüm Ürünler
Search
Belge Merkezi

Tablestore:Use filters

Son Güncelleme:Oct 02, 2026

Tablestore SDK for Python kullanarak sunucu tarafında öznitelik sütunu değerlerine göre satırları filtreleyin ve istemciye döndürülen veri miktarını azaltın.

Önkoşullar

Tablestore SDK for Python yükleyin ve bir istemciyi başlatın.

İşlev açıklaması

Filtreler, sunucu verileri okuduktan sonra uygulanır. Yalnızca koşulları karşılayan satırlar istemciye döndürülür. Filtreleme, sunucunun okuduğu satır sayısını veya tüketilen okuma kapasite birimlerini (CU) azaltmaz. Filtreleri, birincil anahtar aralığını daralttıktan sonra kullanın.

Aşağıdaki filtre koşulları desteklenir:

  • SingleColumnCondition tek bir öznitelik sütununun değerini karşılaştırır.

  • SingleColumnRegexCondition bir dize öznitelik sütunundan alt dize çıkarır ve çıkarılan değeri karşılaştırır.

  • CompositeColumnCondition en fazla 32 koşulu AND, OR veya NOT ile birleştirir.

Aşağıdaki örnek, bir aralık okuması sırasında status öznitelik sütunundaki en son değeri online olan satırları döndürür.

column_filter = SingleColumnCondition(
    "status",
    "online",
    ComparatorType.EQUAL,
    pass_if_missing=False,
)
start_primary_key = [("partition", "device"), ("id", INF_MIN)]
end_primary_key = [("partition", "device"), ("id", INF_MAX)]

consumed, next_start_primary_key, rows, next_token = client.get_range(
    "example_table",
    Direction.FORWARD,
    start_primary_key,
    end_primary_key,
    column_filter=column_filter,
)

Parametreler

Tek sütunlu değer koşulu

Tek sütunlu değer koşulu oluşturmak için SingleColumnCondition(column_name, column_value, comparator, pass_if_missing=True, latest_version_only=True) yöntemini çağırın.


Ad


Tür


Açıklama


column_name (gerekli)


str


Değerlendirilecek öznitelik sütununun adı.


column_value (gerekli)


str, int, bytes, float veya bool


Hedef değer. Türü, öznitelik sütunu değer türüyle eşleşmelidir.


comparator (gerekli)


ComparatorType


Karşılaştırma işleci. Geçerli değerler şunlardır: EQUAL, NOT_EQUAL, GREATER_THAN, GREATER_EQUAL, LESS_THAN ve LESS_EQUAL.


pass_if_missing (isteğe bağlı)


bool


Hedef öznitelik sütunu eksik olduğunda satırın filtreden geçip geçmeyeceğini belirtir. Varsayılan değer: True. Bu parametre False olarak ayarlanırsa, ilgili sütunu içermeyen satırlar döndürülmez.


latest_version_only (isteğe bağlı)


bool


Yalnızca en son sürümün değerlendirilip değerlendirilmeyeceğini belirtir. Varsayılan değer: True. Bu parametre False ise, herhangi bir sürüm koşulu karşılıyorsa satır filtreden geçer.

Düzenli ifade koşulu

Düzenli ifade koşulu oluşturmak için SingleColumnRegexCondition(column_name, comparator, column_value=None, regex_rule=None, latest_version_only=True) yöntemini çağırın. Düzenli ifade filtrelemesi yalnızca dize öznitelik sütunlarını destekler.


Ad


Tür


Açıklama


column_name (gerekli)


str


Değerlendirilecek dize öznitelik sütununun adı.


comparator (gerekli)


ComparatorType


Karşılaştırma işleci. Geçerli değerler şunlardır: EQUAL, NOT_EQUAL, GREATER_THAN, GREATER_EQUAL, LESS_THAN, LESS_EQUAL, EXIST ve NOT_EXIST.


column_value (isteğe bağlı)


str, int veya float


Hedef değer. comparator değeri EXIST veya NOT_EXIST ise bu parametreyi belirtmeyin. Aksi takdirde bu parametre gereklidir. Türü, regex_rule.cast_type ile eşleşmelidir.


regex_rule (isteğe bağlı)


RegexRule


Alt dize çıkarma ve tür dönüştürme kuralı.


latest_version_only (isteğe bağlı)


bool


Yalnızca en son sürümün değerlendirilip değerlendirilmeyeceğini belirtir. Varsayılan değer: True. Bu parametre False ise, herhangi bir sürüm koşulu karşılıyorsa satır filtreden geçer.

Hedef öznitelik sütunu eksikse satır düzenli ifade filtresinden asla geçemez. Bu koşul için pass_if_missing ayrı olarak yapılandırılamaz.

Düzenli ifade kuralı

regex_rule parametresi RegexRule türündedir ve aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


regex_input (gerekli)


str


Düzenli ifade, en fazla 256 bayt. Perl uyumlu ifadeler ve tek baytlı karakterler desteklenir. Çince karakterler desteklenmez. İfade yakalama grupları içeriyorsa ilk grup çıkarılır; aksi halde tüm eşleşme çıkarılır.


cast_type (gerekli)


CastType


Çıkarılan değerin dönüştürüleceği tür. Geçerli değerler şunlardır: VT_STRING, VT_INTEGER ve VT_DOUBLE. Çıkarılan değerleri dönüştürülemeyen satırlar filtreden geçmez.

Bileşik koşul

Bileşik koşul oluşturmak için CompositeColumnCondition(combinator) yöntemini çağırın, ardından koşulları eklemek için add_sub_condition yöntemini çağırın.


Ad


Tür


Açıklama


combinator (gerekli)


LogicalOperator


Mantıksal işleç. Geçerli değerler şunlardır: AND, OR ve NOT.


sub_conditions (gerekli)


List[ColumnCondition]


Birleştirilecek koşullar. Tek sütunlu değer koşulları, düzenli ifade koşulları ve iç içe bileşik koşullar desteklenir; en fazla 32 koşul belirtilebilir.

Örnekler

Düzenli ifade ile filtreleme

Aşağıdaki örnek, account öznitelik sütunundaki user_004 gibi değerlerden sayıyı çıkarır, sayıyı tamsayıya dönüştürür ve çıkarılan değeri 3 değerinden büyük olan satırları döndürür.

regex_rule = RegexRule(r"user_(\d+)", CastType.VT_INTEGER)
column_filter = SingleColumnRegexCondition(
    "account",
    ComparatorType.GREATER_THAN,
    3,
    regex_rule,
)

consumed, next_start_primary_key, rows, next_token = client.get_range(
    "example_table",
    Direction.FORWARD,
    start_primary_key,
    end_primary_key,
    column_filter=column_filter,
)

Filtreleri birleştirme

Aşağıdaki örnek (category == "sensor" OR category == "gateway") AND score > 3 filtresini oluşturur.

category_filter = CompositeColumnCondition(LogicalOperator.OR)
category_filter.add_sub_condition(
    SingleColumnCondition("category", "sensor", ComparatorType.EQUAL)
)
category_filter.add_sub_condition(
    SingleColumnCondition("category", "gateway", ComparatorType.EQUAL)
)

column_filter = CompositeColumnCondition(LogicalOperator.AND)
column_filter.add_sub_condition(category_filter)
column_filter.add_sub_condition(
    SingleColumnCondition("score", 3, ComparatorType.GREATER_THAN)
)

Geçmiş sürümleri değerlendirme

Aşağıdaki örnek latest_version_only parametresini False olarak ayarlar. status öznitelik sütununun herhangi bir sürümü online ise satır döndürülür. status sütununu içermeyen satırlar döndürülmez.

column_filter = SingleColumnCondition(
    "status",
    "online",
    ComparatorType.EQUAL,
    pass_if_missing=False,
    latest_version_only=False,
)