Rails: RedisとRediSearchで時系列データを扱う(翻訳)

概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: RediSearch and time series data 原文公開日: 2018/04/01 著者: Dmitry Polyakovsky(@dmitrypol) Rails: RedisとRediSearchで時系列データを扱う(翻訳) 前回の記事では、時系列データをRedisとElasticSearchの間で統合する方法を探りました。今回はさらにその先に進んで、RediSeatchモジュールを用いるRedisで時系列データを検索する方法をご紹介します。 私たちは、Ruby on Railsフレームワークを用いて構築された国内規模の小売チェーン向けのと同じものを概念実証(POC)アプリとして用いることにします。Webサイトではユーザーがさまざまな対話的操作で検索(サイトに来るユーザーの郵便番号だったり、ユーザーが探している製品だったり)を行えるようにしたいと思います。 時系列データでよくあるアプローチは、何らかの周期(1日単位が多い)でインデックスを作成することです。続いて、古いインデックスを削除する(または別のデータストアに移動する)プロセスを定期的に実行して、プライマリのRedis DBには直近X日のデータのみを保持します。 インデックスを日毎に分割する ロジックをカプセル化するため、レコードを作成して適切なインデックスに挿入するクラスを別途ひとつ作成します。 # config/initializers/redis.rb REDI_SEARCH = Redis.new host: ‘localhost’, … # app/services/ class RediSearchClient def initialize time: nil, index_per_day: nil, index_pattern: nil @time = time || Time.now @index_per_day = index_per_day || true @index_pattern = … Continue reading Rails: RedisとRediSearchで時系列データを扱う(翻訳)