|+|[音楽]|+| このユニットでは、TiDBの全体像について話します。

|+|TiDBデータベースの主要コンポーネントであるTiDBは、3つのサーバークラスタから構成されています。

|+|お互いに通信し、データベースクラスタを形成するすべてのものです。

コンポーネントには |+| TiDB サーバークラスタ、TiKV サーバークラスタ、Placement Driver（またはPDクラスタ）が含まれます。

|+|すべての3つのサブクラスタは互いに切り離されています。

TiDBサーバーの数は、TiKVサーバーの数と同じでなくてもよく、またPDサーバーの数と同じでなくてもよいです。 |+|

|+|例えば、2つのTiDBサーバー、3つのPDサーバー、および6つのTiKVサーバーを持つことができます。

最初に話し合いたいサーバークラスタは、TiDBサーバークラスタです。 |+|

TiDBサーバークラスタ |+|

TiDBサーバークラスタはTiDBのコンポーネントであり、サブクラスタです。

|+| TiDB サブクラスタは SQL レイヤーを表し、MySQLプロトコルの接続エンドポイントを公開します。

|+|TiDBサーバーインスタンスは、データベースクライアントからの接続を受け入れる責任があるクラスタにありました。 |+|

TiDBサーバークラスタは状態を持たず、実際には複数のTiDBサーバーインスタンスを起動できます。 |+|

そして、LVS、HAProxy、またはF5 BIG-IPなどの負荷分散コンポーネントを介して統一されたDNS名が提供される可能性があります。 |+|

もし、あなたがパブリッククラウド上にいる場合、クラウドサービスプロバイダーが提供する Elastic Load Balancing サービスも機能します。 |+|

クライアントコネクションは、アプリケーションでの明示的な努力なしに、複数のTiDBサーバーインスタンスに均等に分散される可能性があります。 |+| |+|

TiDBサーバーは実際にはテーブルデータを保存せず、SQL文を解析して、 TiKVクラスタにデータ要求を転送します。 |+|

|+|二番目に議論したいサブクラスタは、PDまたは配置ドライバサーバークラスタです。

|+|TiDB全体のメタデータ管理モジュールであり、各TiKVノードのリアルタイムデータ|+|配信とTiDB全体のトポロジー設定を格納します。

|+|分散トランザクションのトランザクションIDを生成します。これはTSOまたはOracleの時刻スタンプに基づいています。 |+|

TSOは、分散データベースであっても、二つの変更が時間的に順序づけられた順序で発生することを保証するタイムスタンプです。 |+|

|+|PDはメタデータを保存するだけでなく、TiKVノードに報告されるデータ分布に基づいて特定のTiKVノードにデータスケジューリングコマンドを発行します。 |+|

PDは、|+|全体のクラスタの脳と見なされています。

クラスタがRaftアルゴリズムでバックアップされているため、PDは奇数のノードに配置する必要があります。 |+|

通常、少なくとも3つのノードを展開することが推奨されています。

|+|ほとんどのノードが稼働している限り、クラスタは読み書き操作に対してオープンであり続けます。

|+|最後のサブクラスタである TiKV クラスタは、テーブルデータの保存に責任を負っています。

|+|  外から見ると、TiKVは分散トランザクションキーバリューNoSQLデータベースです。

|+|TiKVもデータの整合性と災害回復を保証するために、Raftアルゴリズムを使用してレプリケーションを行います。

|+|TiKVノード間でのデータ配置の負荷分散は、クラスタの中枢であるPDによってスケジュールされています。 |+|

スライドに表示された手順に似た、単一の例を示すので、TiKVがデータを格納する方法を基本的に理解できるようにします。|+|これが元の英語の文章に含まれている場合、それらを翻訳された結果に戻す必要があります。

|+| TiUPコマンドラインツールを使って、ローカルマシンでPlaygroundサンドボックスを起動するつもりです。

|+|TiDBが稼働したら、RAW KV APIを使用して単純なput/get操作を行い、TiKVがキーバリュー型のストアであることを示します。 |+|

スクリプト自体は非常に直感的であり、「TiUP」を呼び出して、「classroom」という名前のタグ付きでTiDBシステム全体を展開します。 |+|

展開したのは、TiDBインスタンス3つ、PDインスタンス3つ、TiKVインスタンス3つとTiFlashインスタンス1つです。 |+|

TiFlash インスタンスは今は置いておくことにします。 |+|

このコースでは後でTiFlashについて説明します。

そして、TiUP|+| は現在手元になくても心配はいりません。

このコースの終わりまでにラボ1が終了すると、あなたはTiUPがインストールされているはずです。

だから、やってみましょう。

|+|PDがアップしているのが見えます。それに続いてTiKVとTiDBが上がっています。

現実の世界の本番環境では、これらのサーバーを異なるノードにスピンアップすることができます。 |+|

プレイグラウンドは、テストのための砂場にすぎないことに注意します。 |+|

大丈夫です。今すべて準備ができました。

|+| RAWクライアントを使用して接続を構築することが分かります。

私たちが使用しているエンドポイントはPDからです。 |+|

単に新しいキーバリューのペアを配置して、取得するだけです。

|+|次に、存在しないキーから値を取得しようとしてみましょう。

それでは何が起こるか見てみましょう。

|+|それが私たちが期待していたことでしょうか。

私たちは実際にTiKVにキーと値のペアを入れることができます。

|+|そして、私たちはキー1から値を取得できますが、存在しないキー、キー0からは値を取得できません。

|+| だから、これはこのコースでRAW KVインターフェースを使用する最初で最後の機会です。

以降、このコース全体で、TiDBとのコミュニケーションに使用する唯一の言語がSQLであることを考えてください。 |+|