Tous les produits
Search
Centre de documentation

Tablestore:Python SDK

Dernière mise à jour :Aug 18, 2026

Le SDK Tablestore pour Python prend en charge les opérations sur le modèle de table large et le modèle de séries temporelles.

Prise en main

Préparez votre environnement, installez le SDK et initialisez un client pour commencer.

image

Prérequis

Téléchargez et installez l'environnement d'exécution Python. Exécutez la commande python3 --version pour vérifier votre version de Python.

À partir de la version 6.0.0, le SDK Python prend uniquement en charge Python 3 et ne prend plus en charge Python 2. Pour utiliser Python 2, vous devez utiliser la version 5.4.4 ou une version antérieure.

Installer le SDK

Sélectionnez une méthode d'installation. Utilisez la dernière version du SDK pour garantir le bon fonctionnement des exemples de code.

Installer avec pip (recommandé)

Exécutez la commande suivante pour installer le SDK.

pip3 install tablestore

Installer depuis GitHub

Clonez le SDK depuis GitHub à l'aide de git et installez-le.

  1. Clonez le dépôt.

    git clone https://github.com/aliyun/aliyun-tablestore-python-sdk.git
  2. Accédez au répertoire du SDK.

    cd aliyun-tablestore-python-sdk
  3. Installez le SDK.

    python3 setup.py install

Installer depuis le code source

Téléchargez et installez le SDK à partir du code source.

  1. Téléchargez et décompressez le SDK Python.

  2. Accédez au répertoire du SDK décompressé.

  3. Installez le SDK.

    python3 setup.py install

Configurer les identifiants d'accès

Créez un AccessKey pour votre compte Alibaba Cloud ou utilisateur RAM, puis configurez-le comme variable d'environnement afin d'éviter d'encoder les identifiants en dur.

Redémarrez votre IDE, votre terminal, vos autres applications de bureau et vos services en arrière-plan après la configuration pour charger les variables d'environnement mises à jour. Pour plus d'informations sur les autres types d'identifiants d'accès, consultez la rubrique Configurer les identifiants d'accès .

Linux

  1. Ajoutez les variables d'environnement au fichier ~/.bashrc :

    echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc
    echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc
  2. Appliquez les modifications :

    source ~/.bashrc
  3. Vérifiez les variables d'environnement :

    echo $TABLESTORE_ACCESS_KEY_ID
    echo $TABLESTORE_ACCESS_KEY_SECRET

macOS

  1. Vérifiez votre shell par défaut :

    echo $SHELL
  2. Configurez les variables en fonction de votre type de shell :

    Zsh

    1. Ajoutez les variables d'environnement au fichier ~/.zshrc :

      echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc
      echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc
    2. Appliquez les modifications :

      source ~/.zshrc
    3. Vérifiez les variables d'environnement :

      echo $TABLESTORE_ACCESS_KEY_ID
      echo $TABLESTORE_ACCESS_KEY_SECRET

    Bash

    1. Ajoutez les variables d'environnement au fichier ~/.bash_profile :

      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. Appliquez les modifications :

      source ~/.bash_profile
    3. Vérifiez les variables d'environnement :

      echo $TABLESTORE_ACCESS_KEY_ID
      echo $TABLESTORE_ACCESS_KEY_SECRET

Windows

CMD

  1. Définissez les variables d'environnement dans CMD :

    setx TABLESTORE_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID"
    setx TABLESTORE_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"
  2. Redémarrez CMD et vérifiez :

    echo %TABLESTORE_ACCESS_KEY_ID%
    echo %TABLESTORE_ACCESS_KEY_SECRET%

PowerShell

  1. Exécutez la commande suivante dans PowerShell :

    [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. Vérifiez les variables d'environnement :

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

Initialiser le client

Le code suivant initialise un client et répertorie toutes les tables de données et les tables de séries temporelles d'une instance pour vérifier la connectivité.

Important

L'accès via le réseau public est désactivé par défaut pour les nouvelles instances. Pour l'activer, accédez à Network Management pour l'instance.

#!/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()

Compatibilité des versions

La version actuelle est la 6.x.x. Compatibilité avec les versions antérieures :

  • Compatible avec la version 5.x.x.

    Les versions 5.4.x, 5.3.x et 5,2.x sont compatibles. Les versions 5.2.1 et 5.1.0 présentent des incompatibilités dans les cas suivants :

    • Le type de retour de la méthode Search.

      Dans les versions 5.1.0 et antérieures, cette méthode renvoie par défaut un Tuple. À partir de la version 5.2.0, elle renvoie un objet SearchResponse. L'objet SearchResponse implémente __iter__ et prend en charge le parcours. Pour obtenir un Tuple, utilisez SearchResponse.v1_response().

    • La nouvelle méthode ParallelScan.

      Par défaut, cette méthode renvoie un objet ParallelScanResponse. Pour obtenir un Tuple, utilisez ParallelScanResponse.v1_response().

  • Compatible avec la version 4.x.x.

  • Incompatible avec la version 2.x.x. La série 2.x.x prend en charge les clés primaires non ordonnées, ce qui n'est pas le cas des versions 4.0.0 et ultérieures. Modifications majeures :

    • Le nom du package est passé de ots2 à tablestore.

    • Le paramètre TableOptions a été ajouté à Client.create_table.

    • Pour put_row, get_row et update_row, le type de primary_key est passé de dict à list afin de préserver l'ordre des clés primaires.

    • Pour put_row et update_row, le type de attribute_columns est passé de dict à list.

    • Le champ timestamp a été ajouté à attribute_columns pour put_row et update_row.

    • Les méthodes get_row et get_range nécessitent désormais au moins l'un des paramètres max_version and time_range.

    • Les méthodes put_row, update_row et delete_row prennent désormais en charge return_type. La seule valeur prise en charge est RT_PK, qui renvoie la clé primaire (PK) de la ligne.

    • Les méthodes put_row, update_row et delete_row incluent désormais return_row dans leur réponse. Lorsque return_type est défini sur RT_PK, return_row contient la valeur PK.

FAQ

Que faire en cas d'erreur « Signature mismatch » ?

L'exception suivante se produit :

Error Code: OTSAuthFailed, Message: Signature mismatch., RequestId: 0005f55a-xxxx-xxxx-xxxx-xxxxxxxxxxxx, TraceId: 10b0f0e0-xxxx-xxxx-xxxx-xxxxxxxxxxxx, HttpStatus: 403
  • Cause : L'AccessKey ID ou l'AccessKey secret est incorrect.

  • Solution : Fournissez l'AccessKey ID et l'AccessKey secret corrects.

Que faire en cas d'erreur « Request denied by instance ACL policies » ?

Le SDK peut renvoyer une erreur Request denied by instance ACL policies :

[ErrorCode]:OTSAuthFailed, [Message]:Request denied by instance ACL policies., [RequestId]:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, [TraceId]:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, [HttpStatus:]403
  • Cause : Le type de réseau du client ne correspond pas à la politique d'accès de l'instance. Par exemple, l'instance n'autorise pas l'accès Internet.

  • Solution : L'accès via le réseau public est désactivé par défaut. Pour l'activer :

    1. Dans la console Tablestore, cliquez sur l'instance cible.

    2. Cliquez sur Network Management. Pour Allowed Network Type, sélectionnez Internet, puis cliquez sur Settings.

Que faire en cas d'erreur « Request denied because this instance can only be accessed from the binded VPC » ?

Le SDK peut renvoyer une erreur Request denied because this instance can only be accessed from the bound VPC :

[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
  • Cause : Le type d'accès à l'instance est défini sur Bound VPCs Only ou Tablestore Console or Bound VPCs, mais le client ne se trouve pas dans un VPC attaché ou n'accède pas à Tablestore via un endpoint VPC.

  • Solution : Autorisez l'accès Internet ou attachez un VPC et connectez le client depuis celui-ci :

    1. Dans la console Tablestore, cliquez sur l'instance cible.

    2. Cliquez sur Network Management > Bind VPC. Sélectionnez un VPC ID et un VSwitch, saisissez un VPC Name, puis cliquez sur OK.

Comment accéder aux ressources Tablestore via HTTPS ?

Utilisez la dernière version du SDK Python. Assurez-vous que votre version d'OpenSSL est la 0.9.8j ou une version ultérieure. La version 1.0.2d d'OpenSSL est recommandée.

Que faire en cas d'incompatibilité des versions de protobuf ?

Certaines versions de protobuf sont incompatibles avec les fichiers *pb2.py du package d'installation. Pour résoudre ce problème, régénérez les fichiers *pb2.py :

  1. Utilisez votre version actuelle de protoc pour générer le code pour les fichiers proto.

    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. Renommez les fichiers générés avec l'extension pb2.py et copiez-les dans tablestore/protobuf/ du répertoire d'installation, en remplaçant les fichiers *pb2.py d'origine.

Utiliser l'outil Credentials pour lire les identifiants d'accès

  1. Exécutez la commande suivante pour installer le package alibabacloud_credentials.

    pip3 install alibabacloud_credentials
  2. Configurez les variables d'environnement.

    Définissez ALIBABA_CLOUD_ACCESS_KEY_ID et ALIBABA_CLOUD_ACCESS_KEY_SECRET sur l'AccessKey ID et l'AccessKey secret de votre compte Alibaba Cloud.

  3. Lisez les identifiants d'accès.

    Le code suivant lit les identifiants d'accès à partir des variables d'environnement à l'aide de l'outil Credentials.

    # -*- 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

Références