【问题标题】:Denormalizing two column families in Cassandra在 Cassandra 中对两个列族进行非规范化
【发布时间】:2013-08-13 10:50:42
【问题描述】:

我想在 Cassandra 中进行查询,该查询需要来自两个列族的数据。在 sql 中,我们通过外键和连接来完成,但在 Cassandra 中,这些概念没有定义。所以我想对 Cassandra 中的两个列族进行非规范化,但我不知道该怎么做。 任何人都可以帮助我吗? 谢谢。

【问题讨论】:

  • 也许向我们展示您的架构?
  • 我有两个列族要反规范化。第一:站(IDStation 主键,代码,名称,位置,主管,城市代码)..... 第二:信息(IDInf 主键,IDstation,日期、时间、温度、湿度、压力)...请告诉我如何对这些列族进行非规范化...谢谢
  • 最后一个问题,是站和信息1..1的关系还是一个站可以有多个信息条目?

标签: cassandra denormalization


【解决方案1】:

Denormalization 表示您根据多个表中join 的结果创建一个表。

在您的示例中,您有以下两个表:

Station (IDStation primary key, code, name, location, supervisor, citycode);
Information (IDInf primary key, IDstation, date, time, temprature, humidity, pressure);

其中 Information 具有 Station 表的外键。他们的非规范化表如下所示

StationInfo (
  IDStation, 
  code,
  name,
  location,
  supervisor,
  citycode, 
  IDInf,
  date,
  time,
  temprature,
  humidity,
  pressure,
  PRIMARY KEY (IDStation, IDInf)
);

同一个站有不同的信息就是不同的站。

如果Station和Information之间的关系是1:1的映射关系,那么它们可以只用一个ID来描述:

StationInfo (
  IDStation primary key, 
  code,
  name,
  location,
  supervisor,
  citycode, 
  date,
  time,
  temprature,
  humidity,
  pressure
);

【讨论】:

    猜你喜欢
    • 2016-03-24
    • 2016-05-13
    • 2015-09-22
    • 1970-01-01
    • 2023-03-29
    • 2013-03-08
    • 2016-11-12
    • 2018-12-12
    • 1970-01-01
    相关资源
    最近更新 更多