在多个项目中,我们必须存储,汇总和评估简单的测量值。 一行典型地由时间戳,值和一些属性组成。 在一些应用程序中,我们希望每秒存储1000个值。 这些值不仅要插入,而且要以相同的速率删除,因为值的使用期限限制在一年左右(在不同的汇总步骤中,我们不存储全年的1000 / s)。 到现在为止,我们已经开发出不同的解决scheme 一个基于Firebird,一个基于Oracle,一个基于自制的存储机制。 但是这些都不是很令人满意的解决scheme。 这两种RDBMS解决scheme都无法处理所需的数据stream。 除此之外,传递值的应用程序(例如设备驱动程序)不能轻易地附加到数据库,插入语句很麻烦。 最后,强烈希望有一个SQL接口的数据,典型的评估是很难在SQL中制定和执行速度慢。 例如,在上个月的所有测量中,每15分钟find一个带有时间戳的最大值。 自制的解决scheme可以处理插入率,并有一个客户端友好的API来做到这一点,但它不像查询语言,也不能被其他应用程序通过某些标准接口使用,例如报告。 我梦中最好的解决scheme是数据库系统: 有一个非常快速的插入API 能够以相同的速度删除/截断值 为典型的时间序列数据提供了一个标准的SQL接口 你知道有些数据库接近这些要求,或者你会以不同的方式处理这个问题吗?
是否有一个节点mysql的Node.JS驱动程序是常用的节点mysql以外? (好像node.js数据库驱动没有太多的活动,是不是有这个原因,还是仅仅因为Node.JS太年轻了?)
有人可以告诉我什么是MongoDB的优点和缺点,特别是与关系数据库比较? 包括ACID,可扩展性,吞吐量,主内存使用情况,插入/查询性能和索引大小等。
我打算开始使用一些关键/价值商店(主要是作为一种学习体验),但是最近出现了很多,我不知道从哪里开始。 从内存中列出,我可以想到: CouchDB的 MongoDB的 了Riak Redis的 东京内阁 伯克利DB 卡桑德拉 MemcacheDB 而且我相信还有更多的东西在我的search工作中滑落了。 有了所有的信息,很难find所有竞争对手之间的可靠比较。 我的标准和问题是: (最重要)你推荐哪个, 为什么 ? 哪一个是最快的? 哪一个是最稳定的? 哪一个是最容易设置和安装的? 哪些有绑定的Python和/或Ruby? 编辑: 到目前为止,看起来Redis是最好的解决scheme,但这只是因为我已经得到了一个坚实的回应(来自ardsrk)。 我正在寻找像他这样的更多的答案,因为他们指向了有用的量化信息。 你使用哪个Key-Value商店, 为什么 ? 编辑2: 如果有人对CouchDB,Riak或MongoDB有经验,我很乐意听到你们的经验(如果你能对其中的几个进行比较分析的话,更是如此)
是否有人将键值对存储在数据库中? 我一直在使用这种types的表格: CREATE TABLE key_value_pairs ( itemid varchar(32) NOT NULL, itemkey varchar(32) NOT NULL, itemvalue varchar(32) NOT NULL, CONSTRAINT ct_primarykey PRIMARY KEY(itemid,itemkey) ) 那么例如下面的行可以存在: itemid itemkey itemvalue —————- ————- ———— 123 Colour Red 123 Size Medium 123 Fabric Cotton 这种scheme的麻烦是提取数据所需的SQL语法是相当复杂的。 最好是创build一系列键/值列? CREATE TABLE key_value_pairs ( itemid varchar(32) NOT NULL, itemkey1 varchar(32) NOT NULL, itemvalue1 varchar(32) […]
我正在寻找球队新闻,积分榜和成绩等足球数据。 我已经联系Opta,但他们的价格是疯狂的,我以后的包是一个赛季8000英镑! 我会喜欢它的数据库forms,但不介意,如果它是一个Web服务,文本文档,API,屏幕抓取,CSV等
我正在考虑使用Django开始一个项目(fyi,一个基于浏览器的游戏),我最喜欢的一个function是使用syncdb自动创build基于我定义的Django模型的数据库表我似乎无法在其他任何框架中find这个function)。 当我在文档中看到这个时,我已经认为这太好了, Syncdb不会改变现有的表格 syncdb只会为尚未安装的模型创build表格。 它永远不会发出ALTER TABLE语句来匹配安装后对模型类所做的更改。 模型类和数据库模式的变化通常会涉及某种forms的模糊性,在这种情况下,Django将不得不猜测正确的变化。 关键数据在这个过程中可能会丢失。 如果您对模型进行了更改并希望修改数据库表以进行匹配,请使用sql命令来显示新的SQL结构,并将其与现有表模式进行比较以计算出更改。 似乎改变现有的表格将不得不“手工”完成。 我想知道的是做到这一点的最好方法。 想到两个解决scheme: 如文档所示,在数据库中手动进行更改; 做一个数据库备份,擦除它,再次创build表(使用syncdb,因为现在它从头开始创build表)并导入备份的数据(如果数据库很大,这可能需要很长时间) 有任何想法吗?
我一直在search整个互联网,但似乎没有一个答案,我可以理解。 如果有人能够用数据库中的基数来帮助解释我, 谢谢。
如何决定哪两个使用什么好的经验法则? 而且,如果你接pipe了一个Sqlite数据库,并且系统预计将“变得更大”,如何决定是坚持还是迁移到MySql?
有没有办法让SQLAlchemy做一个批量插入,而不是插入每个单独的对象。 即 这样做的: INSERT INTO `foo` (`bar`) VALUES (1), (2), (3) 而不是: INSERT INTO `foo` (`bar`) VALUES (1) INSERT INTO `foo` (`bar`) VALUES (2) INSERT INTO `foo` (`bar`) VALUES (3) 我刚刚转换了一些代码来使用sqlalchemy,而不是原始的sql,虽然现在好多了,但现在看起来比较慢(高达10倍),我想知道这是否是原因。 也许我可以更有效地改善使用会话的情况。 目前我有autoCommit=False ,并添加了一些东西后,做一个session.commit() 。 虽然这似乎导致数据如果数据库在其他地方更改,如果即使我做了一个新的查询,我仍旧得到旧的结果? 谢谢你的帮助!