0
00:00:00,000 --> 00:00:08,208
[音楽]

1
00:00:08,208 --> 00:00:11,208
このユニットでは、HTAPについて話します。

2
00:00:11,208 --> 00:00:16,740
HTAPは、Hybrid Transactional Analytic Processingの略称です。名前が示すように、

3
00:00:16,740 --> 00:00:22,080
同時にOLTPとOLAPという2種類のワークロードを処理できる

4
00:00:22,080 --> 00:00:25,260
混合型ソリューションまたは混合型データベースです。

5
00:00:26,520 --> 00:00:33,120
OLTPは通常、行ベースのデータで動作しますが、OLAPでは、通常、列指向ストアが好まれます。

6
00:00:34,380 --> 00:00:38,400
OLTPとOLAPの間の境界は実際には曖昧になっていますが、

7
00:00:38,400 --> 00:00:42,420
このディスカッションの目的のために、それがまだそのようなままであると仮定します。

8
00:00:43,680 --> 00:00:47,658
データベースにとってディスクI/Oは最も重い作業の1つであり、

9
00:00:47,658 --> 00:00:52,140
I/Oが多いほどパフォーマンスが悪化することを理解しています。

10
00:00:52,980 --> 00:00:58,260
ここに、行ベースと列指向ベースのIOオーバーヘッドを

11
00:01:00,120 --> 00:01:04,200
比較する仮想的な例があります。単一の行を挿入する場合、行ベースのストレージは1つのデータブロックにアクセスするだけで済みます。

12
00:01:04,200 --> 00:01:08,580
一方、列ベースのデータストアは3つのデータブロックにアクセスする必要があります。

13
00:01:09,660 --> 00:01:14,640
しかしながら、集計については、行ベースのストレージは3つのブロックへのアクセスが必要ですが、

14
00:01:14,640 --> 00:01:18,060
カラムベースのストレージは1つのデータブロックをスキャンするだけで済みます。

15
00:01:18,720 --> 00:01:22,020
挿入の例は典型的なOLTPシナリオであり、

16
00:01:22,020 --> 00:01:25,200
集計の例は典型的なOLAPシナリオです。

17
00:01:26,520 --> 00:01:32,700
この例は、OLTPが行ベースのストレージを好む一方で、OLAPがカラムベースのストレージを好むことを示しています。

18
00:01:33,960 --> 00:01:37,320
当然ながら、データブロックへのアクセスやスキャンの効率性は2つのワークロード間の

19
00:01:37,320 --> 00:01:39,840
唯一の違いではありません。

20
00:01:39,840 --> 00:01:43,560
一方のパフォーマンスを向上させるために、もう一方のパフォーマンスを

21
00:01:43,560 --> 00:01:46,080
犠牲にすることは珍しくありません。

22
00:01:46,740 --> 00:01:50,880
ただし、同じデータベースの同じテーブル内に2つのワークロードが存在する場合、

23
00:01:50,880 --> 00:01:54,240
両方を同時に満たすことはできません。

24
00:01:54,240 --> 00:01:54,679
様々な構成において、同じ感覚を共有することはできません。

25
00:01:54,679 --> 00:01:55,200
ブロックサイズを例にとると、OLAPは大きなブロックを好み、OLTPは相対的に小さなブロックサイズを好みます。

26
00:01:55,200 --> 00:02:01,620
私たちは既に、TiKVが行ベースのキーバリューストアであることを知っています。OLTPには適しています。

27
00:02:01,620 --> 00:02:08,100
OLAPの問題を解決するTiDBのソリューションは、TiFlashと呼ばれる別のサーバーをクラスタに追加することです。

28
00:02:09,660 --> 00:02:13,260
TiFlashは列ベースのストレージを提供し、TiKVと同じRaftを使い

29
00:02:13,260 --> 00:02:15,960
TiKVからリアルタイムでデータをレプリケートします。

30
00:02:16,800 --> 00:02:20,520
TiFlashへのデータレプリケーションは、TiKVの書き込み操作をブロックしません。

31
00:02:21,360 --> 00:02:26,520
TiKVのように一貫性のある読み取りを提供し、確実に最新のデータが返されるようにします。

32
00:02:28,320 --> 00:02:32,880
TiFlashは、LearnerとしてRaftグループに参加します。これは、TiFlashが決してLeaderにならないことを意味します。

33
00:02:33,720 --> 00:02:39,180
デプロイ後、テーブルデータはデフォルトではTiFlashに同期されません。

34
00:02:40,620 --> 00:02:44,160
同期機能は明示的に有効にする必要があります。

35
00:02:45,000 --> 00:02:46,920
エンジンのスマート選択機能により、OLTPワークロードを処理する際に、

36
00:02:46,920 --> 00:02:51,600
TiDBサーバーはTiKVと通信し、クエリのパフォーマンスが列指向ストアから利益を得られる場合には、

37
00:02:51,600 --> 00:02:56,820
TiFlashから結果を取得できます。

38
00:02:57,960 --> 00:03:02,520
私たちは、TiDB固有の機能というトレーニングコースでTiFlashの使用方法について説明します。

