我正在寻找一个库或服务,它允许我推送数据,而且每次都会有其他几个列。现在,我正在使用IronMQ将json推到队列中,然后解析json并获取属性。但是,我想知道是否有一个队列库或服务允许我将所有属性推送到单独的列中,以便以后我可以在队列中执行一个SQL查询。
我考虑过PythonandSqlite3来做到这一点(与Amazon或IronMQ相比有什么不同),这将使这件事变得非常容易。
发布于 2014-10-22 15:40:33
消息队列技术(如IronMQ、RabbitMQ、Amazon等)之间的区别和RDBMS(例如Sqlite、Server、PostGres等)如果您使用RDBMS表作为队列,并且希望允许查询,那么您必须自己管理LIFO队列进程。队列(除了一些例外)强制执行LIFO进程,而数据库表是随机访问的,并且不强制执行插入、修改或删除数据的方式或时间。这些规则是在业务层中处理的。(您提到了使用Python和Sqlite。Sqlite将是您的队列/数据存储区,Python应用程序将执行管理LIFO队列和随机查询的逻辑。
RDBMS经常用作中间消息存储,从您的问题中我猜LIFO队列甚至没有那么重要,因为您似乎对随机访问感兴趣。如果不知道你在设计什么,就很难说了。但是如果你想要像队列和现成的数据库这样的东西,那就去看看甲骨文AQ吧。
从链接的页面:
因为Oracle Streams高级队列是在数据库表中实现的,所以所有高可用性、可伸缩性和可靠性的操作好处也适用于队列数据。Oracle Streams高级队列支持恢复、重新启动和安全性等标准数据库功能。您可以使用数据库开发和管理工具(如Oracle Enterprise Manager )监视队列。与其他数据库表一样,队列表也可以导入和导出。 可以使用标准SQL查询消息。这意味着您可以使用SQL访问消息属性、消息历史记录和有效负载。使用SQL access,您还可以进行审核和跟踪。所有可用的SQL技术(如索引)都可以用于优化对消息的访问。
更多资源和进一步阅读:
https://stackoverflow.com/questions/26495074
复制相似问题