全部产品
Search
文档中心

Tablestore:Python SDK

更新时间:Dec 10, 2025

Kit Pengembangan Perangkat Lunak (SDK) Tablestore Python mendukung operasi pada model tabel lebar dan model timeseries.

Integrasi cepat

Bagian ini menjelaskan cara mengintegrasikan SDK Tablestore Python dengan cepat, mulai dari menyiapkan lingkungan hingga mengautentikasi klien.

Persiapkan lingkungan

Unduh dan instal lingkungan runtime Python. Jalankan perintah python --version untuk memeriksa versi Python Anda.

Mulai versi 6.0.0, SDK Python hanya mendukung Python 3 dan tidak lagi mendukung Python 2. Untuk menggunakan Python 2, gunakan versi 5.4.4 atau sebelumnya.

Instal SDK

Pilih metode instalasi berdasarkan lingkungan pengembangan Anda. Gunakan versi terbaru SDK agar contoh kode dapat dijalankan dengan benar.

Instal menggunakan pip (disarankan)

Jalankan perintah berikut untuk menginstal SDK Tablestore Python.

pip install tablestore

Instal dari GitHub

Unduh SDK Tablestore dari GitHub menggunakan perintah git dan instal.

  1. Jalankan perintah berikut untuk mengunduh SDK.

    git clone https://github.com/aliyun/aliyun-tablestore-python-sdk.git
  2. Jalankan perintah berikut untuk masuk ke folder paket instalasi SDK.

    cd aliyun-tablestore-python-sdk
  3. Jalankan perintah berikut untuk menginstal SDK.

    python setup.py install

Instal dari kode sumber

Unduh dan instal kode sumber SDK.

  1. Unduh dan ekstrak Python SDK.

  2. Masuk ke folder tempat Anda mengekstrak paket SDK.

  3. Jalankan perintah berikut untuk menginstal SDK.

    python setup.py install

Konfigurasikan kredensial akses

Buat AccessKey untuk Akun Alibaba Cloud atau Pengguna RAM Anda. Kemudian, konfigurasikan AccessKey tersebut dalam variabel lingkungan seperti yang ditunjukkan di bawah ini. Mengonfigurasi AccessKey dalam variabel lingkungan meningkatkan keamanan karena mencegah penyematan informasi sensitif secara langsung dalam kode.

Setelah konfigurasi selesai, restart atau refresh lingkungan pengembangan Anda—termasuk IDE, antarmuka baris perintah, aplikasi desktop lainnya, serta layanan latar belakang—untuk memastikan variabel lingkungan sistem terbaru dimuat. Untuk informasi lebih lanjut tentang jenis kredensial akses lainnya, lihat Konfigurasikan kredensial akses.

Linux

  1. Jalankan perintah berikut untuk menambahkan pengaturan variabel lingkungan ke file ~/.bashrc.

    echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc
    echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc
  2. Jalankan perintah berikut untuk menerapkan perubahan.

    source ~/.bashrc
  3. Jalankan perintah berikut untuk memverifikasi bahwa variabel lingkungan telah aktif.

    echo $TABLESTORE_ACCESS_KEY_ID
    echo $TABLESTORE_ACCESS_KEY_SECRET

macOS

  1. Jalankan perintah berikut di terminal untuk melihat jenis shell default Anda.

    echo $SHELL
  2. Lakukan langkah-langkah berikut berdasarkan jenis shell default Anda.

    Zsh
    1. Jalankan perintah berikut untuk menambahkan pengaturan variabel lingkungan ke file ~/.zshrc.

      echo "export TABLESTORE_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc
      echo "export TABLESTORE_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc
    2. Jalankan perintah berikut untuk menerapkan perubahan.

      source ~/.zshrc
    3. Jalankan perintah berikut untuk memverifikasi bahwa variabel lingkungan telah aktif.

      echo $TABLESTORE_ACCESS_KEY_ID
      echo $TABLESTORE_ACCESS_KEY_SECRET
    Bash
    1. Jalankan perintah berikut untuk menambahkan pengaturan variabel lingkungan ke file ~/.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. Jalankan perintah berikut untuk menerapkan perubahan.

      source ~/.bash_profile
    3. Jalankan perintah berikut untuk memverifikasi bahwa variabel lingkungan telah aktif.

      echo $TABLESTORE_ACCESS_KEY_ID
      echo $TABLESTORE_ACCESS_KEY_SECRET

Windows

CMD
  1. Jalankan perintah berikut di Command Prompt (CMD) untuk mengatur variabel lingkungan.

    setx TABLESTORE_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID"
    setx TABLESTORE_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"
  2. Restart CMD dan jalankan perintah berikut untuk memverifikasi bahwa variabel lingkungan telah aktif.

    echo %TABLESTORE_ACCESS_KEY_ID%
    echo %TABLESTORE_ACCESS_KEY_SECRET%
PowerShell
  1. Jalankan perintah berikut di 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. Jalankan perintah berikut untuk memverifikasi bahwa variabel lingkungan telah aktif.

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

Inisialisasi klien

Kode contoh berikut menginisialisasi klien, lalu mencantumkan tabel data dan tabel timeseries dalam instans Tablestore untuk mengautentikasi koneksi.

Penting

Akses jaringan publik dinonaktifkan secara default untuk instans baru. Untuk mengakses sumber daya pada instans melalui jaringan publik, aktifkan akses jaringan publik di pengaturan Network Management instans tersebut.

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

import os
import sys
from tablestore import OTSClient

def main():
    try:
        # Ambil kredensial akses dari variabel lingkungan. Konfigurasikan TABLESTORE_ACCESS_KEY_ID dan TABLESTORE_ACCESS_KEY_SECRET.
        access_key_id = os.getenv("TABLESTORE_ACCESS_KEY_ID")
        access_key_secret = os.getenv("TABLESTORE_ACCESS_KEY_SECRET")

        # TODO: Ubah konfigurasi berikut sesuai detail instans Anda.
        instance_name = "n01k********"  # Masukkan nama instans.
        endpoint = "https://n01k********.cn-hangzhou.ots.aliyuncs.com"  # Masukkan titik akhir instans.
        
        # Buat instans klien.
        client = OTSClient(endpoint, access_key_id, access_key_secret, instance_name)

        # Cantumkan tabel data.
        resp = client.list_table()

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

        # Cantumkan tabel timeseries.
        resp = client.list_timeseries_table()

        print(f"\nFound {len(resp)} timeseries 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()

Kompatibilitas versi

Versi saat ini adalah 6.x.x. Daftar berikut menjelaskan kompatibilitasnya dengan versi sebelumnya:

  • Kompatibel dengan seri SDK 5.x.x.

    Versi 5.4.x, 5.3.x, dan 5.2.x kompatibel. Namun, versi 5.2.1 dan 5.1.0 memiliki ketidakkompatibilitas berikut:

    • Tipe nilai kembali untuk metode Search.

      Pada versi 5.1.0 dan sebelumnya, metode ini secara default mengembalikan objek Tuple. Mulai versi 5.2.0, metode ini secara default mengembalikan objek SearchResponse. Objek SearchResponse mengimplementasikan metode __iter__ dan mendukung traversal. Untuk mengembalikan objek Tuple, gunakan metode SearchResponse.v1_response().

    • Metode ParallelScan yang baru.

      Secara default, metode ini mengembalikan objek ParallelScanResponse. Untuk mengembalikan objek Tuple, gunakan metode ParallelScanResponse.v1_response().

  • Kompatibel dengan seri SDK 4.x.x.

  • Tidak kompatibel dengan seri SDK 2.x.x. Hal ini karena versi seri 2.0 mendukung primary key yang tidak berurutan, sedangkan versi 4.0.0 dan seterusnya tidak. Ketidakkompatibilitas tersebut meliputi hal-hal berikut:

    • Nama paket berubah dari ots2 menjadi tablestore.

    • Parameter TableOptions ditambahkan ke metode Client.create_table.

    • Untuk metode seperti put_row, get_row, dan update_row, tipe parameter primary_key berubah dari dict menjadi list untuk memastikan urutan primary key.

    • Untuk metode seperti put_row dan update_row, tipe parameter attribute_columns berubah dari dict menjadi list.

    • Parameter timestamp ditambahkan ke parameter attribute_columns untuk metode seperti put_row dan update_row.

    • Metode seperti get_row dan get_range sekarang mencakup parameter max_version, time_range. Anda harus menentukan setidaknya salah satu dari dua parameter tersebut.

    • Operasi seperti put_row, update_row, dan delete_row sekarang mendukung parameter return_type. Satu-satunya nilai yang didukung untuk parameter ini adalah RT_PK, yang menentukan bahwa nilai kembali mencakup primary key (PK) baris tersebut.

    • Operasi seperti put_row, update_row, dan delete_row sekarang mencakup bidang return_row dalam nilai kembalinya. Jika Anda mengatur parameter return_type ke RT_PK dalam permintaan, bidang return_row akan berisi nilai PK baris tersebut.

FAQ

Apa yang harus saya lakukan jika terjadi error "Signature mismatch" saat menggunakan SDK?

Terjadi pengecualian berikut:

Error Code: OTSAuthFailed, Message: Signature mismatch., RequestId: 0005f55a-xxxx-xxxx-xxxx-xxxxxxxxxxxx, TraceId: 10b0f0e0-xxxx-xxxx-xxxx-xxxxxxxxxxxx, HttpStatus: 403
  • Penyebab: ID AccessKey atau rahasia AccessKey yang ditentukan saat inisialisasi klien salah.

  • Solusi: Berikan AccessKey yang benar, yang mencakup ID AccessKey dan rahasia AccessKey.

Apa yang harus saya lakukan jika terjadi error "Request denied by instance ACL policies" saat menggunakan SDK?

Pengecualian Request denied by instance ACL policies berikut terjadi saat Anda menggunakan SDK untuk mengakses sumber daya dalam instans Tablestore. Contoh error ditunjukkan di bawah ini:

[ErrorCode]:OTSAuthFailed, [Message]:Request denied by instance ACL policies., [RequestId]:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, [TraceId]:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, [HttpStatus:]403
  • Penyebab: Jenis jaringan yang digunakan oleh klien tidak memenuhi persyaratan akses jaringan instans. Misalnya, klien menggunakan Internet, tetapi instans tidak dikonfigurasi untuk mengizinkan akses melalui Internet.

  • Solusi: Secara default, akses jaringan publik dinonaktifkan untuk instans baru. Untuk mengakses sumber daya dalam instans melalui Internet, aktifkan akses jaringan publik sebagai berikut:

    1. Buka Konsol Tablestore dan klik alias instans.

    2. Klik Network Management. Untuk Allowed Network Type, pilih Internet, lalu klik Settings.

Apa yang harus saya lakukan jika terjadi error "Request denied because this instance can only be accessed from the binded VPC" saat menggunakan SDK?

Pengecualian Request denied because this instance can only be accessed from the bound VPC berikut terjadi saat Anda menggunakan SDK untuk mengakses sumber daya dalam instans Tablestore. Contoh error ditunjukkan di bawah ini:

[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
  • Penyebab: Jika tipe akses instans Tablestore diatur ke Bound VPCs Only atau Tablestore Console or Bound VPCs, Anda harus menyambungkan VPC ke instans tersebut. Anda juga harus memastikan bahwa klien berada dalam VPC yang sama dengan instans dan mengakses Tablestore menggunakan titik akhir VPC.

  • Solusi: Ubah tipe akses instans agar mengizinkan akses Internet, atau sambungkan VPC ke instans Tablestore dan pastikan klien berada dalam jaringan VPC tersebut. Untuk menyambungkan VPC:

    1. Buka Konsol Tablestore dan klik alias instans.

    2. Klik Network Management > Bind VPC. Pilih VPC ID dan VSwitch, masukkan VPC Name, lalu klik OK.

Bagaimana cara menggunakan protokol HTTPS untuk mengakses sumber daya Tablestore?

Gunakan versi terbaru SDK Python. Pastikan versi OpenSSL Anda 0.9.8j atau lebih baru. Disarankan menggunakan OpenSSL 1.0.2d.

Apa yang harus dilakukan jika beberapa versi protobuf tidak kompatibel?

Beberapa versi protobuf tidak kompatibel dengan file *pb2.py dalam paket instalasi saat ini. Untuk mengatasi masalah ini, Anda dapat membuat file *pb2.py secara manual dengan langkah-langkah berikut:

  1. Gunakan versi protoc Anda saat ini untuk menghasilkan kode untuk file proto yang sesuai secara berurutan.

    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. Ubah nama ketiga file yang dihasilkan dengan ekstensi pb2.py. Lalu, salin file-file tersebut ke folder tablestore/protobuf/ dalam direktori instalasi untuk menggantikan file *pb2.py asli.

Bagaimana cara menggunakan tool Credentials untuk membaca kredensial akses?

  1. Jalankan perintah berikut untuk menginstal paket alibabacloud_credentials.

    pip install alibabacloud_credentials
  2. Konfigurasikan variabel lingkungan.

    Konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET. Variabel ini merepresentasikan ID AccessKey dan rahasia AccessKey Akun Alibaba Cloud Anda.

  3. Baca kredensial akses.

    Kode contoh berikut menunjukkan cara menggunakan tool Credentials untuk membaca kredensial akses dari variabel lingkungan.

    # -*- coding: utf-8 -*-
    from alibabacloud_credentials.client import Client as CredClient
    
    # Gunakan CredClient untuk mendapatkan ID AccessKey dan rahasia AccessKey dari variabel lingkungan.
    cred = CredClient()
    access_key_id = cred.get_credential().access_key_id
    access_key_secret = cred.get_credential().access_key_secret

Referensi