
TiDBは、トランザクション処理と分析処理の両方のワークロードを処理するために構築された、強力なオープンソースの分散SQLデータベースです。MySQLとの互換性、水平スケーラビリティ、リアルタイムHTAP (Hybrid Transactional and Analytical Processing) 機能を備えており、最新のクラウドネイティブなアーキテクチャ向けに設計されています。この分散SQLチュートリアルでは、開発とテスト用のローカルTiDBクラスタのセットアップを簡単な手順で説明します。
完全に管理された環境を無料で利用したい場合は、TiDB Cloud Serverlessもご覧いただけます。
環境のセットアップ
このチュートリアルでは、macOSを使用した例を示します。Linuxでも、わずかな変更で同様に動作します。
TiUPのインストール
TiUPはTiDBのパッケージマネージャーです。以下のコマンドでインストールできます:
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
次のような出力が表示されます:
...
Successfully set mirror to https://tiup-mirrors.pingcap.com
Detected shell: zsh
Shell profile: ~/.zshrc
~/.zshrc has been modified to add tiup to PATH
open a new terminal or source ~/.zshrc to use it
Installed path: ~/.tiup/bin/tiup
===============================================
Have a try: tiup playground
===============================================
スクリプトは自動的にPATHを変更します。変更を適用するには、インストール時の出力に表示されるsource
コマンドを実行するか、新しいターミナルを開いてください。この例では、次のコマンドを実行します:
source ~/.zshrc
データベース・プレイグラウンドを始めよう
次のコマンドでローカルのTiUP Playground環境を起動します:
tiup playground
Playgroundが起動すると、次のような表示がされます:
...
TiDB Playground Cluster is started, enjoy!
Connect TiDB: mysql --host 127.0.0.1 --port 4000 -u root
TiDB Dashboard: http://127.0.0.1:2379/dashboard
Grafana: http://127.0.0.1:3000
このターミナルは開いたままにして、次の手順は新しいターミナルで進めてください。
TiDBに接続して最初のクエリを実行する
データベースサーバーに接続し、TiUPの組み込みクライアントを使用して最初のクエリを実行しましょう。このクライアントはTiUP Playground環境専用ですが、始めるための最も速い方法です。TiDB Playgroundの出力には、標準のMySQLクライアントを使用して接続する方法も示されていますが、こちらは後で説明します。
組み込みクライアントを以下のコマンドで実行します:
tiup client
エンドポイントの選択を求められたら、単にEnterキーを押して接続してください。
引数なしでtiup playground
を開始したので、利用できるエンドポイントは1つだけです。
次のようなプロンプトが表示されます:
...
Starting component client: ~/.tiup/components/client/v1.16.1/tiup-client
Connected with driver mysql (8.0.11-TiDB-v8.4.0)
Type "help" for help.
my:root@127.0.0.1:4000=>
次に、以下のサンプルSQLコマンドを試してみてください:
CREATE DATABASE hello;
USE hello;
CREATE TABLE hello_tidb (
id INT,
name VARCHAR(50)
);
INSERT INTO hello_tidb VALUES (1, 'Hello World');
SELECT * FROM hello_tidb;
上記のSQLコマンドは、TiDBデータベースとの基本的なやり取りを示しています。まず、新しいデータベースhello
とテーブルhello_tidb
が作成されます。次に、id = 1
およびname = 'Hello World'
の行が挿入されます。SELECT * FROM hello_tidb
コマンドはテーブル内のすべての行を取得して表示し、次のような出力が得られます:
id | name
----+-------------
1 | Hello World
(1 row)
これにより、データが正常に挿入され、データベースから検索されたことが確認できます。TiUPクライアントを終了するには、\q
またはexit
と入力してEnter
キーを押してください。これによりインタラクティブセッションが終了し、ターミナルに戻ります。
何が起こったのかを理解する
あなたは、以下の要素を持つ完全に機能する分散データベースクラスタの使用を開始しました:
- TiDB Server:クエリを処理し、MySQLプロトコルを理解するSQLレイヤー
- TiKV:データを自動的にレプリケートし、ノード間でトランザクションを処理する分散ストレージレイヤー
- PD (Placement Driver):TiDB、TiKV、TiFlashのコンポーネントを調整し、クラスタのメタデータを管理し、データが最適に分散されるように裏で動作するクラスタオーケストレーター
さらに、tiup playground
はオプションのコンポーネントもインストールしました:
- TiFlash:リアルタイム分析エンジンで、アプリケーションのパフォーマンスを落とすことなく、複雑なクエリやレポートを高速化します
- 組み込まれているモニタリングスタック:
- TiDB Dashboard (デフォルト:http://127.0.0.1:2379/dashboard, ユーザー:root, パスワードなし)
- Grafana + Prometheus (デフォルト:http://127.0.0.1:3000, ユーザー:admin, パスワード:admin)
実行中のデータベースクラスタコンポーネントは、以下のコマンドで確認できます:
tiup playground display
上記のコマンドは、ローカルのクラスタノードを表示し、実行中のプロセス、ノードの役割、およびプロセスの稼働時間を確認することができます:
Pid Role Uptime
--- ---- ------
56624 pd 2m33.91622925s
56625 tikv 2m33.755937666s
56626 tidb 2m33.73377625s
56646 tiflash 2m25.408932208s
先ほど開始したPlayground環境は、tiup playground
を実行したターミナルに戻り、Ctrl+C
を押すことで簡単にクリーンアップできます。
おめでとうございます!これで、手元で完全に機能する分散データベース環境を手に入れたことになります。ここで少し休憩して、基本的な操作を自分で試してみるのも良いでしょう。ただし、さらに深く学びたい場合は、このガイドを続けていきましょう。TiUP Playground
の詳細や、サンプルアプリケーションやワークロードの作成、分散データベース全体でのワークロードのバランシングシミュレーション、クラスタのスケーリング、そしてTiFlashを活用してクエリを高速にする方法について学んでいきます。
開発ワークフローの強化
前の手順では、一時的な環境が提供されました。これは初めての試みには最適ですが、playgroundを停止するとすべてが失われてしまいます。次に、開発やテストにより適した環境を設定しましょう。
MySQLクライアントを使ってTiDBに接続する
TiDBはMySQLと互換性があるため、MySQLの豊富なツールやコネクタのエコシステムを活用することもできます。tiup client
はplayground環境に限定されるのに対し、MySQL標準クライアントはすべてのTiDBデプロイメントオプションやより高度な使用方法に推奨されます。これからそれを設定し、このガイドの残りの部分で使用します。
もしすでにMySQLがインストールされている場合は、次のコマンドで確認できます:
mysql --version
もしMySQLがインストールされていない場合や、特定のバージョンのクライアントのみが必要な場合は、次のコマンドでmacOSにMySQL Client 8.4をインストールできます:
brew install mysql-client@8.4
注意:macOSでHomebrewを使ってMySQLクライアントをインストールする際、バージョン8.4を推奨します。これは、新しいバージョンではmysql_native_password
プラグインが正しく読み込めない既知の問題 (執筆時点では未解決) があるためです。
インストール後、以下のような出力が表示されるはずです:
...
mysql-client@8.4 is keg-only, which means it was not symlinked into /opt/homebrew, because this formula is mainly used by MySQL server.
If you need to have mysql-client@8.4 first in your PATH, run:
echo 'export PATH="/opt/homebrew/opt/mysql-client@8.4/bin:$PATH"' >> ~/.zshrc
mysql-client
をグローバルに利用できるようにするため、上記の手順に従ってPATHを更新し、rcファイルを再読み込みしてください。
echo 'export PATH="/opt/homebrew/opt/mysql-client/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
クライアントが利用可能になったら、playgroundクラスタが実行中であることを確認してください (もし停止していた場合は、再度tiup playground
で起動してください)。その後、次のコマンドでTiDBに接続します:
mysql --host 127.0.0.1 --port 4000 -u root
次のようなプロンプトが表示されます:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3126853646
Server version: 8.0.11-TiDB-v8.4.0 TiDB Server (Apache License 2.0) Community Edition, MySQL 8.0 compatible
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
これにより、MySQLクライアントがTiDBクラスタと正常にやり取りしており、以前に挿入されたデータが正しく取得されていることが確認できます。MySQLクライアントを終了するには、\q
またはexit
と入力してEnter
キーを押してください。
永続的でカスタマイズされた環境
TiUPを使用すると、再起動してもデータを保持するタグ付きのplaygroundを作成できます。また、playgroundのオプションを使用して、異なるTiDBバージョンや、開発・テストの目標により適したコンポーネントを指定することも可能です。
もしplaygroundクラスタがまだ実行中であれば、まず、クラスタを開始したターミナルでCtrl+C
を押して停止し、すべてのプロセスが停止するのを待ってください。これで、例えば、2つのTiDBサーバー、3つのTiKV、1つのPD、TiFlashなしのタグ付きローカル環境を作成できます:
tiup playground --tag sample-app-env --db 2 --kv 3 --pd 1 --tiflash 0
--tag
フラグは、playground環境が再起動した後もデータを保持し、異なるタグ (例:sample-app-env、dev-env
) を使用して複数の環境を実行できるようにします。
すべてのplayground環境を表示するには、次のコマンドを実行します:
tiup status
次のような出力が表示されます:
Name Component PID Status ... Args
sample-app-env playground 30661 RUNNING ... tiup-playground --tag sample-app-env --db 2 --kv 3 --pd 1 --tiflash 0
タグ付きのplaygroundクラスタを、開始したターミナルでCtrl+Cを押して停止した場合、データを失うことなく再起動できます。環境を再起動するには、上記のtiup status
出力に表示されているArgs
と同じ引数でtiup playground
を実行するだけです。
タグを使うことで、クリーンアッププロセスがより明示的になります。例えば、まず、playgroundクラスタを開始したターミナルでCtrl+C
を押して停止し、TiUPがすべてのプロセスを正常に停止するまで数秒待ってから、次のコマンドを実行します:
tiup clean sample-app-env
次のコマンドで、すべてのTiUP playgroundオプションを確認できます:
tiup playground --help
一般的なオプション:
--*.host
:特定のネットワークインターフェースにバインドします。--*.port
:デフォルトのポートを変更します。--without-monitor
:モニタリングスタックなしで起動します。
既存の環境を変更してカスタマイズすることもできます。つまり、データを失うことなく、モニタリング、TiFlash、TiProxyなどのクラスタコンポーネントを追加したり削除したりする柔軟性があります。
ロードバランサーを追加する
サンプルアプリケーションで分散SQLを実演する前に、TiProxyを追加して、クエリがどのようにTiDBサーバーに分散されるかを可視化してみましょう。TiProxyはアプリケーションのデータベース接続のバランスを自動的にとり、分散クエリ処理の動作を確認しやすくしてくれます。
もしplaygroundクラスタがまだ実行中であれば、まず、クラスタを開始したターミナルでCtrl+C
を押して停止し、すべてのプロセスが停止するのを待ってください。その後、TiProxyインスタンスを新しいまたは既存のsample-app-env
に追加するには、次のコマンドで環境を開始します:
tiup playground --tag sample-app-env --db 2 --kv 3 --pd 1 --tiflash 0 --tiproxy 1
クラスタが正常に起動して、次のような出力が表示されるはずです:
...
TiDB Playground Cluster is started, enjoy!
Connect TiDB: mysql --comments --host 127.0.0.1 --port 4001 -u root
Connect TiDB: mysql --comments --host 127.0.0.1 --port 4000 -u root
Connect TiProxy: mysql --comments --host 127.0.0.1 --port 6000 -u root
TiDB Dashboard: http://127.0.0.1:2379/dashboard
Grafana: http://127.0.0.1:62007
注意:tiup playground
の起動に通常より時間がかかる場合やエラーが表示される場合は、tiup status
で実行中のインスタンスを確認し、必要に応じて停止してください。
これで、TiProxy (ポート6000) を通じて接続できるようになります:
mysql --host 127.0.0.1 --port 6000 -u root
TiProxyインスタンスを環境に追加することで、新しいレイヤーでTiDBを強化することができます。TiProxyはアプリケーションとTiDBサーバーの間に位置し、データベース接続をインテリジェントに分散し、トラフィックを管理することで、スケーラビリティを向上させ、接続のオーバーヘッドを削減します。次のセクションでは、サンプルワークロードをシミュレートし、SQLクエリがTiDBサーバーノードに自動的に分散される様子を確認します。
スケーラブルなサンプルアプリケーションを構築する
世界中の気象観測所からデータを収集するシンプルな気象監視システムを作成しましょう。先ほどTiProxyとMySQLクライアントを使って作成した環境を使用して、TiDBに接続し、以下のSQLステートメントを実行します:
-- Create the schema/database for the weather monitoring app
CREATE DATABASE sample_weather;
USE sample_weather;
CREATE TABLE stations (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
location VARCHAR(100),
latitude DECIMAL(8,6),
longitude DECIMAL(9,6)
);
CREATE TABLE readings (
station_id INT,
temperature DECIMAL(4,1), -- in Celsius
humidity INT, -- percentage
pressure INT, -- in hPa
recorded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_station_time(station_id, recorded_at)
);
Query OK
の応答が表示されます。サンプルデータを挿入してください:
-- Insert some weather stations from different cities
INSERT INTO stations (name, location, latitude, longitude) VALUES
('Sydney Harbor', 'Sydney, Australia', -33.8688, 151.2093),
('Shibuya Weather', 'Tokyo, Japan', 35.6595, 139.7006),
('Beijing Station', 'Beijing, China', 39.9040, 116.4275),
('Singapore Central', 'Singapore', 1.3521, 103.8198),
('Mumbai Central', 'Mumbai, India', 18.9710, 72.8194),
('Cairo Station', 'Cairo, Egypt', 30.0629, 31.2474),
('Berlin Central', 'Berlin, Germany', 52.5251, 13.3694),
('London City', 'London, UK', 51.5074, -0.1278),
('Sao Paulo Central', 'Sao Paulo, Brazil', -23.5505, -46.6333),
('Central Park', 'New York, USA', 40.7829, -73.9654);
「Query OK, 10 rows affected」 というレスポンスで、データの挿入が成功したことを確認できます。これで、次のセクションでサンプルワークロードを生成する準備が整いました。
サンプルワークロードを生成する
新しいターミナルウィンドウを2つ開き、以下のシェルコマンドを実行して、TiProxyを通じて書き込みおよび読み込みワークロードを生成します。
ターミナル1:書き込みワークロード
新しいターミナルでこのコマンドを実行し、気象データを継続的に挿入します:
while true; do
mysql -h 127.0.0.1 -P 6000 -u root -D sample_weather -vv -e "INSERT INTO readings
(station_id, temperature, humidity, pressure) SELECT id as station_id, ROUND(10 + (RAND() *
30), 1), ROUND(40 + (RAND() * 60)), ROUND(980 + (RAND() * 40)) FROM stations;"
sleep 0.5
done
このコマンドは、すべてのステーションからのシミュレートされた読み取りデータを0.5秒ごとに継続的に挿入します。挿入が成功すると、「Query OK, 10 rows affected」 のような出力が表示され、すべての10ステーションの読み取りデータが記録されていることが確認できます。
ターミナル2:読み込みワークロード
もう一つの新しいターミナルでこのコマンドを実行し、データを継続的にクエリします:
while true; do
mysql -h 127.0.0.1 -P 6000 -u root -D sample_weather -e "SELECT s.name, s.location,
r.temperature, r.humidity, r.recorded_at FROM stations s JOIN readings r ON s.id = r.station_id
WHERE r.recorded_at >= NOW() - INTERVAL 5 MINUTE ORDER BY r.recorded_at DESC LIMIT 5;"
sleep 1
mysql -h 127.0.0.1 -P 6000 -u root -D sample_weather -e "SELECT s.name,
ROUND(AVG(r.temperature), 1) as avg_temp, ROUND(AVG(r.humidity)) as avg_humidity,
COUNT(*) as num_readings FROM stations s JOIN readings r ON s.id = r.station_id WHERE
r.recorded_at >= NOW() - INTERVAL 1 HOUR GROUP BY s.id, s.name ORDER BY avg_temp DESC;"
sleep 3
done
このコマンドは、最新の読み取りデータと1時間ごとの統計を交互に表示します。すべてのステーションからの最新の温度、湿度、実行中の平均値などが更新されたテーブルとして表示されます。
次のセクションでモニタリングとスケーリングについて探る際、両方のターミナルを実行し続けてください。
アプリケーションをモニタリングする
現在、アクティブな読み取りおよび書き込みワークロードが動作しているアプリケーションがあるので、TiDBの組み込みモニタリングツールを使って、何が起こっているのかを理解していきましょう。
TiDBダッシュボード:SQLインサイト
TiDBダッシュボードにアクセスするには、TiUP playgroundを実行しているターミナルでそのURL (通常は http://127.0.0.1:2379/dashboard – ユーザー:root、パスワードなし) を確認します。そして、次の操作を行います:
- 実行中のクエリを表示します:
- 「SQL Statements」 に移動して、気象データのクエリを確認します。
- 実行時間やその他のオプションのカラムを確認し、ステートメントをクリックして実行の詳細を表示します。
- 「Slow Queries」 に移動して、最適化が必要なクエリを特定します。
- インスタンスの状態をモニタリングします:
- 「Overview」 および 「Cluster Info」 で全体的なトポロジーとリソース使用状況を確認します。
- 「Monitoring」 でデータベースの負荷やその他の関連メトリクスを確認します。
- 「Search Logs」 でクエリエラーを確認します。
TiDBダッシュボードの概要 |
Grafana:システムパフォーマンス
TiUP playgroundが実行されているターミナルでそのURLを確認してGrafanaにアクセスします。ポートは再起動ごとに変わる場合があるので (例:Grafana:http://127.0.0.1:<port>
のような表示を探します)。ユーザー名 「admin」、パスワード 「admin」 でログインし、パスワードを変更するか、または Skip をクリックします。
組み込みのダッシュボードは、検索アイコンをクリックして 「Test-Cluster」 フォルダを選択することで視覚化できます:
- 詳細なTiDBメトリクス:
- 「Overview」 を検索し、「Test-Cluster-Overview」 ダッシュボードを選択して、クラスタの全体的な健康状態を確認します。
- TiProxyの負荷分散:
- 「TiProxy」 を検索し、「Balance」 行を確認します。
ビルトインGrafanaダッシュボード |
ヒント:データ量やクエリパターンを変えながら実験している間、これらのモニタリングページを開いておくことで、アプリケーションが負荷の下でどのように動作するかを理解できます。
クラスタのスケーリング
気象監視システムが成長するにつれて、より多くのステーション、読み取りデータ、クエリを処理する必要があります。実行中のプロセスをリアルタイムで確認しながら、クラスタをスケールアップしていきましょう。
モニタリング・ビューの準備
スケーリングする前に、スケーリングプロセスを監視するために以下のモニタリングビューを設定します:
- TiDB Dashboardを開く:
- 「Cluster Info」、「Store Topology」 へ移動
- Grafanaを開く:
- 「TiKV-Summary」 ダッシュボードを見つける
- 「Cluster」 パネルを探す:
- ストレージ、使用可能な容量、および容量サイズのチャート
ストレージ容量の追加 (TiKV)
モニタリングが整ったら、2つのTiKVノードをオンラインで追加します (スケールアウト)。新しいターミナルを開き、次のコマンドを実行します:
tiup playground scale-out --kv 2
スケールアウトの監視:
- TiDB Dashboardで確認:「Cluster Info」 「Store Topology」 を開き、リフレッシュボタンをクリックします。トポロジーに新しいTiKVノードが表示されるはずです。
- Grafanaで確認:TiKVのサイズが増加しているのを監視します。
- アプリケーションのターミナルで確認:データの継続的な取り込みと読み取りが中断なく行われていることを確認します。
TiKV スケールアウト後のTiDB Cluster ストアトポロジー |
TiKVスケールアウト後のTiDB クラスタのサイズ増加 |
ストレージ容量の削除 (TiKV)
1つのTiKVノードを削除します。スケールイン操作では、削除したいノードのPIDを指定して実行します。まず、使用可能なターミナルで、TiKVノードのPIDを確認してください:
tiup playground display
次のような出力が表示されます:
Pid Role Uptime
...
73976 tikv 1m44.587040583s
73977 tikv 1m44.566830708s
...
TiKVノードのPIDを使用して任意のTiKVノードを1つ削除することで、クラスタをスケールインできます。たとえば、TiKVノードの1つを選択し、-pidの値をTiKVのPIDに置き換えて以下を実行します:
tiup playground scale-in --pid 73977
もう一度TiDB DashboardとGrafanaを確認すると、クラスタが小さくなっているのがわかります。
TiKVスケールイン後のTiDBクラスタのストアトポロジー |
TiKVスケールイン後のTiDBクラスタのサイズ縮小 |
クエリ処理のスケーリング (TiDB)
ストレージが拡張されたので、クエリの分散を監視しながらTiDBノードを追加します:
tiup playground scale-out --db 1
表示される出力は次のようになります:
tiup playground scale-out --db 1
...
To connect new added TiDB: mysql --comments --host 127.0.0.1 --port 64477 -u root -p (no password)
クエリレイヤーのスケーリングを監視する:
- TiDB Dashboard の「Cluster Info」 「Instances」 を開き、新しいTiDBインスタンスを確認します。
- Grafana で 「TiProxy-Summary」 を検索し、「Query Summary」 または 「Traffic」 を展開します。バックエンドに新しいインスタンス (この例ではポート64477) が表示され、その間でトラフィックがバランスされているのが確認できるはずです。
スケールアウト後のTiDBクラスタの分散クエリ処理 |
分析処理の追加 (TiFlash)
TiDBは、カラム型ストレージエンジンであるTiFlashを通じてリアルタイム分析をサポートしています。これを私たちのプレイグラウンドクラスタに追加しましょう。
TiFlashノードを追加します:
tiup playground scale-out --tiflash 1
テーブル readings
の天気データに対してTiFlashレプリカを有効にします。MySQLクライアントまたはTiUPクライアントを使用して、次のコマンドを実行してください:
USE sample_weather;
ALTER TABLE readings SET TIFLASH REPLICA 1;
レプリケーションの進行状況を確認します:
SELECT table_schema, table_name,
replica_count, available, progress
FROM information_schema.tiflash_replica;
レプリカが準備完了 (progress=1
) になると、分析クエリを実行できるようになり、TiFlashが有利な場合に自動的に使用されます。
+----------------+------------+---------------+-----------+----------+
| table_schema | table_name | replica_count | available | progress |
+----------------+------------+---------------+-----------+----------+
| sample_weather | readings | 1 | 1 | 1 |
+----------------+------------+---------------+-----------+----------+
1 row in set (0.00 sec)
TiDB DashboardのSQL Statementsセクションで 「#Plans」 列を確認してください。新しいプランが表示されている場合、その実行詳細を確認し、mpp[tiflash]
によって実行されたタスクがあるかどうかを確認できます。
TiFlashによって高速化されたクエリ実行プラン |
TiFlashはローカルなテスト環境であり並行性も低いため、パフォーマンスの違いはあまり感じられないかもしれません。しかし、実際のワークロードが存在する本番環境では、TiFlashは分析クエリのパフォーマンスを大幅に向上させ、リソースを大量に消費する処理をトランザクションワークロードから分離します。この分離により、運用アプリケーションに影響を与えることなくリアルタイムの分析が可能となります。
本番に近い環境でテストを行いたい場合は、TiUPを使用してTiDBクラスタをデプロイする方法またはKubernetes上にTiDBクラスタをデプロイする方法を参照してください。
クリーンアップ (オプション)
実験後に環境をクリーンアップしたい場合は、次の手順を実行します:
- 実行中のワークロードを停止する (ターミナル1と2で
Ctrl+C
) - プレイグラウンドクラスタを停止する (プレイグラウンドターミナルで
Ctrl+C
) - 環境をクリーンアップする:
tiup clean sample-app-env
すべての環境とコンポーネントをクリーンアップしたい場合は、次のコマンドを実行してください:
tiup clean --all
結論
この分散SQLチュートリアルでは、ローカルマシン上に完全に機能するTiDB分散データベース環境をセットアップして実行する方法を学びました。TiUP Playgroundを使用して、以下のことを行いました:
- TiDBのコアアーキテクチャコンポーネント (SQL処理用のTiDBサーバー、分散ストレージ用のTiKV、クラスタ調整用のPD)についてハンズオンを行いました。
- ローカルクラスタの管理と制御に必要な基本的なTiUPコマンドを習得しました。
- 開発環境をセットアップしました。
- サンプルの天気監視アプリケーションを作成しました。
- モニタリング機能とリアルタイムスケーリングを確認しました。
- TiDBとTiKVノードの追加や削除、TiProxyによるロードバランシングによるクラスタのスケール方法を習得しました。
- TiFlashを使用した分析処理を追加しました。
これで、トランザクションと分析ワークロードの両方に対するTiDBの機能を探索するための基礎ができました。
次のステップ
学習の旅を続けましょう!開発、運用、データ分析に興味がある場合は、追加の分散SQLチュートリアル、ガイド、インサイトなど、包括的なリソースをチェックしてください。
サポートが必要ですか?
- TiDB AI (tidb.ai) – TiDBに関するあらゆるトピックについて、ドキュメントやコミュニティリソースから引用されたソースを用いて、瞬時に正確な回答を得ることができます。
開発者向けリソース
- TiDB Cloud Serverless – 無料アカウントを作成し、AI機能を試しましょう
- Developer Guide – 人気のある言語、フレームワーク、ツールによるガイド
- TiDB Education Developer Courses – 無料のセルフペースコース
運用向けリソース
- TiUPを使ってTiDBクラスタをデプロイ
- Kubernetes上にTiDBクラスタをデプロイ
- MySQL互換データベースからTiDBへの移行
- ファイルからデータをインポート
- TiCDCを使ったデータストリーミングと変更データキャプチャ
- TiDB Education 運用コース – 運用の詳細を学び、認定を取得
データ分析向けリソース
コミュニティリソース
TiDB Cloud Dedicated
TiDB Cloudのエンタープライズ版。
専用VPC上に構築された専有DBaaSでAWSとGoogle Cloudで利用可能。
TiDB Cloud Serverless
TiDB Cloudのライト版。
TiDBの機能をフルマネージド環境で使用でき無料かつお客様の裁量で利用開始。