凤凰表演

时间:2019-02-21 09:06:58

标签: sql time-series hbase phoenix

最近我正在做一些凤凰性能测试。我需要一个高性能的系统,该系统可以处理数十亿行的大量时间序列数据(deviceID,timestamp,someDoubleValue)。

  

DDL:如果不存在,则创建表table_timestamp(不显示DEVICEID VARCHAR)   NULL,CREATED_DATE TIMESTAMP不为NULL,METRIC_DOUBLE DOUBLE,   METRIC_VALUE INTEGER CONSTRAINT PK主键(DEVICEID,CREATED_DATE   ROW_TIMESTAMP))SALT_BUCKETS = 4;

读取:最受欢迎的读取方案之一是获取传感器的当前状态。

我们正尝试通过下一个查询解决此问题:

SELECT * FROM TABLE_TIMESTAMP WHERE DEVICEID='const' AND 
CREATED_DATE = (SELECT MAX(CREATED_DATE) 
FROM TABLE_TIMESTAMP WHERE DEVICEID='const' and 
CREATED_DATE <= TO_TIMESTAMP('2018-01-01 00:00:00.001'))

查询执行时间太长。当前,查询时间大约为0.9-1.0s,我认为这是因为它读取DEVICEID的所有数据并计算子查询中的最大数据。根据我对HBase的理解,似乎HBase中的类似查询可以更快地工作。

有人有什么主意吗?

0 个答案:

没有答案