LoginSignup
3
2

More than 5 years have passed since last update.

PipelineDBのバージョンアップ履歴

Posted at

アドベントカレンダー2日目という事で運用する時のTipsを書こうと思いましたが、他に運用している人を知らないので予定を変更します。
PipelineDBは頻繁にバージョンアップされているので、その内容を遡ってみたいと思います。

なお、私は今PipelineDBのEnterpise版(write scale)の検証をしていますが、NDAがあるのでそれらの情報を書くのはNGっぽいです。
というわけで、当たり障りの無いアップデート情報と、その解説(気になったものだけをピックアップ)をします。
性能改善のアップデートが多いので最新版を使う事を推奨します。

0.8.0

  • 起動ポートがpostgresqlと同じポートになりました
  • Smarter Step-sizes for Sliding Window Queries
  • その他大量の改善

Sliding Windowの改善とは、
streamに高頻度でデータを投入すると、実体のデータを持つテーブル(mrel0)に細かい単位で記録されていってしまいます。continuous viewを参照する時はこの実体テーブルを集計して結果を返すため、大量のレコードをselect, groupingする事になります。
このバージョンから、WHERE句の arrival_timestamphourminute等の関数をサポートするようになりました。hourminutedate_truncのaliasなので、date_truncで出来る事は全てサポートされています。
これを指定する事で、実体のデータもこの単位で作るようになるため、大幅な性能改善をする事ができます。

0.8.1

このバージョンから、amazon-linuxのrpmでインストールした時に各スクリプトの権限設定がぶっ壊れているのが直りました。0.8.0では、pipeline-init等に適切なパーミッションが設定されていませんでした。

また、このバージョンから\dでcontinuous viewが表示されなくなりました。
(最新の0.8.4より後のnightly buildでは直っています)

0.8.3

  • アドホックな継続クエリのサポート
  • TopKは今まで固定長の型しかサポートしなかったが、可変長の型をサポートするように
  • Keyed Min/Max のサポート
  • step_factorを使ってSliding Windowを調整できるように
  • 1個のstreamから複数のcvを作る時の性能改善

padhocというコマンドラインツールが追加され、アドホックにCVを試せるようになりました。

padhoc -c 'select x::text, count(*) from stream group by x'

このような感じで使います。
コンフィグファイルでadhoc queryを有効にしてサーバを起動しないと使う事はできません。

TopKは今まで固定長の型(intなど)しかサポートしませんでしたが、VARCHAR等もサポートするようになりました。

Keyed Min/Maxとは、その名の通りkeyed_max keyed_minをサポートするするようになりました。keyed_max(arg1, arg2)は、arg1が最大のarg2を保持するためのものです。
ちょっと気になるのは、arg1が同じ値の場合に最後のarg2ではなく最初のarg2が返ってくる点です。

0.8.4

  • マルチコア環境下での性能改善
  • 書き込みI/Oの改善
  • 厳密な異なり数の算出が可能に

書き込みI/Oについて、
streamにデータが連続で来ますが、例えばbloomFilterやHLLの場合、同じ値が連続して来た場合に律儀に更新しに行く必要はありません。このバージョンから、同じ値が連続で来ている場合は、後続の値の更新はしないようになりました。

厳密な異なり数について、
今までは、count(distinct column) とすると確率的データ構造のHyperLogLogを使って算出します。厳密な異なり数は出せなかったのですが、このバージョンから exact_count_distinct(column) を使う事ができるようになりました。

まとめ

というわけで、最新版を使いましょう。
アップグレードする時にデータを移行したい場合は、以下のような方法で出来るようです。
(データを消しても良いならクリーンインストールをオススメします)

3
2
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
3
2