小编Jod*_*tte的帖子

数十亿行的最佳数据存储

我需要能够为数十亿条记录存储少量数据(大约50-75字节)(一年约30亿/月).

唯一的要求是对具有相同GUID的所有记录进行快速插入和快速查找,并且能够从.net访问数据存储.

我是一个SQL服务器人,我认为SQL Server 可以做到这一点,但随着所有关于BigTable,CouchDB和其他nosql解决方案的讨论,它听起来越来越像传统RDBS的替代品可能是最好的,因为优化分布式查询和扩展.我尝试了cassandra,.net库目前没有编译或者都可以更改(以及cassandra本身).

我已经研究了许多可用的nosql数据存储,但找不到满足我作为强大的生产就绪平台的需求.

如果你必须存储360亿个小而扁平的记录,以便它们可以从.net访问,那会选择什么以及为什么?

sql-server nosql

81
推荐指数
4
解决办法
5万
查看次数

是否可以使用ac#console应用程序中的HttpBrowserCapabilities?

我需要从控制台应用程序解析UserAgent字符串,这似乎是一种简单的方法,但我显然没有HttpRequest对象,似乎无法使用User-Agent标头制作假的(我得到平台不支持例外).有没有办法做到这一点,还是应该开始探索用户代理解析的其他替代方案?

c# browser parsing user-agent http

19
推荐指数
1
解决办法
4118
查看次数

Javascript localStorage和域名

由于iPad/iPhone不支持来自第三方网站的cookie,因此我希望将值存储在localStorage中.domainA上的示例可能是:

<script src="http://domainB/something.js"></script>
Run Code Online (Sandbox Code Playgroud)

domainB上的这个脚本可以访问window.localStorage,效果很好.但是,值存储在domainA中,因为这是文档的位置.

如果我把我的脚本放在一个iframe的源码在domainB上,那么它可以工作,但我试图避免使用帧.所以我的问题是:有没有办法在远程域上的localStorage中获取/设置值,以便在我以后访问domainB时它们会在那里?

javascript local-storage

11
推荐指数
1
解决办法
6105
查看次数

卡桑德拉随机读取速度

我们仍在为我们的数据存储评估Cassandra.作为一个非常简单的测试,我在本地机器上的Keyspace1/Standard1列系列中插入了4列的值,总计大约100字节的数据.然后我按行键尽快读回来.我能以160,000 /秒的速度读回来.大.

然后我输入了一百万个类似的记录,所有记录都是XY形式的键,其中X在(1..10)和Y在(1..100,000),我查询随机记录.性能下降到每秒26,000个查询.这仍远高于我们需要支持的查询数量(约1,500 /秒)

最后,我从1.1到10.1000000中记录了一千万条记录,随机查询了1000万条记录中的一条.性能非常糟糕,每秒60次查询,而我的磁盘像疯了一样晃来晃去.

我还验证了如果我要求数据的一个子集,比如介于3,000,000和3,001,000之间的1000条记录,它首先会缓慢返回,然后当它们缓存时,它每秒最多可加速20,000次查询,并且我的磁盘停止疯狂.

我已经读到人们在Cassandra中存储数十亿条记录并以每秒5-6k的速度获取它们,但是我只能在10mil的记录下获得它.知道我做错了什么吗?我需要从默认设置中更改一些设置吗?我正在使用带有6gig内存的超频Core i7盒子,所以我不认为这是机器.

这是我的代码,用于获取我正在产生8个线程的记录,以通过行键从一列请求一个值:

ColumnPath cp = new ColumnPath(); cp.Column_family ="Standard1"; cp.Column = utf8Encoding.GetBytes("site"); string key =(1 + sRand.Next(9))+"." +(1 + sRand.Next(1000000)); ColumnOrSuperColumn logline = client.get("Keyspace1",key,cp,ConsistencyLevel.ONE);

感谢您的任何见解

thrift cassandra nosql

6
推荐指数
1
解决办法
5619
查看次数

SQL Server聚合非常大的表

我们有一个包含17Mil行的表,其中包含产品属性,让我们说它们是:

brandID,sizeID,colorID,price,shapeID

我们需要按品牌和大小查询聚合.目前我们通过执行以下操作来查询和过滤此数据:

select brandID, sizeID, count(*) 
from table where colorID in (1,2,3) and price=10 and shapeID=17
--"additional complex where clause here"
group by brandID, sizeID
order by brandID, sizeID
Run Code Online (Sandbox Code Playgroud)

我们报告这些数据.问题是,尽管返回的实际数据只有几百行,但运行此查询需要10秒左右(这是一个非常简单的示例).

我认为我们已经达到了索引此表的能力,因此我认为任何数量的索引都不会让我们接近即时结果.

我对OLAP或其他分析服务知之甚少,但SQL Server可以预先过滤或预先聚合此表,以便可以执行上述查询(或类似的返回等效数据)?或者在一个非常大的表上处理任意where子句的最佳方法是什么?

sql t-sql sql-server olap

5
推荐指数
1
解决办法
3084
查看次数

确保"合理"查询

在我们的组织中,我们需要让员工通过提供WHERE子句来过滤我们的Web应用程序中的数据.它长期以来运行良好,但我们偶尔遇到用户提供需要对大型表或低效连接等进行全表扫描的查询.

一些小丑可能会写一些类似的东西:

select * from big_table where
Name in (select name from some_table where name like '%search everything%')
or name in ('a', 'b', 'c')
or price < 20
or price > 40
or exists (select 1 from some_other_table where col1 + col2 + col3 = 4)
or exists (select 1 from table_a, table+b)
Run Code Online (Sandbox Code Playgroud)

显然,这不是一个很好的方法来查询这些表与计算值,非索引列,大量的OR和table_a和table_b上的无限制连接.

但对于用户来说,这可能是完全有道理的.

那么,允许内部用户向数据库提供查询同时确保它不会锁定十几个表并挂起网络服务器5分钟的最佳方式是什么?

我猜这是c#/ sql-server中的一种编程方式,用于在查询运行之前获取查询的执行计划.如果是这样,哪些因素会导致成本?估计的I/O成本?估算的CPU成本?什么是合理的限制,告诉用户他的查询不好?

编辑:我们是一家市场研究公司.我们有数以千计的调查,每个调查都有自己的数据.我们有数十名研究人员希望以任意方式对数据进行切片.我们有工具让他们使用GUI构建"有效"过滤器,但是一些"高级用户"想要提供他们自己的查询.我意识到这不是标准或最佳实践,但我怎样才能让许多用户使用任意复杂的条件和不断变化的条件来查询表所需的行?

c# sql sql-server asp.net

5
推荐指数
2
解决办法
409
查看次数

在文件系统中IE8存储在localStorage中存储的值?

我的组织开始使用此功能并进行测试,如果我们可以找到并删除这些值以及查看写入磁盘的内容,那将是理想的,但我无法弄清楚IE8在哪里存储它们.我找到了.sqlite文件

用于Safari的AppData\Local\Apple Computer\Safari和用于FF3.5的AppData\Roaming\Mozilla\Firefox\Profiles\ryb7f27l.default\webappsstore.sqlite

任何关于IE8的帮助将不胜感激!

javascript cookies

4
推荐指数
1
解决办法
1万
查看次数