【问题标题】:How to update SQL Server database every 1 minute?如何每 1 分钟更新一次 SQL Server 数据库?
【发布时间】:2011-01-05 06:43:40
【问题描述】:

我有一个 SQL Server 数据库,其中包含股票市场报价和其他相关数据。

这个数据库需要定期更新,比如 1 分钟。

我的问题是:

如何每 1 分钟获取一次股票报价并将其更新到数据库?

非常感谢您的帮助。

谢谢!

【问题讨论】:

  • 我认为您可能需要稍微缩小这一范围。我看到你已经用 asp.net 和 mvc 标记了这个问题,但你肯定不会真的不想使用 asp.net 来做这个。似乎更适合服务之类的东西。另外,您是否选择了可以为您提供股票报价的服务?
  • 真的吗? “不是一个真正的问题”:这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。这与这个问题几乎相反——如果我说的过于本地化的话,但很明显他在这里寻找的是什么。
  • 嗨 Marek,我想去一份 SQL Server 工作。
  • 不起作用。没有工作 - 这需要连接到数据馈送的 Windows 进程;)请参阅我的答案。
  • 好的。因此,如果我必须将此数据库连接到网站(显示数据库中的值),Windows 进程如何适应这个?你能详细说明一下吗?谢谢!

标签: asp.net sql sql-server asp.net-mvc


【解决方案1】:

您知道,您从错误的角度认真地提出了问题。就像“我有一辆汽车、梅赛德斯、双门轿车——我怎样才能找到从 A 到 B 的最佳道路”。与汽车完全无关。

与您的问题相同 - 这不是一个 sql 甚至是一个 asp.net 问题。该解决方案独立于使用的 sql 服务器和您的 Web 技术。您的主要问题是:

如何每 12 分钟获取一次股票报价并将其更新到数据库中?

我们开始吧。我假设您 (a) 谈论美国股票,并且 (b) 指的是所有股票,而不是少数。. 1 分钟的时间间隔太短,无法扫描 yahoo.com 之类的东西 - 这里的主要问题是有成千上万库存(实际上更多是数万),而且您不想去雅虎每分钟报废数千页。

同时,最终零售用户数据馈送提供商将无法工作。它们一次支持 X 符号,并且 x 通常在低百区,有时可以升级到 500 左右。

如果您每分钟都需要股票数据,就像所有美国股票一样,那么这在技术上与“实时价格”相同,最终会花钱。此外,您还需要一个商业高端数据馈送,据我所知......一个。对不起。成本将接近或完全四位数,没有 (!) 出版权。

这就是 NxCore - 他们的系统有一个数据提供,可实时提供美国股票(所有交易所)、包含所有修正的完整提要等。本机和 C# 包装 API,因此您可以获取实时数据提要,更新您的内存中的当前定价,并每分钟将它们写入 sql server。最好不要来自asp.net(除非您进行大量设置更改等,否则应该选择24/7不间断运行的东西),而是来自已安装的Windows服务。占用一些带宽 - 不知道多少(我从他们那里获得了 4 个交易所,但没有股票,只有 CME 集团期货、CME、CBOT、NYMEX 和 COMEX)。

请注意,使用此设置您也可以更快,但如果您完全实时,您需要一个严肃的服务器。我们每天谈论十亿次左右的更新...... 最终用户 sql 服务器设置(即小内存和一些慢速磁盘)将无法正常工作。 太贵了?以较低的价格提供大量数据,但它们不会像“全部”那样为您提供“股票”,而只是“选择”。

如果您对非实时数据感到满意 - 即在一天结束时将数据拉下来,eoddata.com 可以提供不错的报价。您也可以通过 asp.net 页面提取内容,但同样......您将不会在白天获得数据,只是 - 好吧 - 关闭之后。最小粒度为 1 分钟。再版权再次拒绝 - 但也许您可以与他们交谈。

【讨论】:

  • 我只对标普500、道琼斯指数、富时指数、DAX、CAC 等全球十大指数的报价感兴趣。是否有提供实时或延迟报价的提供商?
  • 我不知道。随着这些变化,对于长期存档来说并不是很好。我根本不在这个领域——我决定购买 NxCore,这样我就可以开始归档我感兴趣的 excahgnes 上的每一个刻度,以便在几年后进行审查和分析。顶级供应商...真的不知道。
【解决方案2】:

这并不是真正的 SQL Server 特定的;一个典型的解决方案是您运行一个进程,该进程定期轮询外部源(Web 服务等)并使用此信息更新数据库。您可以将其实现为一个简单的命令行程序,该程序每分钟从任务调度程序执行一次,或者您可以将其设置为大部分时间处于休眠状态并且每分钟只唤醒一次以进行处理的 Windows 服务。一旦你有了它,写入数据库就像往常一样。

【讨论】:

  • 根据原始问题 - 没有人会为此使用网络服务。对不起。主要原因是我们谈论了很多更新,即使每分钟拉一次。几乎需要比 XML 更密集的格式。哎呀,FIX gor因为过于冗长而使用明文(每行一个引号)烧毁,所以他们快速转向二进制(称为FIX)。 XML 在这里是一场噩梦。根据“引号”的含义,我们可能在这里谈论 300.000 项。保守地(由于股票在多个交易所交易)。
  • 我从未说过 XML。 “Web 服务”只是指动态提供数据的 HTTP 资源。 XML 是一种常见的选择,但我同意你的观点,对于速度关键型应用程序,更高效的格式是更好的选择 - 基于简单文本的 CSV,或者如果需要更多结构,则使用 JSON 或 YAML。
猜你喜欢
  • 2014-05-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-30
  • 2017-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多