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株式会社
    Japan CTO 林正記(Hayashi Masaki)

    View full-size slide

  2. PingCAPの自己紹介

    - NewSQL製品TiDBの開発主体

    - 2015年設立、シリーズDで280億円の資金調達に成功

    - WWでビジネス展開。2021年日本支社設立。

    - ハイライト

    TiDBはグローバルで3000社以上で採用


    View full-size slide

  3. 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アーキテクチャで

    View full-size slide

  4. HTAP Summit @U.S.
    HTAPとしてのイベントを米国で開催
    ※登壇企業(一部)

    - Pinterest

    - Niantic

    - Square

    - Databricks

    - Airbnb


    View full-size slide

  5. 世界で採用される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

    View full-size slide

  6. 分散型SQLデータベース
    オンライン拡張とリアルタイム分析可能
    用途①:OLTP
    水平拡張可能なリレーショナルデータベース
    ーーー
    オンラインでの拡張
    ● シングルTiDBクラスターで400TB以上拡張
    ● シングルテーブルで数兆レコード対応
    用途②:HTAP
    リアルタイム分析
    ーーー
    トランザクション処理と分析処理
    ● トランザクションデータと連携した分析レポート
    ● 数兆レコードを利用した分析が可能
    世界で採用されるNewSQL TiDB

    - オンラインスケールアウト/イン+負荷分散
      ⇒書き込みスケール
      ⇒読み込みスケール
    - レプリケーション遅延排除
    - MySQL 5.7+ 互換
    - 列指向DBの統合による分析ワークロード対応

    View full-size slide

  7. 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)


    View full-size slide

  8. リアルタイム分析実現手段としてのTiDB
    従来行われていたリードレプリカ (行型)を活用した分析のボトルネックを、 TiDBのカラム型機能が解決
    OLTP
    ->DataHub
    DWH
    App
    TiDBの工夫
    ①スケールアウト型RDB (NewSQL)
      - RDBへの統合によるJOIN等への対応
      - スケールアウト性
    ②列指向MPPエンジン
    ③エコシステム拡充(SparkSQLとの統合)

    View full-size slide

  9. 列指向ストア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

    View full-size slide

  10. (ご参考) 各社の実装の違い
    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型が有利

    View full-size slide

  11. 事例:CTW (リアルタイムデータ情報の広告への活用)
    ホットデータをリアルタイムの広告表示に活用
    Aurora (MySQL)からの移行事例。(OLTPシステムとしても性能・メンテナンス性向上)
    - Redshiftの運用だと要件が合わなくな
    り、リアルタイムの分析を実施
    - MySQLに比べ性能が全体的に3倍に
    向上
    - 世界規模のサービスでメンテナンス時
    間がとれなくなってきているが、 Online
    DDLによるメンテナンスの向上による
    解決

    View full-size slide

  12. 事例:スマレジ (リアルタイムデータの集計と可視化)
    リアルタイムの集計データをダッシュボード化するために
    TiDBの性能を活用
    初期段階では、Read Replica的にTiDBを活用
    - MySQLプロトコル+スケーラブルアーキテ
    クチャを評価
    - 集計クエリの高速化のため、 TiFlashを利用
    - Primary : Aurora, リードレプリカ:TiDB利
    用し、段階的に移行

    View full-size slide

  13. 事例 :小紅書 (詐欺検知、リアルタイム広告・レポート)
    活用内容
    1. 大規模なプロモーション中に、リアルタイムデータを大
    きなディスプレイ画面に提供
    2. ロジスティック倉庫管理
    3. データウェアハウスアプリケーション
    4. eコマースデータハブ
    5. コンテンツセキュリティハブ
    ライブeコマースプラットフォーム詐欺検知、リアルタイム広告に活用
    リアルタイム分析基盤として活用
    ①詐欺検知 - Flinkを使用した大量のイベント (40000QPS)書
    き込みとアドホッククエリ
    ②レポート - データ増にシャーディング不要に
    ③シャーディング DBへの分析クエリの解決
    ③TiFlashによる高速化

    View full-size slide

  14. TiDB HTAP使われ方まとめ
    ①OLTP
    OLAP / DWH
    App
    ETL(T+1) CDC(T+Δ)
    ③リアルタイムOLAP
    Master ②Replica
    ①OLTP基盤全体として

    ②OLTPのRead Replicaとして(MySQLプロトコルを活かして)

    ③リアルタイムOLAP基盤として


    View full-size slide

  15. 本日の環境

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


    View full-size slide

  16. TiDB Cloud
    よりアプリ開発に注力できるマネージドサービス

    - お客様専用のVPC、Compute 

    - デフォルトでマルチAZ構成 

    - 障害・メンテナンス対応は全てPingCAPが実
    施

    - VPC Peering, Private Link, Public IP経由で
    接続

    - 専用WebコンソールやAPIで操作 


    View full-size slide

  17. TiDB Cloud : 無償トライアルのご案内
    https://tidbcloud.com/signup
    Serverless TierではTiDB Cloudを無償で1年間ご利用頂けます。
    ※容量制限はありますが
    本番と同等の機能を
    提供しているため、
    アプリとの接続試験
    などが容易にできます。

    View full-size slide

  18. TiFlashの使用感


    View full-size slide

  19. 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で処理)


    View full-size slide

  20. もっと大きいデータで


    View full-size slide

  21. 事例:OSS insight (OSS活発度が分かる分析サービスにカラムストアを利用)

    50億を超えるGitHub上のイベント分析するデータベースとして
    TiDB (TiFlash)を活用
    ①各イベント発生の推移
    ①GitHubイベント
    データをリアルタイム同期 +TiFlash
    https://ossinsight.io/ ②Pull requests地域の表示
    ②分析クエリを
    TiFlash(カラムストア )
    で高速処理
    ③ジャンル内での比較(人気言語等)
    etc…

    View full-size slide

  22. https://ossinsight.io/docs/about


    View full-size slide

  23. 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/


      


    View full-size slide

  24. TiDB HTAPまとめ
    ①OLTP
    OLAP / DWH
    App
    ETL(T+1) CDC(T+Δ)
    ③リアルタイムOLAP
    Master ②Replica
    ・NewSQL TiDBのカラムストア機能(TiFlash)を活用して、リアルタイム分析が可能 

    ・使われ方の例

      ①OLTP基盤全体として 

      ②OLTPのRead Replicaとして(MySQLプロトコルを活かして) 

      ③リアルタイムOLAP基盤として 


    View full-size slide

  25. Thank You!
    https://www.pingcap.com/
    [email protected]

    View full-size slide

  26. 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
    データエクスポート機能
    データインポート機能
 バックアップ・リカバリー機能
 診断・モニタリング


    View full-size slide

  27. (ご参考)TiCDC - リアルタイム分析を支える技術

    TiDBの増分データを複製するためのツール
    https://docs.pingcap.com/tidb/stable/ticdc-overview
    Cluster1 TiCDC Cluster Cluster2
    出力先
    ・MySQLプロトコル(TiDB, MySQL)
    ・TiCDCオープンプロトコル(Kafka)

    View full-size slide