🔥

TiDB Starter Data Service V3

に公開

今日はTiDB Starter が提供しているData Service の新しいバージョンであるv3を触ってみます。

Data Service

過去の記事で旧世代のv2についてまとめています。
https://zenn.dev/kameoncloud/articles/68a19247158a16

シンプルに言えばあらかじめ指定しておいた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