データサービスを始める

q
z

データ サービス (ベータ版) を使用すると、カスタム API エンドポイントを使用して HTTPS リクエスト経由でTiDB Cloudデータにアクセスし、HTTPS と互換性のあるあらゆるアプリケーションやサービスとシームレスに統合できるようになります。

ヒント:

TiDB Cloudは、TiDBクラスタ用のChat2Query APIを提供します。有効にすると、 TiDB Cloudは自動的にChat2Queryと呼ばれるシステムデータアプリと、データサービスにChat2Dataエンドポイントを作成します。このエンドポイントを呼び出すことで、AIが指示を与えるだけでSQL文を生成・実行できるようになります。

詳細についてはChat2Query APIを使い始める参照してください。

このドキュメントでは、データアプリの作成、開発、テスト、デプロイ、エンドポイントの呼び出しを通して、 TiDB Cloud Data Service(ベータ版)をすぐに使い始める方法を紹介します。データアプリとは、特定のアプリケーションのデータにアクセスするために使用できるエンドポイントの集合です。

始める前に

データアプリを作成する前に、クラスターTiDB Cloudサーバーレス作成済みであることを確認してください。クラスターがない場合は、 TiDB Cloud Serverless クラスターを作成するの手順に従って作成してください。

サンプルデータアプリを使ってみる

サンプルデータアプリを作成することは、データサービスを使い始めるのに最適な方法です。プロジェクトにまだデータアプリがない場合は、 「データサービス」ページの画面上の指示に従ってサンプルデータアプリを作成し、そのアプリを使ってデータサービスの機能を試してみることができます。

  1. TiDB Cloudコンソールで、左側のナビゲーション ペインにある[データ サービス] をクリックします。

  2. データサービスページで、 「サンプルデータアプリの作成」をクリックします。ダイアログが表示されます。

  3. ダイアログで、必要に応じてアプリ名を更新し、データ アプリがアクセスするクラスターを選択して、 [作成]をクリックします。

    作成プロセスには数秒かかります。

    注記:

    現在のプロジェクトにクラスターが存在しない場合は、 [データ ソースのリンク]ドロップダウン リストで[新しいクラスタの作成]をクリックして、最初にクラスターを作成できます。

  4. サンプル データ アプリが自動的に作成されると、左側のペインにアプリ名、エンドポイントのリスト、中央のペインにエンドポイントの SQL ステートメント、右側にサンプル データ アプリの使用方法の説明が表示されます。

  5. 右側の指示に従ってエンドポイントを選択し、curl コマンドを使用してエンドポイントを呼び出します。

独自のデータアプリを使い始める

Data Service の使用を開始するには、独自のデータ アプリを作成し、次の手順に従ってエンドポイントを開発、テスト、デプロイ、および呼び出すこともできます。

ステップ1. データアプリを作成する

データ アプリを作成するには、次の手順を実行します。

  1. TiDB Cloudコンソールで、左側のナビゲーション ペインにある[データ サービス] をクリックします。

  2. プロジェクトのデータサービスページで、左側のペインでDataApp を作成します

    ヒント:

    これがプロジェクトの最初のデータ アプリである場合は、ページの中央にある[データ アプリの作成]をクリックします。

  3. [データ アプリの作成]ダイアログで、名前と説明を入力し、データ アプリがアクセスするクラスターを選択します。

    注記:

    デフォルトでは、データアプリの種類は標準データアプリです。Chat2Queryデータアプリを作成する場合は、このドキュメントではなくChat2Query APIを使い始めるを参照してください。

  4. (オプション) データ アプリのエンドポイントを優先 GitHub リポジトリとブランチに自動的にデプロイするには、 GitHub に接続 を有効にして、次の操作を行います。

    1. 「GitHub にインストール」をクリックし、画面の指示に従って、 TiDB Cloud Data Service をアプリケーションとしてターゲット リポジトリにインストールします。

    2. TiDB Cloudコンソールに戻り、 「承認」をクリックして、GitHub 上のアプリケーションへのアクセスを承認します。

    3. データ アプリの構成ファイルを保存するターゲット リポジトリ、ブランチ、ディレクトリを指定します。

    注記:

    • ディレクトリはスラッシュ( / )で始まる必要があります。例えば、 /mydata 。指定したディレクトリがターゲットリポジトリとブランチに存在しない場合は、自動的に作成されます。
    • リポジトリ、ブランチ、ディレクトリの組み合わせは、設定ファイルのパスを識別します。このパスはデータアプリ間で一意である必要があります。指定したパスが既に別のデータアプリで使用されている場合は、新しいパスを指定する必要があります。そうしないと、 TiDB Cloudコンソールで現在のデータアプリ用に設定されたエンドポイントによって、指定したパス内のファイルが上書きされます。
  5. 「データアプリを作成」をクリックします。3 データサービス詳細ページが表示されます。

  6. データアプリをGitHubに接続するように設定している場合は、指定したGitHubディレクトリを確認してくださいtidb-cloud-data-serviceまでにデータアプリの構成ファイルディレクトリにコミットされていることがわかります。これは、データアプリがGitHubに正常に接続されていることを意味します。

    新しいデータアプリでは、自動同期とデプロイ、およびドラフトのレビューがデフォルトで有効になっているため、 TiDB Cloudコンソールと GitHub 間でデータアプリの変更を簡単に同期し、デプロイ前に変更を確認できます。GitHub との統合の詳細については、 データアプリの変更を GitHub で自動的にデプロイご覧ください。

ステップ2. エンドポイントを開発する

エンドポイントは、SQL ステートメントを実行するためにカスタマイズできる Web API です。

新しいエンドポイントを作成するには、新しく作成されたデータ アプリを見つけて、アプリ名の右側にある[+**エンドポイントの作成]**をクリックします。

プロパティを構成する

右側のペインで、 [プロパティ]タブをクリックし、エンドポイントの次のようなプロパティを設定します。

  • パス: ユーザーがエンドポイントにアクセスするために使用するパス。リクエストメソッドとパスの組み合わせは、データアプリ内で一意である必要があります。

  • エンドポイントURL : (読み取り専用) URLは、対応するクラスタが配置されているリージョン、データアプリのサービスURL、およびエンドポイントのパスに基づいて自動的に生成されます。たとえば、エンドポイントのパスが/my_endpoint/get_idの場合、エンドポイントURLはhttps://<region>.data.tidbcloud.com/api/v1beta/app/<App ID>/endpoint/my_endpoint/get_idなります。

  • リクエストメソッド:エンドポイントのHTTPメソッド。2 GETデータの取得、 POSTデータの作成または挿入、 PUTデータの更新または変更、 DELETEデータの削除に使用できます。

エンドポイント プロパティの詳細については、 プロパティを構成する参照してください。

SQL文を書く

データ サービスページの中央のペインにある SQL エディターで、エンドポイントの SQL ステートメントをカスタマイズできます。

  1. クラスターを選択します。

    注記:

    ドロップダウンリストには、データアプリにリンクされているクラスターのみが表示されます。リンクされたクラスターを管理するには、 リンクされたクラスターを管理する参照してください。

    SQLエディタの上部にあるドロップダウンリストから、SQL文を実行するクラスターを選択します。すると、右側のペインの「スキーマ」タブに、このクラスターのすべてのデータベースが表示されます。

  2. SQL ステートメントを記述します。

    データのクエリや変更を行う前に、まずSQL文でデータベースを指定する必要があります。例えば、 USE database_name;ように指定します。

    SQLエディタでは、テーブル結合クエリ、複雑なクエリ、集計関数などのステートメントを記述できます。また、 --に続けて指示を入力するだけで、AIがSQL文を自動生成することもできます。

    注記:

    TiDB CloudのAI機能を試すには、PingCAPとAmazon Bedrockが研究とサービス改善のためにコードスニペットを使用することを許可する必要があります。詳細については、 AI による SQL クエリ生成を有効または無効にするご覧ください。

    パラメータを定義するには、SQL文に${ID}ような変数プレースホルダとして挿入します。例えば、 SELECT * FROM table_name WHERE id = ${ID}ように入力します。その後、右側のペインにある「Params」タブをクリックして、パラメータ定義を変更し、値をテストします。

    注記:

    • パラメータ名では大文字と小文字が区別されます。
    • パラメータはテーブル名または列名として使用できません。
    • 定義セクションでは、クライアントがエンドポイントを呼び出すときにパラメーターが必須かどうか、パラメーターのデータ型、および既定値を指定できます。
    • 「テスト値」セクションでは、パラメータのテスト値を設定できます。テスト値は、SQL文の実行時やエンドポイントのテスト時に使用されます。テスト値を設定しない場合は、デフォルト値が使用されます。
    • 詳細についてはパラメータを設定する参照してください。
  3. SQL ステートメントを実行します。

    SQL文にパラメータを挿入した場合は、右側のペインの「パラメータ」タブでパラメータのテスト値またはデフォルト値が設定されていることを確認してください。設定されていない場合はエラーが返されます。

    • macOS
    • Windows/Linux

    macOSの場合:

    • エディターにステートメントが1つしかない場合は、それを実行するには⌘ + Enterを押すか、 走る

    • エディターに複数のステートメントがある場合、そのうちの 1 つまたは複数のステートメントを順番に実行するには、対象のステートメントにカーソルを置くか、カーソルで対象のステートメントの行を選択して、 ⌘ + Enter キーを押すか、 [実行]をクリックします。

    • エディター内のすべてのステートメントを順番に実行するには、 ⇧ + ⌘ + Enter を押すか、カーソルですべてのステートメントの行を選択して「実行」をクリックします。

    Windows または Linux の場合:

    • エディターにステートメントが1つしかない場合は、それを実行するにはCtrl + Enterを押すか、 走る

    • エディターに複数のステートメントがある場合、そのうちの 1 つまたは複数のステートメントを順番に実行するには、対象のステートメントにカーソルを置くか、カーソルで対象のステートメントの行を選択して、 Ctrl + Enter キーを押すか、 [実行]をクリックします。

    • エディター内のすべてのステートメントを順番に実行するには、 Shift + Ctrl + Enterを押すか、カーソルですべてのステートメントの行を選択して[実行]をクリックします。

    ステートメントを実行すると、ページの下部にある[結果]タブにクエリ結果がすぐに表示されます。

ステップ3. エンドポイントをテストする(オプション)

エンドポイントを構成した後、デプロイする前にエンドポイントをテストして、期待どおりに動作するかどうかを確認できます。

エンドポイントをテストするには、右上隅の[テスト]をクリックするか、 F5 キーを押します。

その後、ページ下部の「HTTPレスポンス」タブでレスポンスを確認できます。レスポンスの詳細については、 エンドポイントの応答参照してください。

ステップ4.エンドポイントをデプロイ

エンドポイントを展開するには、次の手順を実行します。

  1. エンドポイントの詳細ページで、右上隅の[デプロイ]クリックします。

  2. 「デプロイ」をクリックしてデプロイを確認します。エンドポイントが正常にデプロイされると、「エンドポイントがデプロイされました」というメッセージが表示されます。

    デプロイメント履歴を表示するには、左側のペインでデータ アプリの名前をクリックし、右側のペインで [**デプロイメント]**タブをクリックします。

ステップ5.エンドポイントを呼び出す

HTTPSリクエストを送信することでエンドポイントを呼び出すことができます。エンドポイントを呼び出す前に、まずデータアプリのAPIキーを取得する必要があります。

1. APIキーを作成する

  1. データサービスページの左側のペインで、データ アプリの名前をクリックして詳細を表示します。

  2. 認証領域で、 「API キーの作成」をクリックします。

  3. 「API キーの作成」ダイアログ ボックスで、次の操作を行います。

    1. (オプション) API キーの説明を入力します。

    2. API キーのロールを選択します。

      このロールは、APIキーがデータアプリにリンクされたクラスタへのデータの読み取りまたは書き込みを実行できるかどうかを制御するために使用します。1またはReadOnly ReadAndWriteロールを選択できます。

      • ReadOnly : API キーはSELECTSHOWUSEDESCEXPLAINステートメントなどのデータの読み取りのみを許可します。
      • ReadAndWrite : APIキーによるデータの読み取りと書き込みを許可します。このAPIキーを使用して、DML文やDDL文など、すべてのSQL文を実行できます。
    3. (オプション) API キーに必要なレート制限を設定します。

  4. 「次へ」をクリックします。公開鍵と秘密鍵が表示されます。

    秘密鍵をコピーして安全な場所に保存してください。このページを離れると、完全な秘密鍵を再度取得できなくなります。

  5. 「完了」をクリックします。

API キーの詳細については、 データサービスのAPIキー参照してください。

2. コード例を取得する

TiDB Cloudは、エンドポイントの呼び出しに役立つコードサンプルを生成します。コードサンプルを取得するには、以下の手順を実行してください。

  1. データサービスページの左側のペインでエンドポイント名をクリックし、右上隅の「...」 > 「コード例」をクリックします。 「コード例」ダイアログボックスが表示されます。

  2. ダイアログ ボックスで、エンドポイントを呼び出すために使用するクラスターとデータベースを選択し、コード例をコピーします。

    curl コードの例は次のとおりです。

    • Test Environment
    • Online Environment

    エンドポイントのドラフト バージョンを呼び出すには、 endpoint-type: draftヘッダーを追加する必要があります。

    curl --digest --user '<Public Key>:<Private Key>' \ --request GET 'https://<region>.data.tidbcloud.com/api/v1beta/app/<App ID>/endpoint/<Endpoint Path>' \ --header 'endpoint-type: draft'

    オンライン環境でコード例を確認する前に、まずエンドポイントをデプロイする必要があります。

    エンドポイントの現在のオンライン バージョンを呼び出すには、次のコマンドを使用します。

    curl --digest --user '<Public Key>:<Private Key>' \ --request GET 'https://<region>.data.tidbcloud.com/api/v1beta/app/<App ID>/endpoint/<Endpoint Path>'

    注記:

    • リージョンドメイン<region>.data.tidbcloud.comを要求すると、TiDB クラスターが配置されているリージョンのエンドポイントに直接アクセスできます。
    • あるいは、リージョンを指定せずにグローバルドメインdata.tidbcloud.comリクエストすることもできます。この場合、 TiDB Cloud は内部的にリクエストをターゲットリージョンにリダイレクトしますが、レイテンシーが増加する可能性があります。この方法を選択する場合は、エンドポイントを呼び出す際に curl コマンドに--location-trustedオプションを追加してください。

3. コード例を使用する

コード例をアプリケーションに貼り付けて実行すると、エンドポイントのレスポンスを取得できます。

  • プレースホルダー<Public Key><Private Key> API キーに置き換える必要があります。
  • エンドポイントにパラメータが含まれている場合は、エンドポイントを呼び出すときにパラメータ値を指定します。

エンドポイントを呼び出すと、JSON形式でレスポンスが表示されます。以下に例を示します。

{ "type": "sql_endpoint", "data": { "columns": [ { "col": "id", "data_type": "BIGINT", "nullable": false }, { "col": "type", "data_type": "VARCHAR", "nullable": false } ], "rows": [ { "id": "20008295419", "type": "CreateEvent" } ], "result": { "code": 200, "message": "Query OK!", "start_ms": 1678965476709, "end_ms": 1678965476839, "latency": "130ms", "row_count": 1, "row_affect": 0, "limit": 50 } } }

回答の詳細については、 エンドポイントの応答参照してください。

もっと詳しく知る

このページは役に立ちましたか?