我读了几个主题,但我迷路了.我对此很陌生.我想存储巨大的稀疏矩阵并有几个想法,但可以在它们之间进行选择.这是我的需求:
所以,这是我的想法:
请帮助我选择或提供更好的决定.
如果我在某处估计错了,请纠正我.
是否有可能在Cassandra中找到主键与所有主键字段的任意子集匹配的记录?
使用下面描述的表,可以找到主键具有特定type且name没有指定id或size?的记录.
CREATE TABLE playlists (
id uuid,
type text,
name text,
size int,
artist text,
PRIMARY KEY (id, type, name, size)
);
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在为我的应用程序构建一个REST API,它使用Tastypie使用NoSQL db(Neo4j).
所以我覆盖了类的一些主要方法tastypie.resources.Resource,并且目前正在努力实现def obj_get_list(self, request=None, **kwargs):应该返回对象列表.
实际上,我想通过url(类似的东西http://127.0.0.1:8000/api/airport/?query='aQuery')将参数传递给此方法,然后根据此参数执行查询.
问题是请求是None这样我无法得到它的参数!
打印kwargs变量时,我看到:
{'bundle': <Bundle for obj: '<testNeo4Django.testapp.api.Airport object at 0x9d829ac>' and with data: '{}'>}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
因此,我想创建一个基于客户端的分区模式,在其中将集合名称设置为function(),我的伪代码是这样的:
var mongoose = require('mongoose'),
Schema = mongoose.Schema,
var ConvForUserSchema = new Schema({
user_id: Number,
conv_hash: String,
archived: Boolean,
unread: Boolean
}, function CollectionName() {
return (this.user_id % 10000);
});
Run Code Online (Sandbox Code Playgroud)
是否有可能通过月球使读取和写入都能按预期工作?
哪一个最适合使用单个密钥空间或Multiple Keyspace来管理数据,假设一个应用程序拥有更多客户端.每个客户端都会发送大量数据,我们将数据存储在时间序列列中.如果我为每个客户端提供单独的密钥空间,那么Cassandra管理数据会不会很好?如果我在我的应用程序中为一个客户端使用一个键空间,有什么优点和缺点?
在个人游戏项目的上下文中,为了解有关DDD模式的更多信息,我错过了我的过滤器的Specification对象.
寻找示例,似乎所有内容(如LinQ)都面向SQL数据库.但是对于许多NoSQL数据库而言,大多数查询,即使只是"select*from table"也需要预定义的视图.然而,如果存储库正在映射Web服务,即使查询类型更加严格.
考虑到非SQL数据库的局限性,是否存在规范模式的变体?我觉得这需要使用继承和静态声明来支持不同类型的持久性后端.
我应该如何在我的存储库中组合"排序"和"过滤"?作为示例,请考虑存储库以获取Order项列表.
(Query)findAllSortedByDate;
(Query)findAllSortedByName;
(Query)findAllSortedByQuantity;
Run Code Online (Sandbox Code Playgroud)
因此,当由表格显示时,这些是不同类型的排序.由于我可能会处理大量结果,因此我从不考虑在视图或视图模型中进行排序或过滤.最初我想到了一个Proyection类,它根据用户操作从存储库中选择正确的查询.但是,如果我想在不同的过滤器中组合不同的排序策略,这不会很好.
显然我需要某种类型的"规范"对象,但我不确定是否:
最初我考虑使用Repository作为类似集合的接口执行任何查询,但现在我注意到视图模型也可能表现为"有状态"类似集合的接口,而前者是"无状态"类似集合的接口.
更新:为了更好地解决这个问题,还要考虑尽管NoSQL视图可以被过滤和排序,但是全文搜索可能需要一个外部索引引擎,例如Lucene或SQLite-FTS,它们只为查询提供实体的唯一标识.再次排序和过滤.
design-patterns domain-driven-design repository nosql polyglot-persistance
对于社交网站,我需要为每个实体(以及数百万个此类实体)存储经常修改的列表,这些列表是:
- 经常附加到
- 经常看
- 有时减少
- 列表由主键键入
我已经在RDBMS中存储了一些其他类型的数据.我知道我可以将这些列表存储在RDBMS中作为多对多关系,如下所示:创建一个listItems包含两列listId&& 的表listItem来生成任何特定列表,只需SELECT查询所有记录WHERE listId = x.但是,当涉及高可伸缩性时,以这种方式将列表存储在RDBMS中并不是非常理想.相反,我希望以自然的方式存储准备好的列表,以便最大限度地提高检索性能.因为每当用户登录并查看页面时,我需要为用户获取大约数百个此类列表.
那么我该如何解决这个问题呢?这个数据应该使用什么样的数据库,可能是那个提供由主键加密的列变量no的数据库,像Cassandra?
我是整个map-reduce概念的新手,我正在尝试执行一个简单的map-reduce功能.
我目前正在使用Couchbase服务器作为我的NoSQL数据库.
我想获得所有类型的列表:
key: 1, value: null
key: 2, value: null
key: 3, value: null
Run Code Online (Sandbox Code Playgroud)
这是我的文件:
{
"type": "1",
"value": "1"
}
{
"type": "2",
"value": "2"
}
{
"type": "3",
"value": "3"
}
{
"type": "1",
"value": "4"
}
Run Code Online (Sandbox Code Playgroud)
我一直想做的是:写一个地图功能:
function (doc, meta) {
emit(doc.type, 0);
}
Run Code Online (Sandbox Code Playgroud)
使用内置的reduce功能:
_count
Run Code Online (Sandbox Code Playgroud)
但我没有得到预期的结果.
我怎样才能获得所有类型?
UPDATE
请注意,类型是不同的文档,我知道reduce对文档起作用,不在文档之外执行.
我正在使用Cassandra 1.2.7和使用CQL3的官方Java驱动程序.
假设由一个表创建
CREATE TABLE foo (
row int,
column int,
txt text,
PRIMARY KEY (row, column)
);
Run Code Online (Sandbox Code Playgroud)
然后我想预制相当于 SELECT DISTINCT row FROM foo
至于我的理解,应该可以在Cassandra的数据模型中有效地执行这个查询(给定复合主键的实现方式),因为它只是查询'raw'表.
我搜索了CQL文档但我没有找到任何选项来做到这一点.
我的备份计划是创建一个单独的表 - 类似于
CREATE TABLE foo_rows (
row int,
PRIMARY KEY (row)
);
Run Code Online (Sandbox Code Playgroud)
但这需要让两者保持同步的麻烦 - 写入foo_rows用于foo中的任何写入(也是性能损失).
那么有没有办法查询不同的行(分区)键?
在http://www.rethinkdb.com/docs/data-modeling/,声明:
由于之前的限制,最好将posts数组的大小保持为不超过几百个文档.
如果我打算保留90天(3个月)的统计数据,并且每个日期可能包含大约10个地区的嵌入式数组.这意味着90*10 = 900.900不完全是几百.
但MongoDB关系中的相关问题是:嵌入还是引用?表明MongoDB的限制为16mb,这意味着能够托管3000万条推文或大约250,000个典型的Stackoverflow问题作为嵌入式文档.好多啊!
但是,那就是MongoDB.RethinkDB每个文档的限制为10mb.哪个应该还是相当高的.RethinkDB的文档可能存在缺陷.或者还有另一个特定的原因(未解释)为什么Rethinkdb建议只将它保持在几百个嵌入式阵列中,即使10mb可以明显地保持更多.
我所指的架构的粗略概念:
DailyStat::Campaign
[
{
id: '32141241dkfjhjksdlf',
days_remaining: 26,
status: 'running',
dates: [
{
date: 20130926,
delivered: 1,
failed: 1,
clicked: 1,
top_regions: [
{ region_name: 'Asia', views: 10 },
{ region_name: 'America', views: 10 },
{ region_name: 'Europe', views: 10 },
{ region_name: 'Africa', views: 10 },
{ region_name: 'South East Asia', views: 10 },
{ region_name: 'South America', views: 10 },
{ …Run Code Online (Sandbox Code Playgroud)