TiDB Starter Data Service V3
今日はTiDB Starter が提供しているData Service の新しいバージョンであるv3を触ってみます。
Data Service
過去の記事で旧世代のv2についてまとめています。
シンプルに言えばあらかじめ指定しておいたSQLが実行されるREST API用エンドポイントがTiDB Starterのクラウド環境に保存されいつでもHTTPからSQLの実行を指示することができるサービスです。
Chat2Query
というAIベースの自然言語によるSQL自動生成機能と連携し、SQLを直接かかなくてもSQLが自動で生成されSQLごとにAPIエンドポイントが作成されます。
v3にバージョンアップされ、通所のSQLの他にベクトル検索もRESTエンドポイントに対応しました。少し操作感が変わっているため、改めてまずは基本的なSQLの実行手順を纏めます。
さっそくやってみる
1. Data Appの作成
コンソール左ペインからクラスターではなく上位の存在であるProject
を選択するとData Service
を選択できるようになります。
Create Data App
をクリックします。
操作したいクラスターを指定します。
Data App Type
は2種類存在しています。
Standard : SQL をあらかじめ指定する方式です
Chat2Query: 自然言語でSQLを自動生成する方式です
この記事ではStandard
を選びCreate
をクリックします。
2. エンドポイントの作成
エンドポイントを作成します。
あらかじめ対象となるクラスターにはtest
というデータベースが存在しておりusers
テーブルに2つのデータが格納されています。
エンドポイントの名前を/showallsuers
に変更します。
3. コンソールからのテスト
Pathに先ほど指定した
/showallusersを入力して画面右上の
test`ボタンをクリックします。
以下の通りレスポンスが戻ります。
{
"type": "sql_endpoint",
"data": {
"columns": [
{
"col": "id",
"data_type": "INT",
"nullable": false
},
{
"col": "username",
"data_type": "VARCHAR",
"nullable": false
},
{
"col": "email",
"data_type": "VARCHAR",
"nullable": true
},
{
"col": "created_at",
"data_type": "DATETIME",
"nullable": true
}
],
"rows": [
{
"created_at": "2025-10-05 03:01:04",
"email": "alice@example.com",
"id": "1",
"username": "alice"
},
{
"created_at": "2025-10-05 03:01:04",
"email": "bob@example.com",
"id": "2",
"username": "bob"
}
],
"result": {
"code": 200,
"message": "Query OK!",
"start_ms": 1759764689895,
"end_ms": 1759764689906,
"latency": "11ms",
"row_count": 2,
"row_affect": 0,
"limit": 1000
}
}
}
4. APIキーの発行とcurlからのテスト
すでにエンドポイントが作成されています。
Show Code Example
をクリックするとcurlコマンドが出てきます。
Create an API Key
をクリックするとAPI作成画面に遷移します。
もう一度Create API Key
ボタンをクリックしてAPIを作成します。
API Keyが発行されたら以下のコマンドを実行します。
curl --digest --user ${PUBLIC_KEY}:${PRIVATE_KEY} --request GET 'https://us-west-2.data.tidbcloud.com/api/v1beta/app/dataapp-HPHYtkUW/endpoint/showallusers'\
--header 'endpoint-type: draft'
{
"type": "sql_endpoint",
"data": {
"columns": [
{
"col": "id",
"data_type": "INT",
"nullable": false
},
{
"col": "username",
"data_type": "VARCHAR",
"nullable": false
},
{
"col": "email",
"data_type": "VARCHAR",
"nullable": true
},
{
"col": "created_at",
"data_type": "DATETIME",
"nullable": true
}
],
"rows": [
{
"id": "1",
"username": "alice",
"email": "alice@example.com",
"created_at": "2025-10-05 03:01:04"
},
{
"id": "2",
"username": "bob",
"email": "bob@example.com",
"created_at": "2025-10-05 03:01:04"
}
],
"result": {
"code": 200,
"message": "Query OK!",
"start_ms": 1759765028115,
"end_ms": 1759765028283,
"latency": "168.322054ms",
"row_count": 2,
"row_affect": 0,
"limit": 1000
}
}
}
5. デプロイ
テストが完了したら最後にDeployボタンをクリックすれば完了です。
次回はChat2Query App
を試したいと思います。
Discussion