高清免费视频|成都冻货格|我可以再往深处一点吗视频|舌头伸进去添的我好爽高潮欧美|性都花花世家|无人区卡一卡二卡三乱码网站|草莓看视频在线观看免费

樂思軟件

提交需求|聯系我們|請電400-603-8000

云存儲案例:納斯達克采用Amazon S3存儲服務

  深入Amazon簡單存儲服務(S3)

  之所以選擇Amazon S3的原因,是因為市場回放程序需要一個廉價而且擴展性非常好的存儲方式。要知道證券市場每天都會產生若干GB的交易數據。市場回放要存放每一個交易的細節數據并且在請求到達后能快速取回所需數據。

  NASDAQ一開始制定的目標就是能在線保存數年的數據,并且能以合理的花費就能迅速地的得到全部所需數據,就這一點來說S3是非常令人滿意的。有了S3的支持,在毫不犧牲性能的前提下,市場回放能為無數的的用戶提供數量多達數十億個的文件。

  市場回放能夠支持用戶對數月或者數年前數據的請求,只要這些請求是遵規守法的。能迅速地得到所有的歷史回放數據是一項非常重要的需求。S3已被證明可以持續地保持高速訪問。

  NASDAQ的原始數據是分布在各實時數據源處的,在將數據上載到S3之前,NASDAQ會將數據源處的數據格式轉換成專為回放優化過的數據格式。這種專利的轉換過程轉換后得到的是非常簡單高效的文本文件,并且這些文件是為快速上載和下載優化過的。文件里包含了所有的報價信息,AIR桌面客戶端程序可以利用這些信息構造回放和分析過程的每一個細節。對整個產品來說,每天有成百上千的文件被上載到S3中。

  市場回放的數據應用了一種短小精悍的、用逗號分隔的扁平的文件格式。S3的設計使得其可以快速可靠地存儲和取回如此巨量的文件。這些文件擁有簡單可讀的格式,這一點從下邊的例子中可以看出。文件名包含有股票代碼、日期、文件中所含數據的開始時間等信息。開始的幾行記錄是每筆交易的初始最高出價和最低報價。接著是這些價格的變化信息。其中的字段包括:Exchange、sequence number、shares at bid、shares at offer、price of bid、price of offer、start time (milliseconds since midnight)、end time (milliseconds since midnight)。

  組織和管理上百萬的文件似乎是困難重重,然而扁平文件模型跟回放程序跟結合得非常好,因為每次回放或者分析都不需要很多數據就可以完成。這些數據就存放在一個易于管理的服務器文本文件上。程序自身會將用戶的回放請求轉換為文件名,然后向Amazon S3請求此文件,當請求返回時再對結果進行解析。回放程序目前還不支持跨多只股票或者大時間跨度等開放式查詢,但可以對一只股票的所有交易細節進行觀察和分析。

  Amazon為S3的訪問提供了REST和SOAP接口。Flex框架本身也支持訪問REST和SOAP接口。除此之外,Google Code上有 一個名為as3awss3lib的開源API,它利用Action Script為AIR運行時與S3之間的交互提供了詳盡的支持。

  下面就是一個用as3awss3lib訪問文件的例子:

  //sample method for init the downloading of a fileprivate function getFile():void { //creates as3awss3lib wrapper with auth parameters var s3Service:AWSS3 = new AWSS3(this.accessKey, this.secretAccessKey); //add event handlers for async calls s3Service.addEventListener(IOErrorEvent.IO_ERROR, onIOError); s3Service.addEventListener(AWSS3Event.ERROR, onError); s3Service.addEventListener(AWSS3Event.OBJECT_RETRIEVED, onFileDownloaded); //calls AWSS3 method to get file s3Service.getObject(fileName, key);}//Event handler used file is returnedprivate function onFileDownloaded(e:AWSS3Event):void { //get file details var currentObject:Object = downloadQueue.shift(); var ext:String = mimeMap.getExtension(e.data.type); var fileName:String = (ext != null && currentObject.key.indexOf(".") == -1) ? currentObject.key + "." + ext : currentObject.key; //save file to specified downloadLocation var fs:FileStream = new FileStream(); fs.open(downloadLocation.resolvePath(fileName), FileMode.WRITE); fs.writeBytes(e.data.bytes); fs.close(); Alert.show("Your file(s) have been successfully downloaded.", "Success!", Alert.OK, null, null, null);}在這個例子中,"getFile"方法構造了as3awss3lib中類AWSS3的一個實例,并且利用"getObject"方法取回想要的文件。Flex中所有的遠程服務都采用異步的方式。因此,getObject的調用也是異步的,AWSS3Event.OBJECT_RETRIEVED事件的處理器(handler) 被用來處理返回的結果。在以上代碼中,返回的文件被保存并且利用警告對話框(Alert)告知用戶。

  在數據準備過程中,數據被分為許多個文件。每個文件只含有一只股票某一天中十分鐘內的交易數據(所有的時間段都被標準化了,如9:25-9:35, 9:35-9:45等)。文件名包含數據的股票名稱、日期和時間段信息,它是按照日期、股票代碼和時間的順序組合而成的。用戶輸入股票代碼、日期和時間后,客戶端程序將其拼裝成一個文件名,然后向S3請求需要的文件。S3在快速取得文件和返回文件內容上是非常高效的。

  選擇Amazon S3除了技術優勢外,它的價格模型也是決定性因素之一。它的價格是透明的和可預測的。你可以精確地預測操作所需要的花費,并且能做到實時監控。

  對提交給S3的文件進行了精心設計再加上S3的廉價,決定了NASDAQ可以做到一直不進行數據卸載。S3上大部分花銷都在數據提交和下載時候產生,將大量文件放在那里一個月不動其實是花不了多少錢的。

  S3是按照市場回放所使用的容量收費的。因此NASDAQ就不用為了滿足幾個月甚至幾年之后滿負荷運轉的需要,而花巨資去購買大量的硬件,這大大降低了市場回放程序的開發和啟動成本。S3的可擴展性和價格模型使其可以按需擴容,不需要為了應對可能的用戶增長加速而預留空間。

  結論

  NASDAQ市場回放最近會發布一個新的版本,在此版本中除了報價以外還會加入交易數據。這次發布會對程序做重要修改,包括:報價數據與交易數據的同步、重寫圖形接口、一個包括交易及其特征的列表、計算關于交易的一些數據。主要的更新在一個月左右的開發時間內就實現了,回放程序的架構和AIR及S3平臺的的高品質和強大功能在此過程中充分顯現了出來。此外,在AIR上進行版本的更新也很方便,因為其會在每次啟動時檢查和安裝更新程序。NASDAQ市場回放程序的實現過程表明了一個數據驅動應用也能在有限的預算條件下快速地開發和部署,這真是一個令軟件業界興奮的時刻。這要歸功于平臺的不斷發展進步,云計算出現和強大的客戶端運行時。

集成系統網絡情報信息數據庫

CIO頻道人物視窗
CIO頻道方案案例庫
大數據建設方案案例庫
電子政務建設方案案例庫
互聯集成系統構建方案案例庫
商務智能建設方案案例庫
系統集成類軟件信息研發企業名錄