Tüm Ürünler
Search
Belge Merkezi

Tablestore:Python SDK

Son Güncelleme:Oct 02, 2026

Tablestore için Python SDK, geniş tablo ve zaman serisi modeli işlemlerini destekler.

Başlangıç

Ortamınızı hazırlayın, SDK'yı yükleyin ve bir istemci başlatarak kullanmaya başlayın.

image

Ön Koşullar

Python çalışma zamanı ortamını indirin ve yükleyin. Python sürümünüzü kontrol etmek için python3 --version komutunu çalıştırın.

Python SDK'nın 6.0.0 ve sonraki sürümleri yalnızca Python 3'ü destekler; Python 2 artık desteklenmemektedir. Python 2 kullanmanız gerekiyorsa 5,4,4 veya önceki bir sürüm kullanın.

SDK'yı Yükleme

Bir yükleme yöntemi seçin. Kod örneklerinin doğru çalışmasını sağlamak için en son SDK sürümünü kullanın.

pip kullanarak yükleme (önerilen)

SDK'yı yüklemek için aşağıdaki komutu çalıştırın.

pip3 install tablestore

GitHub'dan yükleme

git kullanarak SDK'yı GitHub'dan klonlayın ve yükleyin.

  1. Depoyu klonlayın.

    git clone https://github.com/aliyun/aliyun-tablestore-python-sdk.git
  2. SDK dizinine gidin.

    cd aliyun-tablestore-python-sdk
  3. SDK'yı yükleyin.

    python3 setup.py install

Kaynak koddan yükleme

SDK'yı kaynak kodundan indirin ve yükleyin.

  1. Python SDK dosyasını indirin ve sıkıştırılmış arşivi açın.

  2. Arşivi açtığınız SDK dizinine gidin.

  3. SDK'yı yükleyin.

    python3 setup.py install

Erişim Kimlik Bilgilerini Yapılandırma

Alibaba Cloud hesabınız veya RAM kullanıcınız için bir AccessKey oluşturun ve kimlik bilgilerini doğrudan koda sabit kodlamamak amacıyla bu bilgileri ortam değişkeni olarak yapılandırın.

Güncellenmiş ortam değişkenlerinin yüklenmesi için yapılandırmadan sonra IDE'nizi, terminalinizi, diğer masaüstü uygulamalarınızı ve arka plan hizmetlerini yeniden başlatın. Diğer erişim kimlik bilgisi türleri hakkında daha fazla bilgi için bkz. Erişim kimlik bilgilerini yapılandırma .

Linux

  1. Ortam değişkenlerini ~/.bashrc dosyasına ekleyin:

    echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc
    echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc
  2. Değişiklikleri uygulayın:

    source ~/.bashrc
  3. Ortam değişkenlerini doğrulayın:

    echo $TABLESTORE_ACCESS_KEY_ID
    echo $TABLESTORE_ACCESS_KEY_SECRET

macOS

  1. Varsayılan kabuğunuzu kontrol edin:

    echo $SHELL
  2. Kabuk türünüze göre yapılandırma yapın:

    Zsh

    1. Ortam değişkenlerini ~/.zshrc dosyasına ekleyin:

      echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc
      echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc
    2. Değişiklikleri uygulayın:

      source ~/.zshrc
    3. Ortam değişkenlerini doğrulayın:

      echo $TABLESTORE_ACCESS_KEY_ID
      echo $TABLESTORE_ACCESS_KEY_SECRET

    Bash

    1. Ortam değişkenlerini ~/.bash_profile dosyasına ekleyin:

      echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bash_profile
      echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bash_profile
    2. Değişiklikleri uygulayın:

      source ~/.bash_profile
    3. Ortam değişkenlerini doğrulayın:

      echo $TABLESTORE_ACCESS_KEY_ID
      echo $TABLESTORE_ACCESS_KEY_SECRET

Windows

CMD

  1. CMD'de ortam değişkenlerini ayarlayın:

    setx TABLESTORE_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID"
    setx TABLESTORE_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"
  2. CMD'yi yeniden başlatın ve doğrulayın:

    echo %TABLESTORE_ACCESS_KEY_ID%
    echo %TABLESTORE_ACCESS_KEY_SECRET%

PowerShell

  1. PowerShell'de aşağıdaki komutları çalıştırın:

    [Environment]::SetEnvironmentVariable("TABLESTORE_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User)
    [Environment]::SetEnvironmentVariable("TABLESTORE_ACCESS_KEY_SECRET", "YOUR_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)
  2. Ortam değişkenlerini doğrulayın:

    [Environment]::GetEnvironmentVariable("TABLESTORE_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User)
    [Environment]::GetEnvironmentVariable("TABLESTORE_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)

İstemciyi Başlatma

Aşağıdaki kod, bir örnekteki tüm veri tablolarını ve zaman serisi tablolarını listeleyerek bağlantıyı doğrulamak üzere bir istemci başlatır.

Önemli

Yeni örneklerde genel ağ erişimi varsayılan olarak devre dışıdır. Etkinleştirmek için örneğin Network Management bölümüne gidin.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import os
import sys
from tablestore import OTSClient

def main():
    try:
        # Get access credentials from environment variables. Ensure TABLESTORE_ACCESS_KEY_ID and TABLESTORE_ACCESS_KEY_SECRET are set.
        access_key_id = os.getenv("TABLESTORE_ACCESS_KEY_ID")
        access_key_secret = os.getenv("TABLESTORE_ACCESS_KEY_SECRET")

        # TODO: Replace the following values with your instance details.
        instance_name = "n01k********"  # Instance name
        endpoint = "https://n01k********.cn-hangzhou.ots.aliyuncs.com"  # Instance endpoint
        
        # Create a client instance.
        client = OTSClient(endpoint, access_key_id, access_key_secret, instance_name)

        # List the data tables.
        resp = client.list_table()

        print(f"Found {len(resp)} data tables in instance '{instance_name}':")
        for table_name in resp:
            print(f"{table_name}")

        # List the time series tables.
        resp = client.list_timeseries_table()

        print(f"\nFound {len(resp)} time series tables in instance '{instance_name}':")
        for tableMeta in resp:
            print(f"{tableMeta.timeseries_table_name}")
            
    except Exception as e:
        print(f"Operation failed: {str(e)}")
        sys.exit(1)

if __name__ == "__main__":
    main()

Sürüm Uyumluluğu

Geçerli sürüm 6.x.x'tir. Önceki sürümlerle uyumluluk durumu şu şekildedir:

  • 5.x.x ile uyumludur.

    5,4.x, 5,3.x ve 5,2.x uyumludur. Ancak 5.2.1 ve 5.1.0 aşağıdaki durumlarda uyumsuzluk gösterir:

    • Search yönteminin dönüş türü.

      5.1.0 ve önceki sürümlerde bu yöntem varsayılan olarak bir Tuple döndürür. 5.2.0 ve sonraki sürümlerden itibaren ise bir SearchResponse nesnesi döndürür. SearchResponse sınıfı __iter__ yöntemini uygular ve yinelemeyi destekler. Bir Tuple almak için SearchResponse.v1_response() yöntemini kullanın.

    • Yeni ParallelScan yöntemi.

      Bu yöntem varsayılan olarak bir ParallelScanResponse nesnesi döndürür. Bir Tuple almak için ParallelScanResponse.v1_response() yöntemini kullanın.

  • 4.x.x ile uyumludur.

  • 2.x.x ile uyumlu değildir. 2.x.x serisi sırasız birincil anahtarları desteklerken 4.0.0 ve sonraki sürümler desteklemez. Aradaki temel değişiklikler şunlardır:

    • Paket adı ots2 yerine tablestore olarak değiştirildi.

    • Client.create_table yöntemine TableOptions parametresi eklendi.

    • put_row, get_row ve update_row işlemlerinde birincil anahtar sırasının korunması amacıyla primary_key türü dict yerine list olarak değiştirildi.

    • put_row ve update_row işlemlerinde attribute_columns türü dict yerine list olarak değiştirildi.

    • put_row ve update_row işlemleri için attribute_columns alanına timestamp eklendi.

    • get_row ve get_range işlemleri artık en az biri max_version and time_range parametresini gerektirir.

    • put_row, update_row ve delete_row işlemleri artık return_type parametresini destekler. Desteklenen tek değer, satırın birincil anahtarını (PK) döndüren RT_PK değeridir.

    • put_row, update_row ve delete_row yanıtları artık return_row alanını içerir. return_type değeri RT_PK olarak ayarlandığında return_row alanı PK değerini içerir.

SSS

"Signature mismatch" hatası alırsam ne yapmalıyım?

Aşağıdaki özel durum oluşur:

Error Code: OTSAuthFailed, Message: Signature mismatch., RequestId: 0005f55a-xxxx-xxxx-xxxx-xxxxxxxxxxxx, TraceId: 10b0f0e0-xxxx-xxxx-xxxx-xxxxxxxxxxxx, HttpStatus: 403
  • Neden: AccessKey ID veya AccessKey secret yanlış.

  • Çözüm: Doğru AccessKey ID ve AccessKey secret değerlerini girin.

"Request denied by instance ACL policies" hatası alırsam ne yapmalıyım?

SDK, bir Request denied by instance ACL policies hatası döndürebilir:

[ErrorCode]:OTSAuthFailed, [Message]:Request denied by instance ACL policies., [RequestId]:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, [TraceId]:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, [HttpStatus:]403
  • Neden: İstemcinin ağ türü, örneğin erişim ilkesiyle eşleşmiyor. Örneğin, örnek internet üzerinden erişime izin vermeyebilir.

  • Çözüm: Genel ağ erişimi varsayılan olarak devre dışıdır. Etkinleştirmek için:

    1. Tablestore konsolunda hedef örneği tıklayın.

    2. Network Management öğesini tıklayın. Allowed Network Type altında Internet seçeneğini belirleyin ve ardından Settings düğmesini tıklayın.

"Request denied because this instance can only be accessed from the binded VPC" hatası alırsam ne yapmalıyım?

SDK, bir Request denied because this instance can only be accessed from the bound VPC hatası döndürebilir:

[ErrorCode]:OTSAuthFailed, [Message]:Request denied because this instance can only be accessed from the binded VPC., [RequestId]:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, [TraceId]:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, [HttpStatus:]403
  • Neden: Örnek erişim türü Bound VPCs Only veya Tablestore Console or Bound VPCs olarak ayarlanmış ancak istemci bağlı bir VPC içinde değil veya Tablestore'a bir VPC uç noktası üzerinden erişmiyor.

  • Çözüm: İnternet erişimine izin verin veya bir VPC bağlayıp istemciyi bu VPC içinden bağlayın:

    1. Tablestore konsolunda hedef örneği tıklayın.

    2. Network Management > Bind VPC yolunu izleyin. Bir VPC ID ve bir VSwitch seçin, bir VPC Name girin ve ardından OK düğmesini tıklayın.

Tablestore kaynaklarına HTTPS üzerinden nasıl erişirim?

Python SDK'nın en son sürümünü kullanın. OpenSSL sürümünüzün 0.9.8j veya üzeri olduğundan emin olun. OpenSSL 1.0.2d önerilir.

Protobuf sürümleri uyumsuzsa ne yapmalıyım?

Bazı protobuf sürümleri, kurulum paketindeki *pb2.py dosyalarıyla uyumsuz olabilir. Bu sorunu çözmek için *pb2.py dosyalarını yeniden oluşturun:

  1. Mevcut protoc sürümünüzü kullanarak proto dosyaları için kod üretin.

    protoc --python_out=. tablestore/protobuf/search.proto
    protoc --python_out=. tablestore/protobuf/table_store.proto
    protoc --python_out=. tablestore/protobuf/table_store_filter.proto
  2. Oluşturulan dosyaların adını pb2.py uzantısıyla değiştirin ve bunları kurulum dizinindeki tablestore/protobuf/ klasörüne kopyalayarak orijinal *pb2.py dosyalarının üzerine yazın.

Credentials aracını kullanarak erişim kimlik bilgilerini okuma

  1. alibabacloud_credentials paketini yüklemek için aşağıdaki komutu çalıştırın.

    pip3 install alibabacloud_credentials
  2. Ortam değişkenlerini yapılandırın.

    ALIBABA_CLOUD_ACCESS_KEY_ID ve ALIBABA_CLOUD_ACCESS_KEY_SECRET değişkenlerini Alibaba Cloud hesabınızın AccessKey ID ve AccessKey secret değerlerine ayarlayın.

  3. Erişim kimlik bilgilerini okuyun.

    Aşağıdaki kod, Credentials aracını kullanarak erişim kimlik bilgilerini ortam değişkenlerinden okur.

    # -*- coding: utf-8 -*-
    from alibabacloud_credentials.client import Client as CredClient
    
    # Use CredClient to get the AccessKey ID and AccessKey secret from the environment variables.
    cred = CredClient()
    access_key_id = cred.get_credential().access_key_id
    access_key_secret = cred.get_credential().access_key_secret

İlgili Konular