Database design 卡桑德拉数据建模查询

Database design 卡桑德拉数据建模查询,database-design,cassandra,nosql,Database Design,Cassandra,Nosql,我目前正在学习ApacheCassandra和nosql数据建模方面的新知识。目前,我正在尝试构建一个系统,其中我有以下字段: latitude | time_forecast | longitude | forecast_request | rh | swflx | temp ----------+---------------------+------------+------------------+--------

我目前正在学习ApacheCassandra和nosql数据建模方面的新知识。目前,我正在尝试构建一个系统,其中我有以下字段:

 latitude | time_forecast       | longitude  | forecast_request | rh                 | swflx              | temp
----------+---------------------+------------+------------------+--------------------+--------------------+--------------------
    41.45 | 2016-04-26 17:00:00 | -8.6166667 |  2016-04-26_0000 | 0.6161368489265442 |  397.4789733886719 | 290.44512939453125
    41.45 | 2016-04-26 18:00:00 | -8.6166667 |  2016-04-26_0000 |  0.673031210899353 |  261.1000061035156 |  289.3315734863281
    41.45 | 2016-04-26 19:00:00 | -8.6166667 |  2016-04-26_0000 | 0.8489508032798767 | 27.700000762939453 |  286.8634948730469
    41.25 | 2016-04-26 17:00:00 | -8.6166667 |  2016-04-26_0000 | 0.6555368900299072 |  395.1789855957031 |  289.8011169433594
    41.25 | 2016-04-26 18:00:00 | -8.6166667 |  2016-04-26_0000 | 0.7271312475204468 | 203.39999389648438 |  288.5975646972656
    41.25 | 2016-04-26 19:00:00 | -8.6166667 |  2016-04-26_0000 | 0.8572507500648499 | 30.989999771118164 |  286.7254943847656
   41.456 | 2016-04-26 17:00:00 | -8.6166667 |  2016-04-26_0000 | 0.6161368489265442 |  397.4789733886719 | 290.44512939453125
   41.456 | 2016-04-26 18:00:00 | -8.6166667 |  2016-04-26_0000 |  0.673031210899353 |  261.1000061035156 |  289.3315734863281
   41.456 | 2016-04-26 19:00:00 | -8.6166667 |  2016-04-26_0000 | 0.8489508032798767 | 27.700000762939453 |  286.8634948730469
这就是我创建表的方式:

create table if not exists forecast 
(   
    latitude varchar,
    longitude varchar,
    time_forecast varchar,
    forecast_request varchar,       
    swflx varchar,      
    temp varchar,
    rh varchar,

    PRIMARY KEY(latitude, time_forecast, longitude)
)

WITH CLUSTERING ORDER BY (time_forecast ASC);

使用此模型,
time\u forecast
不能作为我的主键,因为它不是唯一的

这是我唯一可以插入数据而不做任何更改的方法,但我现在面临的问题是,我无法仅通过
time\u forecast
查询数据库

在本例中,对于每个坐标(纬度和经度),我都会预测未来3小时,我无法避免使用复合键

您如何对数据库进行建模,使我能够仅从一系列
时间\u预测值中检索坐标和变量

您将如何对数据库进行建模,使我能够仅从一系列时间预测值中检索坐标和变量

然后您可以按时间范围查询\u预测:

SELECT * FROM forecast
WHERE location = 'California'
AND time_forecast >= 'xxx' 
AND time_forecast <= 'yyy';
从预测中选择*
其中位置='California'
和时间预测>='xxx'
和时间预测
您将如何对数据库进行建模,使我能够仅从一系列时间预测值中检索坐标和变量

然后您可以按时间范围查询\u预测:

SELECT * FROM forecast
WHERE location = 'California'
AND time_forecast >= 'xxx' 
AND time_forecast <= 'yyy';
从预测中选择*
其中位置='California'
和时间预测>='xxx'

你有没有研究过数据类型?使用这种类型,您可以使时间戳唯一,并将其用作主键。您研究过数据类型吗?使用这种类型,您可以使您的时间戳唯一,并将其用作主键。是的,这是一个很好的解决方案!如果我想按特定的纬度或经度进行搜索,我想我必须构建另一个表?你认为呢?是的,要按纬度或经度搜索,你可以:1)使用另一个表手动反规范化2)使用物化视图进行自动反规范化这是非常强大的功能。我可以问你,在XDB或Cassandra之间,你个人会选择什么来处理大量数据,基本上是时间序列天气预报?是的,很好的解决方案!如果我想按特定的纬度或经度进行搜索,我想我必须构建另一个表?你认为呢?是的,要按纬度或经度搜索,你可以:1)使用另一个表手动反规范化2)使用物化视图进行自动反规范化这是非常强大的功能。请问,在XDB或Cassandra之间,你个人会选择什么来处理大量数据,基本上是时间序列天气预报?