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

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

Avatar for makocchi makocchi
October 07, 2023

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

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

Avatar for makocchi

makocchi

October 07, 2023
Tweet

More Decks by makocchi

Other Decks in Technology

Transcript

  1. 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
  2. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ |

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

    @makocchi !"#$%&'( 4 NewSQL について知る LEARN ABOUT NEWSQL
  4. 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のアーキテクチャを参考にいろいろなソフトウェアが世の中に出てきまし た。
  5. 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とは・・・   表にまとめるとこんな感じになります
  6. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ |

    @makocchi !"#$%&'( 7 NewSQL について知る ⭐ NewSQL だと何が嬉しいの? 従来のデータベース運用の課題が解決する(かもしれない) 個人的に思っている従来のデータベース運用にありがちな課題 効率よくスケールすることができない データが増えてくるとシャーディングしないとパフォーマンスが劣化してくる マルチマスター構成を組んだり運用したりするのがめんどくさい などなど。。。
  7. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ |

    @makocchi !"#$%&'( 8 NewSQL について知る ⭐ NewSQL のアーキテクチャについて知ろう NewSQL は SQL を処理するコンポーネントと、データを保持するコンポーネントに分かれて構成されてい るケースがほとんどです。 例えば処理性能は必要ないけれどディスク容量だけを拡張させたい、というシナリオの場合はデータを 保持するコンポーネントだけを拡張させるといったことが可能です。 もちろん、ディスク容量はそのままで処理性能だけがほしいといったシナリオにも対応できます。 このように、データベースのノード単位ではなく、コンポーネント単位で拡張することで必要なリソース のみを拡張することが可能で、効率よくデータベースを拡張することが可能な点が特徴です。
  8. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ |

    @makocchi !"#$%&'( 9 NewSQL について知る ⭐ NewSQL のアーキテクチャについて知ろう 図にしてみるとこんな感じ 👈 従来のデータベースの構成 NewSQL ではそれぞれが独立してスケールできる 👉
  9. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ |

    @makocchi !"#$%&'( 10 NewSQL について知る ⭐ NewSQL のアーキテクチャについて知ろう 2 シャーディングが必要ないといった点も NewSQL を使う利点として挙げられます。 データの肥大化に伴うシャーディングの運用は手間がかかりますし、何よりデータベースを参照するアプリ ケーション側にもロジックが必要になります。 NewSQL ではデータは自動的に分散して配置され、シャーディングしなくてもよいケースがほとんどです。 また、スケールアウト/インさせた場合にも自動でリシャーディングしてくれます。これも NewSQL を使う 上でのメリットでしょう。
  10. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ |

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

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

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

    @makocchi !"#$%&'( 14 NewSQL にはどのようなソフトウェアがあるかを知る ⭐ 個人的に成熟度が高いと思っている NewSQL を紹介 TiDB は主に PingCAP 社によって開発されているオープンソースの NewSQL ソフトウェアです。 MySQL との高い互換性を持っており、従来のリレーショナル構造 に加えて列志向のデータも同時に保持(※)できる点が特徴です。 ※ HTAP(Hybrid Transaction Analytical Processing)
  14. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ |

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

    @makocchi !"#$%&'( 16 NewSQL にはどのようなソフトウェアがあるかを知る ⭐ 個人的に成熟度が高いと思っている NewSQL を紹介 CockroachDB は主に Cockroach Labs によって開発されている オープンソースの NewSQL ソフトウェアです。 YugabyteDB と同じく PostgreSQL との互換性を持っています。 名前の由来はもちろん、しぶとく生きるアレです
  16. 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 ※各種数字は資料作成時点での数字です
  17. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ |

    @makocchi !"#$%&'( 18 実際に NewSQL を動かしてみよう! LET'S RUN NEWSQL
  18. 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
  19. 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
  20. 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 <node id>
  21. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ |

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

    @makocchi !"#$%&'( 23 いまこそ NewSQL を使ってみよう! 本日のまとめ ⭐ NewSQL はイイゾ! データベース運用の時に頭を悩ませる様々な問題は NewSQL を採用することで解決する(かもしれ ない) Cloud Spanner が登場して以来、最近はいろいろな NewSQL が開発されています。MySQL や PostgreSQL との互換性を持っており、置き換えがしやすくなっています。 NewSQL は各ノードが Write と Read をハンドリングできるので、冗長化も簡単 本日紹介したソフトウェアはクラウドネイティブ志向で開発されており、耐障害性に優れていて Kubernetes との相性も良い製品です。是非触ってみてください。 NewSQL を採用してデータベース運用を改善💪してみてはいかがでしょうか
  23. HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ |

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

    @makocchi !"#$%&'( 25 株式会社サイバーエージェントでは 共に働く人を募集しています 「サイバーエージェント CIU」で今すぐ検索!