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

TiDBとChatGPTを使えば アプリはもっとシンプル化できる

PingCAP-Japan
February 08, 2023

TiDBとChatGPTを使えば アプリはもっとシンプル化できる

50億をこえるGitHubのイベントデータを分析するOSS InsightというWebサービスによって、OSSツールの安全性など様々なことが分かります。

このスライドはこのサービスの裏側で使われている技術のキモであるデータベース機能のHTAP、Chat2Query(ChatGPTベースのクエリ生成機能)がどのようにアプリケーション開発をシンプル化・高度化できるかを紹介します。

アーカイブ動画:
https://youtu.be/mdxD9lxEjOg

PingCAP-Japan

February 08, 2023
Tweet

More Decks by PingCAP-Japan

Other Decks in Technology

Transcript

  1. TiDBとChatGPTを使えば
    アプリはもっとシンプル化できる
    PingCAP株式会社
    Japan CTO 林正記(Hayashi Masaki)

    View Slide

  2. PingCAPの自己紹介

    - NewSQLデータベース TiDBを継続的に開発

    - 2015年設立後、TiDBを開発し毎年メジャーアップデートを実施

    - CNCFに寄贈し、現在Graduatedステータス

    - フルマネージド型DBサービス「TiDB Cloud」の展開も強化中


    - ワールドワイドでビジネス展開

    - 2021年4月に日本支社設立

    - MySQL開発MgrのSanny Bains等も入社

    - 元日本マイクロソフト社長 平野拓也がアドバイザーとして参画

    Sunny Bains

    ex. InnoDB R&D Mgr

    平野 拓也氏

    ex. 日本マイクロソフト社長

    View Slide

  3. OSSの活発度が知りたい?OSS insight!

    GitHub上のイベント情報をうまく使えばグラフィカルに表示すればプロジェクトを理解できる
    https://ossinsight.io
    GitHubデータ
    ・アーカイブデータ
    - GHarchive(1時間ごとに更新)
    - 46億レコード(現在は50億レコード)
    ・リアルタイムデータ
    - GitHubイベントAPI
    - 平均30万レコード/時間

    View Slide

  4. OSS insightの検討事項

    1.現在の状況に対するグラフ化
    - 大量のデータ
    - (リアルタイムデータに対して)集計含め様々な種類のクエリが来る
    2.カスタマイズ
      標準UIで用意していない可視化対応

    View Slide

  5. OSS insightの検討事項

    1.現在の状況に対するグラフ化
    - 大量のデータ
    - (リアルタイムデータに対して)集計含め様々な種類のクエリが来る
    2.カスタマイズ
      標準UIで用意していない可視化対応

    View Slide

  6. データストアの選択

    1つのDBで全てをかなえることは難しい
    RDB
    (OLTP)
    RDB
    (OLAP)
    NoSQL Hadoop
    +色々
    ①スケーラビリティ △ △ 〇 〇
    ②複雑な分析クエリ △ 〇 x 〇~△
    ③更新がまあまあある 〇 △ 〇 〇~△

    View Slide

  7. 現実解?の構築は結構難しい

    更新用にRDBをシャーディングして、ETLパイプラインを構築し、DWHに同期
    シャーディングして
    スケーラビリティ担保
    Kafka経由でデータを流し
    て、分析クエリに対応
    よく使うクエリは
    クエリキャッシュ 勉強することいっぱい…

    View Slide

  8. シンプル化できる?

    更新用にRDBをシャーディングして、ETLパイプラインを構築し、DWHに同期
    ①NewSQLでシャーディング不要に
    - Spanner
    - TiDB
    - CockroachDB
    - YugabyteDB
    ②HTAPでOLTP,OLAPを1つのDBで実現
    - AlloyDB
    - SingleStore
    - TiDB
    - Snowflake

    View Slide

  9. ①NewSQLでシャーディング不要に

    RDB
    (ex. MySQL)
    NoSQL
    (ex. Cassandra)
    New SQL
    (ex. TiDB)
    CAPの考え方 CA AP CP+HA
    クエリ SQL API, SQL(CQL) SQL
     - トランザクション 〇 X 〇
     - JOIN 〇 X 〇
    Readスケーラビリティ

    リードレプリカ
    テーブル再設計

    分散アーキテクチャ

    分散アーキテクチャ
    テーブル再設計不要
    Writeスケーラビリティ

    Writerは単一ボトルネック
    (要シャーディング)

    分散アーキテクチャ

    分散アーキテクチャ
    (大きい1テーブル対応可)
    - NewSQL = 分散アーキテクチャによるスケーラビリティ+ACIDトランザクション

     ⇒シャーディングに頼らないRDB+スケーラビリティの直接的回答

    - 有名プロトコルを互換しているので、RDBのスキルセットを活かせる


    View Slide

  10. シンプル化できる?

    更新用にRDBをシャーディングして、ETLパイプラインを構築し、DWHに同期
    ①NewSQLでシャーディング不要に
    - Spanner
    - TiDB
    - CockroachDB
    - YugabyteDB
    ②HTAPでOLTP,OLAPを1つのDBで実現
    - AlloyDB
    - SingleStore
    - TiDB
    - Snowflake

    View Slide

  11. ②HTAPでOLTP,OLAPを1つのDBで実現

    HTAP = OLTP + リアルタイムOLAP分析を1つの基盤で
    HTAP的なメッセージがマーケットでも増えてきた

    View Slide

  12. ②HTAPでOLTP,OLAPを1つのDBで実現

    HTAPの実装は、メモリ型・ストア型色々ある
    TiDB AlloyDB
    プロトコル MySQL PostgreSQL
    Scalability Read, Write (NewSQL) Read
    マルチクラウド AWS, GCP(, On-Premise) GCP
    HTAP実装 ストア
    (TiFlashにより大容量のカラム化が可能)
    メモリ内
    MPP ◎ -
    データ容量が増えるほどストア型が有利
    (+ MPPも重要)

    View Slide

  13. シンプル化できる?(再掲)

    更新用にRDBをシャーディングして、ETLパイプラインを構築し、DWHに同期
    ①NewSQLでシャーディング不要に
    - Spanner
    - TiDB
    - cockroachDB
    - YugabyteDB
    ②HTAPでOLTP,OLAPを1つのDBで実現
    - AlloyDB
    - SingleStore
    - TiDB
    - Snowflake
    RDB
    (OLTP)
    RDB
    (OLAP)
    NoSQL Hadoop
    +色々
    NewSQL NewSQL
    &HTAP
    ①スケーラビリティ △ △ 〇 〇 〇 〇
    ②複雑な分析クエリ △ 〇 x 〇~△ △ 〇
    ③更新がまあまあある 〇 △ 〇 〇~△ 〇 〇

    View Slide

  14. 2つを満たしてくれたTiDB

    NewSQL TiDBは、更新・参照業務と分析業務を1アーキテクチャで実現。
    TiDBは通常のDBと異なり、2つのエンジンを搭載し、あらゆる業務を1つのプラットフォームで実施可能。
    また、全てのコンポーネントがリニアにオンラインスケールアウト
    /インが可能
    アプリケーション
    TiKV
    TiKV
    TiKV
    TiKV
    TiFlash TiFlash
    TiFlash TiFlash
    更新・参照用ストレージエンジン

    TiKV
    TiKV
    TiKV
    TiKV
    TiFlash TiFlash PD
    PD PD
    TiFlash TiFlash
    更新、参照
    分析用ストレージエンジン
    データ同期
    分析処理

    全体管理
    TiDB TiDB … TiDB
    ・更新処理か分析処理かを
    TiDBで自動判別
    ・適切なエンジンで処理を実施
    クエリ処理コンポーネント
    Row-Base Store Column-Base Store

    View Slide

  15. TiDB???

    View Slide

  16. フルマネージド(TiDB Cloud)を活用

    ソフトウェアの運用ナレッジは不要。
    更にMySQLのスキルセットを活かせるのがうれしい
    - お客様専用のVPC、Compute 

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

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

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

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


    View Slide

  17. TiDB Cloud 無償トライアル
    https://tidbcloud.com/signup
    Serverless TierではTiDB Cloudを現在無償でご利用頂けます。

    View Slide

  18. NewSQLデモ:スケールアウト(&MySQL互換)

    NewSQL TiDBは、更新・参照業務と分析業務を1アーキテクチャで実現。
    TiDBは通常のDBと異なり、2つのエンジンを搭載し、あらゆる業務を1つのプラットフォームで実施可能。
    また、全てのコンポーネントがリニアにオンラインスケールアウト
    /インが可能
    アプリケーション
    TiKV
    TiKV
    TiKV
    TiKV
    TiFlash TiFlash
    TiFlash TiFlash
    更新・参照用ストレージエンジン

    TiKV
    TiKV
    TiKV
    TiKV
    TiFlash TiFlash PD
    PD PD
    TiFlash TiFlash
    更新、参照
    分析用ストレージエンジン
    データ同期
    分析処理

    全体管理
    TiDB TiDB … TiDB
    ・更新処理か分析処理かを
    TiDBで自動判別
    ・適切なエンジンで処理を実施
    クエリ処理コンポーネント
    Row-Base Store Column-Base Store

    View Slide

  19. HTAPデモ:クエリの実行計画を見てみる


    View Slide

  20. アーキテクチャはこうなった(Before)

    更新用にRDBをシャーディングして、ETLパイプラインを構築し、DWHに同期
    シャーディングして
    スケーラビリティ担保
    Kafka経由でデータを流し
    て、分析クエリに対応
    よく使うクエリは
    クエリキャッシュ

    View Slide

  21. アーキテクチャはこうなった(After)

    全てTiDBに任せる
    OLTP, OLAPは
    全てTiDBで処理

    View Slide

  22. OSS insightの検討事項

    1.現在の状況に対するグラフ化
    - 大量のデータ
    - (リアルタイムデータに対して)集計含め様々な種類のクエリが来る
    2.カスタマイズ
      標準UIで用意していない可視化対応

    View Slide

  23. AIを活用したクエリ生成機能

    TiDBにChatGPTを統合し、クエリ生成機能(Chat2Query)を実現
    データ活用の民主化を加速
    - 自然言語を入れるだけで、非エンジニアでも有効なクエリを作成可能

    - 複雑なクエリでもTiDBなら高速に処理

    View Slide

  24. クエリ生成デモ:クエリ生成を体感する

    実際のデータからクエリが作成されることを確認する

    View Slide

  25. まとめ
    ・TiDB (NewSQL & HTAP)が持つ1システムでの多機能化によって、今まで複数のシステ
    ムを活用して実現していたサービスも1つのDBでできるようになり、全体の運用コスト(+
    学習コスト)も抑えられる


    ・もう大容量・高性能・分析みたいな要件は怖くない。


    ・AIによるクエリ生成機能を使えば、ユーザーのカスタマイズ性を上げるサービスを作れ
    る


    View Slide

  26. アンケートご協力へのお願い
    Developers Summit 2023
    PingCAP/TiDBのロゴ入り
    ノベルティを抽選で
    100名様にプレゼント!
    回答期限は2/10(金)17:00まで。
    サーモステンレスマグ 380ml テキスタイルモバイル
    アクセサリーケース(L)
    Tシャツ
    #devsumi2023TiDB

    View Slide

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

    View Slide