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

いまこそNewSQLを使ってみよう

makocchi
October 07, 2023

 いまこそNewSQLを使ってみよう

ハッカーズチャンプルー 2023 の発表資料です。
「いまこそNewSQLを使ってみよう」

makocchi

October 07, 2023
Tweet

More Decks by makocchi

Other Decks in Technology

Transcript

  1. いまこそNewSQLを使ってみよう!
    @makocchi
    HACKERS


    CHAMPLOO


    2023

    View full-size slide

  2. 2
    Makoto Hasegawa
    Working at // CIU, CyberAgent, Inc
    Currently //


    Develop and maintain private OpenStack cloud.


    Develop and maintain Kubernetes as a Service platform.


    Kubernetes organization member (sig-docs-ja)


    CKA / CKAD / CKS
    Job Title // Technical Lead Infrastructure Engineer
    WHO am I
    X // @makocchi


    Facebook // makocchi0923
    Hobby // Playing bass

    View full-size slide

  3. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    3
    本日のアジェンダ
    NewSQL について知る 💪
    NewSQL にはどのようなソフトウェアがあるかを知る 💪
    実際に NewSQL を動かしてみよう 💪

    View full-size slide

  4. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    4
    NewSQL について知る
    LEARN ABOUT NEWSQL

    View full-size slide

  5. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    5
    NewSQL について知る
    ⭐ NewSQLとは・・・


    NoSQL(Not Only SQL)の拡張性を持ちつつ、データベースソフトウェアでサポートされている
    ACID トランザクション処理が可能なソフトウェアです。


    NewSQL というワードの普及を後押ししたのが、Google が2012年に発表した「Spanner:
    Google’s Globally-Distributed Database」という論文です。


    この発表後、Spannerのアーキテクチャを参考にいろいろなソフトウェアが世の中に出てきまし
    た。

    View full-size slide

  6. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    6
    NewSQL について知る
    3%# /P42- /FX42-
    $"1ͷߟ͑ํ $" "1 $1ʴ)"
    2VFSZ 42- 42-"1* 42-
    τϥϯβΫγϣϯ+0*/ ✔ ✘ ✔
    3FBEεέʔϥϏϦςΟ

    3FBEϨϓϦΧ

    ෼ࢄΞʔΩςΫνϟ

    ෼ࢄΞʔΩςΫνϟ
    8SJUFεέʔϥϏϦςΟ
    💦
    ཁγϟʔσΟϯά

    ෼ࢄΞʔΩςΫνϟ

    ෼ࢄΞʔΩςΫνϟ
    ⭐ NewSQLとは・・・


      表にまとめるとこんな感じになります

    View full-size slide

  7. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    7
    NewSQL について知る
    ⭐ NewSQL だと何が嬉しいの?


    従来のデータベース運用の課題が解決する(かもしれない)


    個人的に思っている従来のデータベース運用にありがちな課題


    効率よくスケールすることができない


    データが増えてくるとシャーディングしないとパフォーマンスが劣化してくる


    マルチマスター構成を組んだり運用したりするのがめんどくさい


    などなど。。。

    View full-size slide

  8. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    8
    NewSQL について知る
    ⭐ NewSQL のアーキテクチャについて知ろう


    NewSQL は SQL を処理するコンポーネントと、データを保持するコンポーネントに分かれて構成されてい
    るケースがほとんどです。


    例えば処理性能は必要ないけれどディスク容量だけを拡張させたい、というシナリオの場合はデータを
    保持するコンポーネントだけを拡張させるといったことが可能です。


    もちろん、ディスク容量はそのままで処理性能だけがほしいといったシナリオにも対応できます。


    このように、データベースのノード単位ではなく、コンポーネント単位で拡張することで必要なリソース
    のみを拡張することが可能で、効率よくデータベースを拡張することが可能な点が特徴です。

    View full-size slide

  9. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    9
    NewSQL について知る
    ⭐ NewSQL のアーキテクチャについて知ろう


    図にしてみるとこんな感じ
    👈 従来のデータベースの構成
    NewSQL ではそれぞれが独立してスケールできる 👉

    View full-size slide

  10. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    10
    NewSQL について知る
    ⭐ NewSQL のアーキテクチャについて知ろう 2


    シャーディングが必要ないといった点も NewSQL を使う利点として挙げられます。


    データの肥大化に伴うシャーディングの運用は手間がかかりますし、何よりデータベースを参照するアプリ
    ケーション側にもロジックが必要になります。


    NewSQL ではデータは自動的に分散して配置され、シャーディングしなくてもよいケースがほとんどです。


    また、スケールアウト/インさせた場合にも自動でリシャーディングしてくれます。これも NewSQL を使う
    上でのメリットでしょう。

    View full-size slide

  11. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    11
    NewSQL にはどのようなソフトウェアがあるかを知る
    FIND OUT WHAT SOFTWARE IS AVAILABLE FOR NEWSQL

    View full-size slide

  12. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    12
    NewSQL にはどのようなソフトウェアがあるかを知る
    ⭐ 個人的に成熟度が高いと思っている NewSQL を紹介

    View full-size slide

  13. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    13
    NewSQL にはどのようなソフトウェアがあるかを知る
    ⭐ 個人的に成熟度が高いと思っている NewSQL を紹介

    View full-size slide

  14. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    14
    NewSQL にはどのようなソフトウェアがあるかを知る
    ⭐ 個人的に成熟度が高いと思っている NewSQL を紹介
    TiDB は主に PingCAP 社によって開発されているオープンソースの
    NewSQL ソフトウェアです。


    MySQL との高い互換性を持っており、従来のリレーショナル構造
    に加えて列志向のデータも同時に保持(※)できる点が特徴です。


    ※ HTAP(Hybrid Transaction Analytical Processing)

    View full-size slide

  15. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    15
    NewSQL にはどのようなソフトウェアがあるかを知る
    ⭐ 個人的に成熟度が高いと思っている NewSQL を紹介
    YugabyteDB は主に Yugabyte 社によって開発されているオープン
    ソースの NewSQL ソフトウェアです。


    PostgreSQL との互換性を持っており、それに加えて Cassandra と
    も互換性を持っているのが特徴です。

    View full-size slide

  16. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    16
    NewSQL にはどのようなソフトウェアがあるかを知る
    ⭐ 個人的に成熟度が高いと思っている NewSQL を紹介
    CockroachDB は主に Cockroach Labs によって開発されている
    オープンソースの NewSQL ソフトウェアです。


    YugabyteDB と同じく PostgreSQL との互換性を持っています。


    名前の由来はもちろん、しぶとく生きるアレです

    View full-size slide

  17. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    17
    NewSQL にはどのようなソフトウェアがあるかを知る
    ⭐ 個人的に成熟度が高いと思っている NewSQL を紹介
    TiDB YugabyteDB CockroachDB
    主な開発元 PingCAP 社 Yugabyte 社 Cockroach Labs
    GitHub Starの数 34900 8100 27900
    Contributorの数 841 378 598
    互換性 MySQL PostgreSQL / Cassandra PostgreSQL
    ストレージレイヤー TiKV(RocksDB) DocDB(RocksDBを改良) Pebble(RocksDBを改良)
    Kubernetes 対応
    tidb-operator


    Helm Chart
    yugabyte-operator


    Helm Chart
    cockroach-operator


    Helm Chart
    マネージドサービス TiDB Cloud YugabyteDB Managed CockroachDB Cloud
    ※各種数字は資料作成時点での数字です

    View full-size slide

  18. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    18
    実際に NewSQL を動かしてみよう!
    LET'S RUN NEWSQL

    View full-size slide

  19. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    19
    実際に NewSQL を動かしてみよう!
    ⭐ 便利なツール tiup を使おう
    TiDB は tiup というクライアントがあり、tiup を使うことで TiDB のクラス
    ターを簡単に構築することができます。


    簡単な動作確認やちょっと動かしてみたい、そんな場合は「tiup
    playground」を入力することで手元で動かすことができます。
    # tiup ͷΠϯετʔϧ


    $ curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh


    # playground ͷىಈ


    $ tiup playground

    View full-size slide

  20. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    20
    実際に NewSQL を動かしてみよう!
    ⭐ yugabyted start で起動
    YugabyteDB は「yugabyted start」で起動することができます。バイナリ
    は downloads.yugabyte.com で配布されています。


    手元で動かしてみたい、そんな場合は docker で動かすと便利です。
    # docker Ͱىಈ͕ศར


    $ docker run -d --name yugabyte \


    -p7000:7000 -p9000:9000 -p5433:5433 -p9042:9042 \


    -v ~/yb_data:/home/yugabyte/yb_data \


    yugabytedb/yugabyte:latest bin/yugabyted start \


    --base_dir=/home/yugabyte/yb_data --daemon=false


    View full-size slide

  21. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    21
    実際に NewSQL を動かしてみよう!
    ⭐ ブラウザの playground が便利
    CockroachDB はブラウザで実行できる playground があるので、動作を見て
    みたい場合は便利です。


    👉 https://www.cockroachlabs.com/docs/interactive-tutorials/sql-playground


    また、有志が作成した goki を使うことでもお手軽に試す事ができます


    👉 https://github.com/kota2and3kan/goki
    # 5ඖࣂ͍࢝ΊΔ


    $ goki create -n 5


    # 1ඖࡴ͢


    $ goki jet -g

    View full-size slide

  22. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    22
    本日のまとめ
    CONCLUSION

    View full-size slide

  23. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    23
    いまこそ NewSQL を使ってみよう! 本日のまとめ
    ⭐ NewSQL はイイゾ!


    データベース運用の時に頭を悩ませる様々な問題は NewSQL を採用することで解決する(かもしれ
    ない)


    Cloud Spanner が登場して以来、最近はいろいろな NewSQL が開発されています。MySQL や
    PostgreSQL との互換性を持っており、置き換えがしやすくなっています。


    NewSQL は各ノードが Write と Read をハンドリングできるので、冗長化も簡単


    本日紹介したソフトウェアはクラウドネイティブ志向で開発されており、耐障害性に優れていて
    Kubernetes との相性も良い製品です。是非触ってみてください。


    NewSQL を採用してデータベース運用を改善💪してみてはいかがでしょうか

    View full-size slide

  24. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    24
    最後に一言だけ!
    FINAL WORD!

    View full-size slide

  25. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi
    !"#$%&'(
    25
    株式会社サイバーエージェントでは


    共に働く人を募集しています
    「サイバーエージェント CIU」で今すぐ検索!

    View full-size slide

  26. いまこそNewSQLを使ってみよう!
    @makocchi
    HACKERS


    CHAMPLOO


    2023
    ご清聴ありがとうございました!

    View full-size slide