TiDBに接続する
このガイドではpytidbクライアントを使用して TiDB データベースに接続する方法を説明します。
依存関係をインストールします
pytidbはSQLAlchemyをベースにしたPythonクライアントです。生のSQL文を書かずにベクトル埋め込みを保存・検索できる、一連の高レベルAPIを提供します。
Pythonクライアントをインストールするには、次のコマンドを実行してください。
pip install pytidb
接続パラメータを使用して接続します。
TiDBの導入タイプに基づいて手順を選択してください。
TiDB Cloud Starterインスタンスを作成する、次のように Web コンソールから接続パラメータを取得できます。
- 私のTiDBページに移動し、次に、対象のTiDB Cloud Starterインスタンスの名前をクリックして、概要ページに移動します。
- 右上隅の「接続」をクリックします。接続ダイアログが表示され、接続パラメータが表示されます。
- 接続パラメータをコードまたは環境変数にコピーしてください。
サンプルコード:
from pytidb import TiDBClient
db = TiDBClient.connect(
host="{gateway-region}.prod.aws.tidbcloud.com",
port=4000,
username="{prefix}.root",
password="{password}",
database="test",
)
注記:
TiDB Cloud Starterの場合、パブリック エンドポイントを使用する場合はデータベースデータベースへのTLS接続が必要です。
pytidbクライアントは、 TiDB Cloud Starterインスタンスの TLS を自動的に有効にします。
TiDBセルフマネージドのクイックスタートスタートに従って、テスト用にTiDBクラスターをデプロイします。
サンプルコード:
from pytidb import TiDBClient
db = TiDBClient.connect(
host="{tidb_server_host}",
port=4000,
username="root",
password="{password}",
database="test",
)
注記:
テスト用にTiDBクラスタをデプロイするために
tiup playgroundを使用する場合、デフォルトのホストは127.0.0.1で、デフォルトのパスワードは空です。
接続が完了すると、 dbオブジェクトを使用して、テーブルの操作、データのクエリなどを行うことができます。
接続文字列を使用して接続します。
接続文字列(データベースURL)を使用する場合は、デプロイメントの種類に応じて以下の形式に従ってください。
TiDB Cloud Starterインスタンスを作成する、次のように Web コンソールから接続パラメータを取得できます。
- 私のTiDBページに移動し、次に、対象のTiDB Cloud Starterインスタンスの名前をクリックして、概要ページに移動します。
- 右上隅の「接続」をクリックします。接続ダイアログが表示され、接続パラメータが一覧表示されます。
- 接続パラメータをコピーし、以下の形式で接続文字列を作成してください。
from pytidb import TiDBClient
db = TiDBClient.connect(
database_url="mysql+pymysql://{USERNAME}:{PASSWORD}@{HOST}:{PORT}/{DATABASE}?ssl_verify_cert=true&ssl_verify_identity=true",
)
注記:
TiDB Cloud Starterの場合、パブリック エンドポイントを使用する場合はデータベースデータベースへのTLS接続が必要となるため、接続文字列に
ssl_verify_cert=true&ssl_verify_identity=trueを設定する必要があります。
接続文字列を作成するには、以下の形式に従ってください。
from pytidb import TiDBClient
db = TiDBClient.connect(
database_url="mysql+pymysql://{USERNAME}:{PASSWORD}@{HOST}:{PORT}/{DATABASE}",
)
注記:
tiup playgroundを使用してテスト用のTiDBクラスタをデプロイする場合、接続文字列は次のとおりです。mysql+pymysql://root:@127.0.0.1:4000/test
SQLAlchemy DBエンジンに接続する
アプリケーションに既に SQLAlchemy データベース エンジンが搭載されている場合は、 db_engineパラメータを使用してそれを再利用できます。
from pytidb import TiDBClient
db = TiDBClient(db_engine=db_engine)
次のステップ
TiDBデータベースに接続後、以下のガイドを参照してデータの操作方法を学ぶことができます。