私のアプリケーションはCrateDBにパフォーマンスの時系列データを保存しています。セットアップの権利を得るためには、1日に約72Mレコードになるため、正しくスケーリングする必要があるため、いくつか質問があります。私の目標は、Grafanaと結果のデータを視覚化することであり、現在、私は心の中で次のような構造を持っている:CrateDBにパフォーマンスデータを格納するためのベストプラクティスは何ですか?
CREATE TABLE metrics (
ts TIMESTAMP,
hostname STRING,
servicename STRING,
perfdata OBJECT(DYNAMIC)
)
// for example
{
"hostname": "localhost",
"servicename": "ping",
"timestamp": 1483699527,
"perfdata": {
"rta": {
"current": 0.5,
"unit": "ms",
"warn": 100,
"critical": 200
},
"pl": {
"current": 0,
"unit": "%",
"warn": 10,
"crit": 20
}
}
}
重要なビットは、ホストベース/サービス名、メトリックの名前と値、およびタイムスタンプです。代替スキーマにもなります:
CREATE TABLE metrics (
ts TIMESTAMP,
hostname STRING,
servicename STRING,
metric OBJECT(DYNAMIC) AS (
unit STRING,
name STRING,
value DOUBLE,
)
)
データを保存するにはどちらの方法が適していますか?パーティショニングも必要ですか?私の集計は、通常、最後の24時間を表示し、まれに最後の月を示します...
ありがとう!