Database design 将RDBMS迁移到Cassandra
我有一个RDBMS数据库,其中包含以下表格: 机场(iataPK,机场、城市、州、国家、拉丁美洲、拉丁美洲) 取消\u原因(cod\u取消主键,说明) 制造商(id\u制造商主键,制造商名称) 型号(id\u型号主键,型号名称,id\u制造商FK) 航空公司(航空公司代码主键,说明) 飞机类型(id\u AirplaneTypePK,飞机类型) 发动机类型(id\u发动机主键,发动机类型) 飞机类型(id\u飞机PK,飞机类型) 飞机(尾号PK、id\U型号FK、id\U飞机FK、航空公司代码FK、id\U发动机FK、发行日期、状态、年份) 航班(id\u航班PK、cod\u取消FK、尾号FK、iata\u始发地FK、iata\u目的地FK、年、月、月日、周日、离港时间、离港时间、到达时间、离港时间、飞行次数、到达时间、离港时间、起飞时间、离港距离、滑行时间、起飞时间、取消)(已改道) 注意:PK-主键;FK-外键 我正在对RDBMS和Cassandra数据库进行比较研究。我的目标是将此数据库迁移到Cassandra,并在两者中运行一些查询,以便在类似情况下比较两者的性能 有谁能告诉我最好的方法吗?我应该如何用Cassandra对数据库建模?Cassandra查询语言(CQL)3.3版提供了创建几乎完全相同的关系表副本的语义。这不是最规范的方法,但它肯定可以帮助您解决基于注释的紧急情况 因此,使用CQL您可以创建:Database design 将RDBMS迁移到Cassandra,database-design,cassandra,database-migration,rdbms,nosql,Database Design,Cassandra,Database Migration,Rdbms,Nosql,我有一个RDBMS数据库,其中包含以下表格: 机场(iataPK,机场、城市、州、国家、拉丁美洲、拉丁美洲) 取消\u原因(cod\u取消主键,说明) 制造商(id\u制造商主键,制造商名称) 型号(id\u型号主键,型号名称,id\u制造商FK) 航空公司(航空公司代码主键,说明) 飞机类型(id\u AirplaneTypePK,飞机类型) 发动机类型(id\u发动机主键,发动机类型) 飞机类型(id\u飞机PK,飞机类型) 飞机(尾号PK、id\U型号FK、id\U飞机FK、航空公司代码F
CREATE TABLE airport( id text PRIMARY KEY, airport text,
city text, state text, country text, lat float, long float);
然后继续创建其他类似的表
要将csv加载到表中,请使用:
COPY airport (id, airport, city, state, country, lat, long)
FROM 'airport.csv' WITH DELIMITER = ';' AND HEADER = TRUE;
在Cassandra中,您可能不应该使用UUID并在加载值时生成这些UUID
在我看来,飞机可以非标准化,所以我会对它进行建模
作为一个条目,其中,飞机是一个超级列,引擎和类型是列。使用CQL 3.3,您可以通过这种方式建模,也可以通过为每个实体创建传统表的方式建模
请参阅此以了解详细信息
注意事项:
关于关系,您可能需要放弃基于主键(PK)、外键(FK)的关系的概念概念和相关的硬约束。要将数据迁移到Cassandra NoSQL,您将不依赖硬链接,而是依赖于这些实体被链接的信任。与从强类型语言迁移到弱类型语言一样,您将经历的唯一损失将是数据库链接。
你仍然可以拥有你的ID,你仍然可以维护基于ID的链接,但是不会有数据库强制的完整性约束。你也许可以放弃自动生成的ID。
以下是一些其他非常适用的阅读材料:
CREATE TABLE airport( id text PRIMARY KEY, airport text,
city text, state text, country text, lat float, long float);
然后继续创建其他类似的表
要将csv加载到表中,请使用:
COPY airport (id, airport, city, state, country, lat, long)
FROM 'airport.csv' WITH DELIMITER = ';' AND HEADER = TRUE;
在Cassandra中,您可能不应该使用UUID并在加载值时生成这些UUID
在我看来,飞机可以非标准化,所以我会对它进行建模
作为一个条目,其中,飞机是一个超级列,引擎和类型是列。使用CQL 3.3,您可以通过这种方式建模,也可以通过为每个实体创建传统表的方式建模
请参阅此以了解详细信息
注意事项:
关于关系,您可能需要放弃基于主键(PK)、外键(FK)的关系的概念概念和相关的硬约束。要将数据迁移到Cassandra NoSQL,您将不依赖硬链接,而是依赖于这些实体被链接的信任。与从强类型语言迁移到弱类型语言一样,您将经历的唯一损失将是数据库链接。
你仍然可以拥有你的ID,你仍然可以维护基于ID的链接,但是不会有数据库强制的完整性约束。你也许可以放弃自动生成的ID。
以下是一些其他非常适用的阅读材料:
为什么你要强调PK/FK关系?在Cassandra中这对你很重要吗?你的测试用例/基准是什么?PK/FK关系与关系模型相关。我需要迁移这个sche