重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
商業智能BI在數據架構中處于前端分析的位置,其核心作用是對獲取數據的多維度分析、數據的切片、數據的上鉆和下鉆、cube等。通過ETL數據抽取、轉化形成一個完整的數據倉庫、然后對數據倉庫的數據進行抽取,而后是商業智能的前端分析和展示。
商業智能BI處理的數據量是極大的,如FineBI商業智能,自帶ETL,可在短時間內響應數據處理的請求,并輸出分析結果。
BI對穩定性以及易用性有一定要求,這是其他數據分析工具所不能比擬的。
大數據的應用的數據來源包括結構化數據,如各種數據庫、各種結構化文件、消息隊列和應用系統數據等,其次才是非結構化數據。
國內銀行系統用美國甲骨文Oracle數據庫不怕泄密嗎?典型的總有刁民想害朕的心態[靈光一閃]
為什么傳統行業幾乎都用Oracle,而互聯網行業幾乎都不用Oracle呢?首先銀行要求絕對穩定性,使用付費不開源產品可以完全責任委托,而且數據庫廠商還會有專門維護,省心,省力,安全。
mysql呢,開源產品,穩定性沒有o高,如果要深度開發倒是很省事,不過使用mysql就完全要看自己了,銀行不會為了一個隨時都有可能出現意外的定時炸彈找專門團隊維護,而且銀行交易量很大,但并非像互聯網應用一樣超級并發,大部分都是內部接口使用,而且分地區都是不同的服務器,每個地區只存儲自己相關的數據,比如你從廣東給山東異地轉賬,原始山東賬戶里并不存你的記錄,轉了之后山東數據庫才有記錄,在依賴oracle商業委托的基礎下,銀行還會有對賬,來保證數據一致性。
但是反觀互聯網企業就不一樣了,超級并發,小型機已經不滿足這種并發條件了,哪怕oracle足夠優秀,所以要使用應對更高并發特制的mysql,需要有專業的團隊進行維護,穩定性不如oracle,不過分布式集群可以避免這種情況。而且mysql因為開源還可以針對自己的需求特制功能。不過大部分企業用不上[捂臉],小公司用啥都一樣。阿里重新開發mysql除了自己用外還可以賣服務。
再說一句,阿里其實棄o選m其實除了并發問題,還因為oracle太貴,因為企業要考慮收支,就算阿里利潤率也比不上銀行[靈光一閃]
Facebook用戶量十分龐大,為什么還使用MySQL數據庫?盡管Facebook使用MySQL,但它們并不是一成不變的使用它。事實上,他們的團隊已經提交了許多MySQL核心和Innodb插件的高性能增強。他們的主要重點是增加性能計數器到Innodb。其他更改集中在IO子系統上,包括以下新功能:
1innodb_io_capacity:設置服務器的IO容量以確定后臺IO的速率限制
2innodb_read_io_threads,innodb_write_io_threads:設置后臺IO線程
3innodb_max_merged_io:設置可能合并到一個大IO請求中的相鄰IO請求的大數量
Facebook使用MySQL作為鍵值存儲,其中數據隨機分布在一大組邏輯實例中。這些邏輯實例分散在物理節點之間,負載均衡在物理節點級完成。Facebook已經開發了一個分區方案,其中全局ID被分配給所有的用戶數據。他們也有一個自定義的歸檔方案,它基于每個用戶的頻繁和最近的數據。大部分數據是隨機分布的。令人驚訝的是,據傳Facebook有1800個MySQL服務器,但只有3個全職DBA
Facebook主要將MySQL用于結構化數據存儲,例如墻貼,用戶信息等。這些數據在各個數據中心之間復制。對于blob存儲(照片,視頻等),Facebook使用一個自定義的解決方案,涉及外部的CDN和內部的NFS
同樣重要的是,Facebook大量使用Memcache,這是一種內存緩存系統,通過在RAM中緩存數據和對象來加速動態數據庫驅動的網站,以減少閱讀時間。Memcache是Facebook的主要緩存形式,大大減少了數據庫的負載。擁有一個緩存系統可以使Facebook的速度與調用數據一樣快。如果不需要訪問數據庫,則只需根據用戶標識從緩存中獲取數據
所以,“Facebook使用什么數據庫”似乎是一個簡單的問題,你可以看到他們已經添加了各種其他系統,使其真正的具有網絡可擴展性。但是,仍然可以自由地使用這樣一個觀點:“MySQL和Oracle或者MSSQLServer一樣好或者更好,因為就算只有Facebook使用它,它也有5億用戶!”