6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Amazon Aurora に Mroonga全文検索は可能か

Posted at

2020-01-25 の第28回 中国地方DB勉強会 in 岡山 に参加してきました。

※シリアルナンバーが28まで伸びてる地方IT勉強会ってすごい

最後のセッションはクリアコード 堀本さんの「Amazon RDS + Amazon EC2 + ロジカルレプリケーションを使った低コスト高速全文検索

自分の担当productはAurora MySQLなので、「MySQL+mroongaでもこの話は成立するんでしょうか」と質問しました。
「MySQLのリプリケーションがPostgreSQLロジカルレプリケーションと同様に機能拡張差があるサーバ間でできるなら、いけそうに思います。実績があるかどうか今この場ではわかりません」

ドキュメントベースで調べてみました。

Aurora から EC2 MySQLへレプリケーション

Aurora と MySQL との間、または Aurora と別の Aurora DB クラスターとの間のレプリケーション

MySQL と互換性があるため、MySQL データベースと Amazon Aurora MySQL DB クラスターとの間のレプリケーションを設定できます。

いいぞ。Aurora と MySQL は物理層には互換がありませんから「ロジカル」なはずですよね。

MySQL のバージョン 5.5 以降を実行することをお勧めします。

互換バージョン揃えなくても大丈夫っぽいし

Amazon RDS MySQL DB インスタンス(Amazon RDS の外部 MySQL データベース)または別の Aurora MySQL DB クラスターにレプリケートできます。

RDSじゃない、外部のMySQLにも言及あります。第1関門クリア

MySQLレプリケーションはテーブル単位でもできるか

全文検索の対象にしたいのはデータベース全体ではなく一部になるはず。

MySQLリファレンスマニュアルの テーブルレベルレプリケーションオプションの評価

--replicate-ignore-table または --replicate-wild-ignore-table オプション

ありますね。 --replicate-ignore-db も当然あると。第2関門クリア

Mroonga と PGroonga は同等機能か

とくにスライドのPGroongaで注目したところ

  • SQL CREATE INDEX で全文検索index作成
  • SQL INSERT で全文検索登録
  • SQL WHERE などで使える全文検索演算子
  • SQL LIKE で全文検索index活用
  • 読みがな検索
  • 異体字同一視

Mroonga v9.11 documentation » 4. チュートリアル » 4.4.2. 全文検索の利用方法

検索演算子はなくて、検索構文がちょっと違うのかな。

Mroonga v9.11 documentation » 5. リファレンス » 5.2. SQL commands

LIKE の言及も無い。
でも、大体いけそうな感じ。

FULLTEXT INDEX (content) COMMENT 'tokenizer "TokenMecab"'

Mecabも使っているので、読みがな検索、異体字同一視もいけてそう。第3関門クリア
他の Tokenizer として Trigram なんかはあって差し替え可能な設計になってるけれど、"sudachi"はまだ無さそう。

結論

堀本さんのRDS PostgreSQL + EC2 PostgreSQL+PGroonga の構成は Aurora MySQL とMroongaでも試してみる価値あり。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?