您的位置:首页 > 其它

Cracking the coding interview--Q12.1

2014-03-13 11:07 357 查看
题目

原文:

If you were integrating a feed of end of day stock price information (open, high, low, and closing price) for 5,000 companies, how would you do it? You are responsible for the development, rollout and
ongoing monitoring and maintenance of the feed. Describe the different methods you considered and why you would recommend your approach. The feed is delivered once per trading day in a comma-separated format via an FTP site. The feed will be used by 1000 daily
users in a web application.

译文:

如果你正在为5000家公司的股市信息(开放,涨,跌,收盘价)进行整合摘要,你将怎样做?你是负责开发,推广,持续的监控和维护。描述你的不同想法和为什么推荐这样做。摘要以逗号分隔的格式经由FTP进行交付,每个交易日一次。 每日有1000个用户在web应用程序中使用这些摘要信息。

解答

假设我们可以通过一些脚本在每日结束时通过FTP获取数据。我们把数据存储在哪? 我们怎样存储数据有助于我们对数据进行分析

方案一

将数据保存在文本文件中。这样子的话,管理和更新都非常麻烦,而且难以查询。 保存无组织的文本文件是一种非常低效的方法。

方案二

使用数据库。这将带来以下的好处:
数据的逻辑存储
提供了非常便捷的数据查询方式

例子:return all stocks having open > N AND closing price < M (返回开盘价大于N且收盘价小于M的所有股票)

优势:
使得维护更加简单
标准数据库提供了回滚,数据备份和安全保证等功能。我们不需要重复造轮子。

方案三

如果要求不是那么宽泛,我们只想做简单的分析和数据分发,那么XML是另一个很好的选择。 我们的数据有固定的格式和大小:公司名称,开盘价,最高价,最低价和收盘价。 XML看起来应当如下所示:

<root>
<date value=“2008-10-12”>
<company name=“foo”>
<open>126.23</open>
<high>130.27</high>
<low>122.83</low>
<closingPrice>127.30</closingPrice>
</company>
<company name=“bar”>
<open>52.73</open>
<high>60.27</high>
<low>50.29</low>
<closingPrice>54.91</closingPrice>
</company>
</date>
<date value=“2008-10-11”> . . . </date>
</root>


优势:
便于数据分发。这就是为什么XML是共享及分发数据的一个标准模型。
我们有高效的解析器来提取出想要的数据
我们可以往XML文件中追加新数据

不足之处是数据查询比较麻烦(这点比不上数据库)。

转自:http://hawstein.com/posts/12.1.html

---EOF---
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: