A Tablestore client is a client for Tablestore and provides various methods that you can use to perform operations on tables and data in Tablestore. This topic describes how to use Tablestore SDK for Python to initialize a Tablestore client.
In the examples in this topic, the AccessKey pair of an Alibaba Cloud account is used. You can also use the AccessKey pair of a Resource Access Management (RAM) user or temporary access credentials obtained from Security Token Service (STS) to initialize a Tablestore client. For more information, see Use the AccessKey pair of a RAM user to access Tablestore and Use temporary access credentials obtained from STS to access Tablestore.
Preparations
Before you initialize a Tablestore client, you must obtain information about the Tablestore instance that you want to access, install Tablestore SDK for Java, and configure access credentials.
Obtain information about the instance that you want to access
Region ID: the ID of the region in which the instance resides. For example, the ID of the China (Hangzhou) region is cn-hangzhou. For more information about regions, see Regions.
Instance name and endpoint: Each Tablestore instance has an endpoint. You must specify an endpoint before you can perform operations on the data and tables in Tablestore. You can perform the following steps to obtain the endpoint of an instance:
Log on to the Tablestore console.
In the top navigation bar, select a resource group and a region.
On the Overview page, click the name of the instance that you want to manage or click Manage Instance in the Actions column of the instance.
On the Instance Details tab, view the name and endpoints of the instance.
ImportantBy default, Internet-based access is disabled for a newly created instance. If you want to access resources in an instance over the Internet, you must enable Internet-based access for the instance. For more information, see Enable Internet-based access for an instance.
Install Tablestore SDK for Python
Run the following command to use pip to install Tablestore SDK for Python:
sudo pip install tablestore
For information about how to install Tablestore SDK for Java, see Install Tablestore SDK for Python.
Configure access credentials
To use Tablestore SDK for Java to initiate a request to access Tablestore, you must configure access credentials. Alibaba Cloud verifies your identity and access permissions based on the access credentials.
In the examples in this topic, the AccessKey pair of an Alibaba Cloud account is used to describe how to configure access credentials. For more information, see How do I obtain an AccessKey pair?
If you save access credentials to the code, information leaks may occur. We recommend that you save access credentials to system environment variables.
Windows
Run the command prompt as an administrator and run the following commands:
# Specify the AccessKey ID.
setx TABLESTORE_ACCESS_KEY_ID your_access_key_id /m
# Specify the AccessKey secret.
setx TABLESTORE_ACCESS_KEY_SECRET your_access_key_secret /m
macOS/Linux/Unix
# Specify the AccessKey ID.
export TABLESTORE_ACCESS_KEY_ID=your_access_key_id
# Specify the AccessKey secret.
export TABLESTORE_ACCESS_KEY_SECRET=your_access_key_secret
For information about how to configure access credentials, see Configure access credentials.
Initialize a client
You must initialize a client and call the methods provided by the client to access Tablestore. Tablestore SDK for Python provides the OTSClient.
If you want to access Tablestore resources over HTTPS, we recommend that you use Tablestore SDK for Python V6.x.x and make sure that the version of OpenSSL is 0.9.8j or later. We recommend that you use OpenSSL 1.0.2d.
The release package for Tablestore SDK for Python contains the certifi package that you can directly install and use. To update the root certificate, download the latest root certificate from the official website of certifi.
Wide Column model
The following sample code provides an example on how to initialize a client, query the list of data tables in an instance, and display the list in the Tablestore console:
# -*- coding: utf-8 -*-
import os
from tablestore import OTSClient
# Specify the name of the instance.
instance_name = "yourInstanceName"
# Specify the endpoint of the instance.
endpoint = "yourEndpoint"
# Obtain the AccessKey ID and AccessKey secret from the environment variables.
access_key_id = os.getenv("TABLESTORE_ACCESS_KEY_ID")
access_key_secret = os.getenv("TABLESTORE_ACCESS_KEY_SECRET")
# Initialize a client.
client = OTSClient(endpoint, access_key_id, access_key_secret, instance_name)
# Query the list of data tables in the instance and display the list in the Tablestore console.
resp = client.list_table()
for table_name in resp:
print(table_name)
You can also use the Credentials tool to read access credential from environment variables. For more information, see Appendix: Use the Credentials tool to read access credentials.
TimeSeries model
The following sample code provides an example on how to initialize a client, query the list of time series tables in an instance, and display the list in the Tablestore console:
# -*- coding: utf-8 -*-
import os
from tablestore import OTSClient
# Specify the name of the instance.
instance_name = "yourInstanceName"
# Specify the endpoint of the instance.
endpoint = "yourEndpoint"
# Obtain the AccessKey ID and AccessKey secret from the environment variables.
access_key_id = os.getenv("TABLESTORE_ACCESS_KEY_ID")
access_key_secret = os.getenv("TABLESTORE_ACCESS_KEY_SECRET")
# Initialize a client.
client = OTSClient(endpoint, access_key_id, access_key_secret, instance_name)
# Query the list of time series tables in the instance and display the list in the Tablestore console.
response = client.list_timeseries_table()
for tableMeta in response:
print(tableMeta.timeseries_table_name)
You can also use the Credentials tool to read access credentials.
FAQ
Appendix: Use the Credentials tool to read access credentials
Run the following command to install the alibabacloud_credentials package:
pip install alibabacloud_credentials
Configure the environment variables.
Configure the
ALIBABA_CLOUD_ACCESS_KEY_ID
environment variable for the AccessKey ID of your Alibaba Cloud account and theALIBABA_CLOUD_ACCESS_KEY_SECRET
environment variable for the AccessKey secret of your Alibaba Cloud account.Read access credentials.
The following sample code provides an example on how to use the Credentials tool to read the access credentials from the environment variables.
# -*- coding: utf-8 -*- from alibabacloud_credentials.client import Client as CredClient # Use CredClient to obtain 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