我的应用程序将性能时间序列数据存储在CrateDB中,为了使设置正确,我有几个问题,因为它将每天大约有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小时,很少最后一个月...
谢谢!