Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

MariaDB 10.3から利用できるSpider関連の性能向上機能・便利機能ほか

1,713 views

Published on

MariaDB 10.3で追加される、Spiderの機能を拡張する機能群などのご紹介。

Published in: Data & Analytics
  • Login to see the comments

MariaDB 10.3から利用できるSpider関連の性能向上機能・便利機能ほか

  1. 1. MariaDB 10.3から利用できる Spider関連の性能向上機能・便利機能ほか スパイラルアーム合同会社 Kentoku SHIBA
  2. 2. Spiderはどんなところで使われているか?
  3. 3. Spiderはどんなところで使われているか? Siemens データ品質分析基盤として、Spiderが 利用されている。 3つのSpiderノード、4つのデータノードで 3か月あたり、2000億レコードを扱っている。
  4. 4. Spiderはどんなところで使われているか? Tencent Games オンラインゲームの基盤としてSpiderが 利用されている。 396のSpiderノード、2800のデータノードで 100TBのデータを扱っている。
  5. 5. Spiderはどんなところで使われているか? Spiderをクラウド上のスケーラブルな DB as a serviseとして提供する話も あるようです。
  6. 6. Spiderで何ができるようになるのか?
  7. 7. SPIDER (MySQL/MariaDB) SPIDER (MySQL/MariaDB) Spiderで何ができるようになるのか? DB1 (MySQL/MariaDB) 1.リクエスト 2. 問い合わせを実行 3.レスポンス AP SPIDER (MySQL/MariaDB) アプリケーションは、1つのデータベースに接続するだけで、 大量のデータベースを意識せずに利用できる。 APAP AP AP DB2 (MySQL/MariaDB) DB3 (MySQL/MariaDB)
  8. 8. Spiderストレージエンジンとは? SpiderはMariaDBに 標準でバンドルされています。
  9. 9. 機能拡張 パーティション編
  10. 10. その1 ・検索条件のプッシュダウンのサポート データノードにより複雑な検索条件を 送り絞り込みを行うことができるようになる ため、ネットワーク転送量が減り、SQLの 応答性能が向上する。
  11. 11. その2 ・テーブルのCONNECT文字列のサポート 今までは、パーティションのCONNECT 文字列は使えたが、テーブルのCONNECT 文字列は無視されていたため、これを 利用できるように機能拡張。
  12. 12. その3 ・全文検索のサポート パーティショニングされたテーブルでも 全文検索が利用できるようになる機能拡張。
  13. 13. その4 ・空間検索のサポート パーティショニングされたテーブルでも 空間検索が利用できるようになる機能拡張。
  14. 14. その5 ・MRR(Multi Range Read)のサポート パーティショニングされたテーブルで、MRR が可能になり、Batched Key Access Joinに よるJOINの高速化ができるようになる 機能拡張。
  15. 15. その6 ・子テーブルでの パーティション・プルーニングのサポート 子テーブルがパーティショニングされた テーブルである場合でも、パーティション・ プルーニングができるようになる機能拡張。
  16. 16. その7 ・パーティション内部のソート高速化 パーティショニングされたテーブルのPKが クラスタインデックス以外の場合のソート 高速化のための機能拡張。 partition_skip_pk_sort_for_non_clustered_pk_table=on
  17. 17. その8 ・パラレル検索のサポート パーティショニングされたテーブルの ストレージエンジンがパラレル検索を サポートしている場合、パラレル検索が できるようになる機能拡張。
  18. 18. 機能拡張 MariaDB編
  19. 19. その9 ・任意のエラーコードでのレプリケーション リトライ レプリケーション失敗時、こちらで指定した 任意のエラーコードでリトライするように 機能拡張。 slave_transaction_retry_errors=1158,1159 slave_transaction_retry_interval=10
  20. 20. その10 ・UPDATE、DELETE処理の機能拡張 ストレージエンジンでUPDATE、DELETE 処理を高速処理するためのMariaDB側の 機能拡張。パーティション機能への機能拡張。
  21. 21. その11 ・集計処理の機能拡張 ストレージエンジン側で集計処理を高速化 するためのMariaDB側の機能拡張。
  22. 22. その12 ・ストアドプロシージャ内部で実行される SQLのログ出力機能 ストアドプロシージャ内部で実行される SQLをSQLログやSLOWログに出力する ための機能拡張。 sp_general_log=on sp_slow_query_log=on
  23. 23. その13 ・VPストレージエンジンのサポート VPストレージエンジンを使うための MariaDB側への機能拡張。パーティション 機能への機能拡張。
  24. 24. VPストレージエンジンとの組み合わせによる 多次元シャーディング
  25. 25. VPストレージエンジンとの組み合わせによる多次元シャーディング VPは、Vertical Partitioningの略です。 VPは複数の子テーブルを1つの (更新可能な)ビューとしてまとめることが できます。 同じプライマリキーを持つテーブルを プライマリキーでJOINしたビューと考えて 頂けると理解しやすいかと思います。 VPはクエリ毎にどの子テーブルを 利用するのが効果的かを判定して利用します。
  26. 26. VPストレージエンジンとの組み合わせによる多次元シャーディング これは、テーブルパーティショニングを うまく使いこなす際に役に立ちます。 テーブルパーティショニングは、パーティションの ルールに指定したカラムでの検索が高速なのですが ルールに指定したカラムが指定されない検索は 低速になることがあります。 また、テーブルにユニークキーがあると、 ユニークキーのカラムをパーティションのルールに 含めないといけないという制限があります。
  27. 27. 異なるルールのパーティションを利用した構成例 (1/2) 1.リクエスト 3.レスポンス APAPAP AP AP DB1 tbl_a (vp) Partition by col_a tbl_a1 Partition by col_b tbl_a2 select … from tbl_a where col_a = 1 create table tbl_a1( col_a int, col_b date, col_c int, primary key(col_a) )engine=innodb partition by … create table tbl_a2( col_a int, col_b date, col_c int, key idx1(col_a), key idx2(col_b) )engine=innodb partition by …
  28. 28. 異なるルールのパーティションを利用した構成例 (2/2) 1.リクエスト 3.レスポンス APAPAP AP AP select … from tbl_a where col_b = ‘2016-01-01’ create table tbl_a1( col_a int, col_b date, col_c int, primary key(col_a) )engine=innodb partition by … create table tbl_a2( col_a int, col_b date, col_c int, key idx1(col_a), key idx2(col_b) )engine=innodb partition by … DB1 tbl_a (vp) tbl_a1 tbl_a2 Partition by col_a Partition by col_b
  29. 29. VPストレージエンジンとの組み合わせによる多次元シャーディング そのため、異なる分割ルールで シャーディングされたSpiderテーブルを VPの子テーブルとして利用すると VPはこれらのSpiderテーブルを効果的に 使い分けます。
  30. 30. 異なるシャーデングルールを利用した構成例 (1/2) DB2 tbl_a 1.リクエスト 3.レスポンス DB3 tbl_a DB4 tbl_a APAPAP AP AP DB1 tbl_a (vp) DB5 tbl_a Partition by col_a tbl_a1(spider) Partition by col_b tbl_a2(spider) select … from tbl_a where col_a = 1
  31. 31. 異なるシャーデングルールを利用した構成例 (2/2) DB2 tbl_a 1.リクエスト 3.レスポンス DB3 tbl_a DB4 tbl_a APAPAP AP AP DB1 tbl_a (vp) DB5 tbl_a Partition by col_a tbl_a1(spider) Partition by col_b tbl_a2(spider) select … from tbl_a where col_b = 1
  32. 32. 機能拡張 プラグイン編
  33. 33. その14 ・WARNINGのログ出力機能 SQL_ERROR_LOGプラグインに、 WARNINGを記録するための機能拡張。
  34. 34. MariaDBのイベントのご紹介
  35. 35. MariaDB Developer’s Meetup in China MariaDB Foundation主催のDeveloper向けコミュニティイベントは、これまで過去 にアメリカやヨーロッパで開催されておりましたが、今回アジアで初めて開催されま す。 https://mariadb.org/2017-2-developers-unconference-and-related-events- shenzhen/ 【主旨】 MariaDBを使用したプロダクトの開発者やMariaDBの開発者やプラグインの開発者、 コントリビュータ向けのイベントで、両者でMariaDBの機能向上のため、議論を交わす イベントです。 MariaDB開発やコントリビュータとの交流を深められ、相乗効果が得られる密度の濃い イベントです。 【開催日、場所】 日程:2017年11月13日~11月17日 場所:中国 深セン市 https://www.meetup.com/MariaDB-Developers/events/241873269/
  36. 36. M/18 in NYC (2018年2月の開催決定!) 2017年4月にMariaDB.comが初めて独自に開催したカンファレンスを、2018年の2月 に再度NYCで開催されます。本カンファレンスはMariaDBの新機能や他社の導入事例、 また使用方法などの講演を2日間に渡り聞くことができます。 日程:2018年 2月26日、27日 場所:NYC コンラッドNYホテル https://m18.mariadb.com/
  37. 37. http://spiderse.com Kentoku SHIBA (kentokushiba [at] gmail [dot] com) Any Questions? You can see me later! Come to visit me!! ご清聴ありがとうございました!

×