🐟

TiDB Cloudを動かしながら学ぶ、アカウント作成〜DB基本操作まで

2024/02/18に公開

はじめに

この記事は、全くさわったことのないフレッシュな状態で動かしながら感想を記事にしていきます。
手順を載せていきますので、一緒に入門することができます。こうゆうものは「動かして覚える」ということが重要です。
さっそくいきましょう。

TiDBとは? TiDB Cloudとは?

MySQL互換の分散型データベースです。OSSとしても使えますが、クラウドでフルマネージドサービスとして使えるようにPingCAP社様が提供してくださっています。AWSを利用している方はマーケットプレイスで統合することができ、TiDB Cloud自体もAWS上でホスティングされているためVPC間通信の速度でご自身のAWSサービスと連携ができます。
列志向と行志向のハイブリッドになっています。AWSで例えるとDynamoDB+RDS+RedShiftと言った全部盛り(のようなイメージ)。速度重視のシーンと集計シーンでDBを切り替えているアーキテクチャを採用している場合、まとめることができます。いろいろなことができる内部構造の都合上、DynamoDBのように1msec台のレスポンスは難しいようですが、10msec台で返却することは出来ると言われています。DynamoDBやCassandraの代わりを検討する場合は若干落ちる速度を許容できそうか検討が必要でしょう。
Serverlessを選択するとバージョンアップの複雑なサイクルから開放されます。Aurora Serverlessと似ていると私は最初思いましたが、動いていないときは課金が完全に停止することは大きな優位性です。Aurora Serverlessは常にインスタンスが起動状態で課金され続けていくため小さなワークロードでは高額になってしまうケースも存在します。これはよい代替手段になるのではと考えています。

その他メリットデメリットありますので、ビジネスで利用する場合は詳しく公式サイトのドキュメントを読みましょう。

アカウント作成(30秒)

https://tidbcloud.com/ にアクセスしましょう。必要なシーンがくるまでクレジットカード登録不要である程度まで無料でお試しできる状態で開始できることにとても魅力を感じます。クレジット登録が障壁になりお試しから離脱することが多い私にとっては朗報でした。GoogleアカウントでAuth0認証し簡単に作成完了です。

はじめからサンプルの1つクラスターが存在していました。5クラスターまで無料となっています。

余談ですが、、、Time ZoneだけUpdate

今回は、体験だけだったので変更は基本しないで進もうと思います。TimeZoneだけ気になったで日本時間にしてみました。

クラスターの作成(30秒)

サンプルはあるものの、せっかくなので自分でクラスターを作ってみようと思います。ServerlessはAWS限定のようですね。東京リージョンが存在しているので日本でビジネスをしている人にとっては嬉しいです。無償枠が記載されていますね。5GiBまでのストレージ容量50M Request Units/月が無料とのこと。これってどのくらいだろう?とはなりますが、「結構遊べるってことだろう、仕事で使うときに勉強すればよいか」とスルーしていきます。気になる方はRUについての計算式を確認しましょう。

さて、クラスターができました。変更したのは名前の部分だけでした。簡単ですね。

余談ですが、、、Dedicatedでもクラスターは作れます

クラスターの作り方はServerless以外にもDedicatedが存在します。Serverlessは「みんなで仲良くつかおう」に対して、Dedicatedは「専有で使おう」になります。AWS以外でGCPが選択できるNode、CPU、RAMのチューニングができるというのが魅力ですね。料金は少しお高くなります。データは完全に利用者しか見えなくなりPingCAP様でも一切見えなくなるので個人情報など機密情報を扱う要件が強くある方などは選択肢として良いかと思います。

Create DB,Table...etc(1-2分)

DBつくってTableつくって、Insertして、SelectしてはDBにおけるHello Worldですよね、きっと。細かいことは置いておいてやっていきましょう。Chat2Queryを開いて、実行していきましょう。

CREATE DATABASE sample;

CREATE TABLE sample.users (
    uuid VARCHAR(36) DEFAULT (UUID()) PRIMARY KEY,
    name VARCHAR(30) NOT NULL
);

INSERT INTO sample.users (name) VALUES ('Alice'),('Bob'),('Carol'),('Dave'),('Ellen');

SELECT * FROM sample.users;

画面左側にDBとTable、カラムのリスト。SQL実行したら下部に実行結果が見えています。何も考えず普通に使えるUIとなっていました。RUNボタンの隣にExplainがついています。実行計画は開発に必須ですのでわかりやすい場所に配置されていますね。

余談ですが、、、もちろんお気に入りのSQLツール使えるみたい

MySQL互換ですのでDBeaverとかでも操作できるようになっているとのこと。今後要チェックしてみようと思います。公式で使い方をしっかりカバーしてくれています。
https://docs.pingcap.com/ja/tidb/stable/dev-guide-gui-dbeaver

実行した結果を

OverViewでみてみました。ちょっとしか動かしていないですが、グラフでRUの情報などが表示されていますね。安心して使えると思います。オブザーバビリティ情報はNewRelicなど対応しているベンダー様もいらっしゃるので集約することもできます。

MonitalingのDiagnosisではもっと細かく見えますね。実行時間など簡単にみえるのは素晴らしいと思いました。

MetricsではクラスターとDBの情報がみえました。見えるメトリクス情報は少なめでしょうか。サーバレスだからということかもしれませんが、たくさんの種類のメトリクスと格闘されていた皆様だとシンプルにみえるかもしれません。

Eventsも見えます。分けて見れるのは良いですね。

さいごに

さわってみて、素早く使い始められる、英語であることを忘れていた位にシンプルかつ直感的なUIであることも好印象でした。簡単さというと、モニタリングの確認など寄り道しながらでも5-10分位でここまでたどり着けるといったレベルです。
気になった方は、ドキュメントなど調べる前にまず動かしちゃいましょう。

Discussion