我正在使用Hbase与phoenix进行交互式分析,我试图设计一个IOT项目的hbase行键,但我不确定我是否做得对。HBase行关键设计
我的数据库可以表示成这样的:
Client--->Project ----> Cluster1 ---> Cluster 2 ----> Sensor1
Client--->Project ----> Building ----> Sensor2
Client--->Project ----> Cluster1 ---> Building ----> Sensor3
我所做的是(CLIENT_ID,PROJECT_ID,CLUSTER_ID,Building_iD,SensorID)的复合主键
(1,1,1#2,0,1)
(1,1,0,1,2)
(1,1,1,1,3)
而且我们可以指定多个集群或建立一个分隔符#1#2#454等 ,如果我们没有节点,我们插入0.
而在第e列族中,我们将具有传感器的值和倍数meta_data。
我的问题是这个hbase行的关键设计的请求,说我们希望所有传感器的ID为1的集群是有效的?
我想也只是把密钥的Sensor_ID,TimeStamp,并把所有的根系列,但这个设计我不知道它很适合我的要求。
我对这个项目的第三个想法是将neo4j用于数据的生根和hbase。
任何人都有类似问题的经验,以指导我设计这个数据库的最佳方法?
您是否知道给定客户可能拥有的项目/群集/传感器的最大数量? – Gevorg
每个传感器产生多少个数据点? – Gevorg
@Gevorg不,我没有任何最大的数字,它是一个top10和top60传感器,所以它每天可以产生大约1440个数据点/传感器,最近我试图查找时间序列数据库,很适合在hadoop生态系统像opentsdb,有什么建议吗? – azelix