Python SDK for TiDB Cloud
Project description
Python SDK for TiDB Cloud
Introduction
tidbcloudy
is a Python package that provides a high-level interface to access TiDB Cloud. For more information about TiDB Cloud API, see TiDB Cloud API Documentation.
Installation
pip install tidbcloudy
Make sure that you have mysql client installed in your environment. For more information, see PyMySQL/mysqlclient.
Usage
List all resources in your organization
import tidbcloudy
api = tidbcloudy.TiDBCloud(public_key="public_key", private_key="private_key")
for project in api.iter_projects():
print(project)
for cluster in project.iter_clusters():
print(cluster)
for backup in cluster.iter_backups():
print(backup)
for restore in project.iter_restores():
print(restore)
Create a cluster
import tidbcloudy
from tidbcloudy.specification import CreateClusterConfig
api = tidbcloudy.TiDBCloud(public_key="public_key", private_key="private_key")
project = api.get_project("project_id", update_from_server=True)
config = CreateClusterConfig()
config.set_name("cluster-name") \
.set_cluster_type("cluster-type") \
.set_cloud_provider("cloud-provider") \
.set_region("region-code") \
.set_port(4399) \
.set_root_password("root_password") \
.set_component("tidb", "8C16G", 1) \
.set_component("tikv", "8C32G", 3, 500) \
.add_current_ip_access()
cluster = project.create_cluster(config)
cluster.wait_for_ready()
Modify a cluster
import tidbcloudy
from tidbcloudy.specification import UpdateClusterConfig
api = tidbcloudy.TiDBCloud(public_key="public_key", private_key="private_key")
project = api.get_project("project_id", update_from_server=True)
cluster = project.get_cluster("cluster_id")
new_config = UpdateClusterConfig()
new_config.update_component("tiflash", node_quantity=1, node_size="8C64G", storage_size_gib=500)
cluster.update(new_config)
Create a backup
import tidbcloudy
api = tidbcloudy.TiDBCloud(public_key="public_key", private_key="private_key")
project = api.get_project("project_id", update_from_server=True)
cluster = project.get_cluster("cluster_id")
backup = cluster.create_backup(name="backup-1", description="created by tidbcloudy")
print(backup)
Create a restore
import tidbcloudy
from tidbcloudy.specification import CreateClusterConfig
api = tidbcloudy.TiDBCloud(public_key="public_key", private_key="private_key")
project = api.get_project("project_id", update_from_server=True)
cluster = project.get_cluster("cluster_id")
backup_config = CreateClusterConfig()
backup_config \
.set_cluster_type("cluster-type") \
.set_cloud_provider("cloud-provider") \
.set_region("region-code") \
.set_port(4399) \
.set_root_password("root-password") \
.set_component("tidb", "8C16G", 1) \
.set_component("tikv", "8C32G", 3, 500) \
.set_component("tiflash", "8C64G", 2, 500) \
.add_current_ip_access()
restore = project.create_restore(backup_id="backup_id", name="restore-by-tidbcloudy", cluster_config=backup_config)
print(restore)
Enhancements comparing to original TiDB Cloud API
- Iterate over resources instead of manual pagination
- Connect to a TiDB cluster using the MySQL client
- Get a Project using a Project ID
- Configure your cluster with method chaining
- Add your current IP address automatically
- Wait for the cluster to be ready when creating/modifying a cluster
- Case-insensitive when setting cluster type, cloud provider, and component name
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tidbcloudy-1.0.0.tar.gz
(12.0 kB
view hashes)
Built Distribution
tidbcloudy-1.0.0-py3-none-any.whl
(15.3 kB
view hashes)
Close
Hashes for tidbcloudy-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0963f2f4873dccc19adfc52889ac13adef01d9cfccbf628eb83719f645fde2e4 |
|
MD5 | ee14c8a3412a62777362ee3f9a880161 |
|
BLAKE2b-256 | afb1bb505f3bea723eb34b0d97cfea66a0b5e918dc8f52f9d11354c95a24d96b |