大量のロードを実行しているPostgreSQL dbがあります。このロードをできるだけ速くしたいと思います。すでにコピーコマンドなどを使っています。
私は timescaledb について、および挿入パフォーマンスの向上をどのように提供するかについて読んでいます。ただし、挿入のパフォーマンスのみに関心がある場合は、通常のテーブルではなくハイパーテーブルを使用することの欠点はあるのでしょうか。
(タイムスケールの人はこちら。)
はい、TimescaleDBハイパーテーブルでは、通常のテーブルよりもはるかに高い挿入率が得られるはずです。
ハイパーテーブルの主な欠点は、内部スケーリングの方法に関連していくつかの制限があることです。特に:
すべてのパーティション化キーが(そのプレフィックスに)含まれている場合にのみ、キーを一意としてマークできます。したがって、時間列でパーティションを作成する場合、時間列は一意であるか、または(time、device_id)で一意の複合キーを構築できます。しかし、これは主キーとして標準の自動インクリメントIDを構築できないことを意味します(主キーは定義UNIQUEであることに注意してください)。しかし、これは通常、時系列データには意味がありません。
外部キー制約fromハイパーテーブルtoを通常のテーブルとして定義できますが、現在その逆は許可されていません:通常のテーブルからのFK toハイパーテーブル。 (ただし、上記のUNIQUE制約の制限と同じですが、これが意味をなさないか、設計できる場合があります。)
他に質問がある場合は、ドキュメント(docs.timescale.com)またはコミュニティSlack(slack.timescale.com)が役立ちます。