首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cassandra上不一致数据的数据模型

Cassandra上不一致数据的数据模型
EN

Stack Overflow用户
提问于 2013-03-22 03:14:56
回答 2查看 159关注 0票数 1

我对NoSQL和Cassandra非常陌生,但是我的架构委员会告诉我要使用它。我只想了解如何将关系数据库模型转换为noSQL。

我有一个数据库,其中用户需要将数据从excel或csv文件导入到数据库中。此文件每次可能有不同的列。

例如,在excel文件中,数据可能如下所示:

代码语言:javascript
复制
Name| AName| Industry| Interest | Pint |Start Date | End date

x | 111-121 | IT | 2 | 1/1/2011 | 1/2/2011

x | 111-122 | hotel | 1 | "" | ""

y| 111-1000 | IT | 2 | 1/1/2011 | 1/2/2011

上传后,下一个excel文件可能如下所示

代码语言:javascript
复制
Name| AName| Industry| Interest | Pint |Start Date | isTrue | isNegative

x | 111-121 | IT | 2 | 1/1/2011 | 1/2/2011 | yes | no

x | 111-122 | hotel | 1 | "" | no | no

y| 111-1000 |health | 2 | 1/1/2010 | yes|""

我不会预先知道在导入数据时要创建哪些列。我完全搞不懂noSQL,也不知道如何在不了解表结构的情况下如何导入数据

EN

回答 2

Stack Overflow用户

发布于 2013-03-22 03:57:06

首先,基本事实是列族(cassandra中的"table")是由行组成的。每一行都有一个行键和一些键/值对(称为列)。对于行中的特定列,该列的名称是该对的键,该列的值是该对的值。仅仅因为您在一行中具有某个名称的列,并不一定意味着您将在任何其他行中具有该名称的列。

在内部,行键、列名和列值存储为字节数组,您需要使用序列化程序将程序数据转换为字节数组,然后再转换回来。

如何定义行键、列名和列值由您决定。

一种方法是让CF中的一行对应于Excel中的一行。您必须确定将提供唯一id的一个Excel列,并将其存储在行键中。剩余的Excel列可以一对一地存储在cassandra列中。这使您在大多数列名上非常灵活,但您必须在某个地方有一个惟一的键值。对于您使用的任何存储方案,唯一键要求始终有效。

还有其他的存储方案,但它们都归结为您在Excel中定义行键是什么,以及如何将Excel数据分解为键/值对。

票数 0
EN

Stack Overflow用户

发布于 2013-03-22 20:26:13

查看一些noSQL模式,我强烈建议阅读Pat Helland的“建立在快速沙子上”

一些好的模式(使用或不使用PlayOrm)...http://buffalosw.com/wiki/Patterns-Page/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15556190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档