web-dev-qa-db-ja.com

timescaledbでハイパーテーブルを使用して、挿入率を向上させることはできますか?

大量のロードを実行しているPostgreSQL dbがあります。このロードをできるだけ速くしたいと思います。すでにコピーコマンドなどを使っています。

私は timescaledb について、および挿入パフォーマンスの向上をどのように提供するかについて読んでいます。ただし、挿入のパフォーマンスのみに関心がある場合は、通常のテーブルではなくハイパーテーブルを使用することの欠点はあるのでしょうか。

5
ThatDataGuy

(タイムスケールの人はこちら。)

はい、TimescaleDBハイパーテーブルでは、通常のテーブルよりもはるかに高い挿入率が得られるはずです。

ハイパーテーブルの主な欠点は、内部スケーリングの方法に関連していくつかの制限があることです。特に:

  • すべてのパーティション化キーが(そのプレフィックスに)含まれている場合にのみ、キーを一意としてマークできます。したがって、時間列でパーティションを作成する場合、時間列は一意であるか、または(time、device_id)で一意の複合キーを構築できます。しかし、これは主キーとして標準の自動インクリメントIDを構築できないことを意味します(主キーは定義UNIQUEであることに注意してください)。しかし、これは通常、時系列データには意味がありません。

  • 外部キー制約fromハイパーテーブルtoを通常のテーブルとして定義できますが、現在その逆は許可されていません:通常のテーブルからのFK toハイパーテーブル。 (ただし、上記のUNIQUE制約の制限と同じですが、これが意味をなさないか、設計できる場合があります。)

他に質問がある場合は、ドキュメント(docs.timescale.com)またはコミュニティSlack(slack.timescale.com)が役立ちます。

6
Mike Freedman