Upgrade to Pro — share decks privately, control downloads, hide ads and more …

リアルタイム分析の現実解。今話題のHTAPの実力とは? - db tech showcase 2022 Tokyo

PingCAP-Japan
November 22, 2022

リアルタイム分析の現実解。今話題のHTAPの実力とは? - db tech showcase 2022 Tokyo

最近データベース各社からHTAPのキーワードが増えています。更にリアルタイム分析・分析基盤を代替できるなどのメッセージも出てきています。
このスライドでは、実際にはHTAPをどのように使えるのか・どのような仕組みで実現しているか、などを分散型RDB TiDBを例にとり、デモを交えながら考察していきます。
出典:db tech showcase 2022
動画:https://youtu.be/QuksE1eT_6c

PingCAP-Japan

November 22, 2022
Tweet

More Decks by PingCAP-Japan

Other Decks in Technology

Transcript

  1. HTAP的なメッセージが増えてきた ※PingCAPも比較を含めたメッセージを発信 The Beauty of HTAP: TiDB and AlloyDB as

    Examples https://pingcap.co.jp/the-beauty-of-htap-tidb-and-alloydb-as-examples/ HTAP = OLTP + リアルタイムOLAP分析を1つの基盤で    = 行と列を1アーキテクチャで
  2. 世界で採用されるNewSQL TiDB
 Feature Amazon Aurora Google Cloud Spanner YugaByteDB CockroachDB

    TiDB Elastic scalability (Both read and write) Automated failover and high availability Distributed ACID transactions SQL compatibility and protocol MySQL and PostgreSQL Proprietary (+PostgreSQL) PostgreSQL PostgreSQL MySQL Open Source License Apache 2.0 BSL and CCL Apache 2.0 HTAP △ NewSQL = NoSQLのスケーラビリティ+ RDBの使用感/Consistency
  3. 分散型SQLデータベース オンライン拡張とリアルタイム分析可能 用途①:OLTP 水平拡張可能なリレーショナルデータベース ーーー オンラインでの拡張 • シングルTiDBクラスターで400TB以上拡張 • シングルテーブルで数兆レコード対応

    用途②:HTAP リアルタイム分析 ーーー トランザクション処理と分析処理 • トランザクションデータと連携した分析レポート • 数兆レコードを利用した分析が可能 世界で採用されるNewSQL TiDB
 - オンラインスケールアウト/イン+負荷分散   ⇒書き込みスケール   ⇒読み込みスケール - レプリケーション遅延排除 - MySQL 5.7+ 互換 - 列指向DBの統合による分析ワークロード対応
  4. NewSQL:スケールアウト型アーキテクチャ
 TiDB クエリの増加 
 ノード追加で対応 
 TiDB TiDB Cluster
 TiKV

    Cluster
 負荷分散・領域管理 
 3ノードのみ必要 
 PD Cluster
 TiDB TiKV TiKV TiKV TiKV 容量拡張
 ノード追加で対応
 TSO / Data Location
 Metadata
 PD PD PD Application via MySQL Protocol Application via MySQL Protocol Application via MySQL Protocol Application via MySQL Protocol データストアレイヤー 
 アプリケーション
 (MySQLClient利用可能)
 - 1つのDBのように見える。裏で勝手にロードバランスしてくれる 
 - 各コンポーネントは、ノードを追加することでリニアにスケールアウトが可能 
 - 完全分散型=リードレプリカを通じたレプリケーション遅延もなくなる 
 SQL解析レイヤー
 (Parser, Optimizer)

  5. リアルタイム分析実現手段としてのTiDB 従来行われていたリードレプリカ (行型)を活用した分析のボトルネックを、 TiDBのカラム型機能が解決 OLTP ->DataHub DWH App TiDBの工夫 ①スケールアウト型RDB

    (NewSQL)   - RDBへの統合によるJOIN等への対応   - スケールアウト性 ②列指向MPPエンジン ③エコシステム拡充(SparkSQLとの統合)
  6. 列指向ストアTiFlash - HTAPを支える技術
 RowData ロー型配置データ Salesテーブル RowData RowData RowData カラム型配置データ

    Salesテーブル TiDB (Optimizer) SELECT AVG(s.price) FROM prod p, sales s WHERE p.pid = s.pid AND p.batch_id = ‘B1328’; TableScan(price,pid) TP or AP処理をTiDBで自動判別 リアルタイムで同期 price pid B1328 B1328 B1328 TiKV TiFlash 分析処理を高速化する列指向型ストアTiFlash
  7. (ご参考) 各社の実装の違い TiDB AlloyDB プロトコル MySQL PostgreSQL Scalability Read, Write

    (NewSQL) Read マルチクラウド AWS, GCP GCP HTAP実装 ストア (TiFlashにより大容量のカラム化が可能) メモリ内 カラムデータクエリエンジン MPP シングルノード ※弊社ブログより抜粋 https://en.pingcap.com/blog/the-beauty-of-htap-tidb-and-alloydb-as-examples/ データ容量が増えるほどストア型・ MPP型が有利
  8. 事例 :小紅書 (詐欺検知、リアルタイム広告・レポート) 活用内容 1. 大規模なプロモーション中に、リアルタイムデータを大 きなディスプレイ画面に提供 2. ロジスティック倉庫管理 3.

    データウェアハウスアプリケーション 4. eコマースデータハブ 5. コンテンツセキュリティハブ ライブeコマースプラットフォーム詐欺検知、リアルタイム広告に活用 リアルタイム分析基盤として活用 ①詐欺検知 - Flinkを使用した大量のイベント (40000QPS)書 き込みとアドホッククエリ ②レポート - データ増にシャーディング不要に ③シャーディング DBへの分析クエリの解決 ③TiFlashによる高速化
  9. TiDB HTAP使われ方まとめ ①OLTP OLAP / DWH App ETL(T+1) CDC(T+Δ) ③リアルタイムOLAP

    Master ②Replica ①OLTP基盤全体として
 ②OLTPのRead Replicaとして(MySQLプロトコルを活かして)
 ③リアルタイムOLAP基盤として

  10. 本日の環境
 ①コミュニティ版 ②エンタープライズ ③TiDB Cloud タイプ Software Managed Service 課金単位

    無償 CPU数 インスタンス/容量/転送 プラットフォーム サーバー(オンプレ/クラウド) Kubernetes AWS、GCP (東京リージョン利用可能 ) 機能差 ー セキュリティプラグイン (Audit Log) インスタンス種類、バック アップ頻度、設定値等(使 用ソフトは同一) サポート コミュニティサポート -24x7 エンタープライズサポート -Techincal training and consulting ソフトウェア・マネージドサービスなど多様な提供形態により、様々な環境に使用可能

  11. TiDB Cloud よりアプリ開発に注力できるマネージドサービス
 - お客様専用のVPC、Compute 
 - デフォルトでマルチAZ構成 
 -

    障害・メンテナンス対応は全てPingCAPが実 施
 - VPC Peering, Private Link, Public IP経由で 接続
 - 専用WebコンソールやAPIで操作 

  12. TiFlashの活用デモ SELECT l_orderkey, SUM( l_extendedprice * (1 - l_discount) )

    AS revenue, o_orderdate, o_shippriority FROM customer, orders, lineitem WHERE c_mktsegment = 'BUILDING' AND c_custkey = o_custkey AND l_orderkey = o_orderkey AND o_orderdate < DATE '1996-01-01' AND l_shipdate > DATE '1996-02-01' GROUP BY l_orderkey, o_orderdate, o_shippriority ORDER BY revenue DESC, o_orderdate limit 10; ①データ作成 (TPCH - Done)
 ②クエリを流す (TiKVで処理)
 ③TiFlash適用 (テーブル単位で適用)
 ④クエリを流す (TiFlashで処理)
 

  13. OSS insightのDBにクエリを流す ①レコード数カウント&リアルタイムで同期している事を確認
   select count(*) from github_events; 
 ②条件を設定してクエリかける
   select

    count(*) from github_events where actor_login = '??????'; 
 ③OSS insightで使われているクエリを試す
   https://ossinsight.io/blog/explore-deep-in-4.6-billion-github-events/
 
   
 

  14. TiDB HTAPまとめ ①OLTP OLAP / DWH App ETL(T+1) CDC(T+Δ) ③リアルタイムOLAP

    Master ②Replica ・NewSQL TiDBのカラムストア機能(TiFlash)を活用して、リアルタイム分析が可能 
 ・使われ方の例
   ①OLTP基盤全体として 
   ②OLTPのRead Replicaとして(MySQLプロトコルを活かして) 
   ③リアルタイムOLAP基盤として 

  15. TiDBの周辺ツール エコシステム
 TiDB TiDB TiDB Application via MySQL Protocol TiKV

    TiKV TiFlash TiKV TiKV ... DistSQL API 
 KV API
 ... Worker Worker Worker Spark Driver ... Spark SQL Spark Cluster
 DistSQL API 
 PD PD PD PD Cluster Worker ... TiCDC DM Worker DM Worker DM Master Upstream Database Downstream Database Lightning KV Importer KV Dumper TiDB dashboard TiDB Operator Chaos Mesh TiFlash データエクスポート機能 データインポート機能
 バックアップ・リカバリー機能
 診断・モニタリング