【问题标题】:What is the best database technology for storing OHLC historical prices?存储 OHLC 历史价格的最佳数据库技术是什么?
【发布时间】:2011-06-27 07:04:52
【问题描述】:

仅对于日终数据,就会有数十亿行。存储所有数据的最佳方式是什么。 SQL Server 2008 是否足够好,或者我应该看一下 NoSQL 解决方案,比如 MongoDB。有什么建议吗?

拥有一个具有读/写权限的主数据库和一个或多个副本用于只读操作会很酷。只有主数据库将用于将新价格添加到存储中。此外,如果能够单独复制大多数流行证券的 OHLC 价格以优化读取访问,那将是一件很酷的事情。

然后,这些数据将被传输到客户机器上的交易平台。

【问题讨论】:

  • 如何聚合和查询数据是您做出决定的关键因素。在您的问题中没有提及这一点,答案将是主观的。
  • 想想一个必须向其客户提供历史股票价格数据以供分析的在线经纪网站或网络服务。
  • Y我们最好的办法是聘请数据库专家,他至少有十年运行大型系统的经验,需要大量的事务和性能需求。这是复杂的事情,您需要专家来解决。如果您要问这个问题,显然您还没有招聘到合适的人。

标签: database


【解决方案1】:

您应该考虑 Oracle Berkeley DB,它正在生产中,在一些知名证券交易所的基础架构中执行此操作。 Berkeley DB 将允许您将信息记录为简单的键/值对,在您的情况下,我会想象键的时间戳和值的编码 OHLC 集。 Berkeley DB 支持单主多副本复制(称为“HA”以表示高可用性)以完全支持您所概述的内容 - 读取可扩展性。 Berkeley DB HA 将在必要时自动故障转移到新的主服务器。使用 Berkeley DB 的一些简单压缩和其他基本功能,您将能够满足您的可扩展性和数据量目标(数十亿行、每秒数万个事务 - 取决于您的硬件、操作系统和 BDB 配置 - 请参阅3n+1 benchmark with BDB 寻求帮助)没有问题。

当您开始访问该 OHLC 数据时,请考虑 Berkeley DB 对批量获取的支持,并确保您使用 B-Tree 访问方法(因为您的数据有顺序,并且局部性将提供更快的访问)。还可以考虑使用 Berkeley DB 分区 API 来拆分数据(可能基于符号甚至基于时间)。最后,因为您将复制数据,所以您可以放宽对 DB_TXN_WRITE_NOSYNC 的持久性约束,只要您的复制确认策略要求在认为它是持久的之前有一定数量的副本确认写入。在这种情况下,您会发现快速网络胜过快速磁盘。此外,要从您的主服务器上卸载一些工作,请启用对等日志副本分发。

但是,首先阅读replication manager getting started guide 并查看rep 引用示例 - 它已经实现了您正在尝试做的一些事情(方便,嗯?)。

仅作记录,完全披露我在 Oracle 担任 Berkeley DB 产品的产品经理。我已经过去九年了,所以我有点偏见。我猜想其他解决方案——不管是否基于 SQL——最终可能会给你一个工作系统,但我相信 Berkeley DB 可以不费力气。


【讨论】:

    【解决方案2】:

    如果您真的每天要处理 数十亿 新行(Federal Express 的数据仓库并没有那么大),那么您需要一个可以跨多台计算机进行分区的 SQL 数据库,例如 Oracle或 IBM 的 DB2。

    另一种选择是重型系统托管存储,例如 IBM 的 DFSMS。

    【讨论】:

    • SQL Server 也可以分区。
    • MonngoDB 也可以分份,不是吗?
    • @HLGEM & Grief 编码器:是的。顺便问一下,你的网络延迟是多少?请记住,每天都会插入数十亿行。每秒超过 11,000 行。
    • @Gilbert Le Blanc 我碰巧知道 Dow Jones 使用 SQL Server,如果知道如何处理高事务、大型数据库的人正确设置它,我认为它可以处理任务。在这种情况下,如果有专家数据人员在场进行设计,任何数据库都无法正常工作。
    • @HLGEM:是的,Dow Jones 使用 SQL Server。根据这篇文章,道琼斯的 IT 环境相当庞大:全球有 6,000 台服务器、1,700 台网络设备、近 14,000 个源类型、16 个 Splunk 索引器和每天 100 GB 的数据。 blogs.splunk.com/2010/10/29/…去做吧。
    猜你喜欢
    • 2013-04-10
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 2018-02-24
    相关资源
    最近更新 更多