❶ 大數據時代下,DBA該何去何從
大數據時代下,DBA該何去何從
資料庫管理員(DBA)的職能已擴展到數據管理、基礎架構管理以及工作負載和SLA管理上。作為大數據戰略的一部分,DBA的角色又是如何變化的呢?
數據管理
* 為成為數據管理專家而努力。雖然SQL資料庫可以擴展以處理大數據,但資料庫並不是最優解決方案。DBA正在預算方面做努力,在預算范圍內,以最低的成本滿足SLA。
* 出現數據ops概念。數據管理和數據治理。數據操作是團隊的一部分,在收集和創建數據時共享目標、協作工作。使用自動化來擠壓延遲、採取最合適的敏捷方案以提高提高效率。
* 管理、治理和軟體交付。維護資料庫模型和模式。在大數據中,從定義明確的轉換到應用程序和工程師之間的協同工作,一切都是具有探索性的。
* 雖然開發人員認為不需要數據管理,但為了後續的分析數據,DBA們仍需要進行數據管理。
* DBA從管理資料庫轉變為跨多個系統的數據工程師。他們關注的是數據如何從一個資料庫轉移到另一個資料庫、數據的消耗、數據的調整以及數據流程的管理,對於數據自動分配和執行來說這些都至關重要。
* DBA已經不再是單單只關注像SQLServer和Oracle這樣的個人產品,而是必須要處理好企業大數據實施方案的執行問題。
基礎架構和平台
DBA的角色已經被推到第一線上。對IT棧的演變負責。基礎設施和平台的認定范圍變的更大。
*這是一個不容忽視的大挑戰,應用程序所使用的資料庫技術不再歸於DBA的控制范圍內。遷移到雲上的比重越大,DBA的控制范圍就越小。數據越來越多,同時也在不斷推出新的資料庫。管理數據基礎設施、提出大數據的解決喝整合方案、掌握如何歸檔和處理災難恢復的技能。AWS似乎將雲中的資料庫選項綁定到了DBA上。DBA仍然需要在備份、災難恢復和海量存儲上多費心思。值得在備份和存儲方面進行更具戰略性的思考。
DBA比以往更重要,因此他們也需要學習:如何有效地集成存儲在RDBMS系統中的遺留數據,同時大數據技術也是必不可少的。
* 由於大數據改變了數據架構,DBA的存在可能需要不是立竿見影的,但確實是實實在在的。新技術為數據管理提供了新的契機,使DBA和數據模式打開了一個新時代。
* 事實上,沒有數據模式和Hadoop的NoSQL平台,以及支持它的一系列工具,會越來越多地部署在企業中。現在開發人員在數據本身的設計上有更多的影響力。
* 這在擴大DBA的專業范圍上起到了推動作用:必須學習NoSQL系統的機制和操作;掌握管理Hadoop集群的能力;實施「無需存儲數據存儲數據」的方法。
* 而且,NoSQL的靈活性是以數據完整性為代價,這種模型的難度更高。目前,許多公司的網路應用程序的數據完整性已經給靈活性讓位了。
* DBA必須適應設計和開發的風格變化。DBA也需要運行幾個關系系統,並且認真學習NoSQL技術,對指導公司做出的部署負責。將來可能會劃分出幾種類型的DBA:局限於技術的;傳統的管理員;努力學習並適應管理大數據的新技術和工具的。
* DBA始終是整個軟體開發流程的一部分。在目前的環境中,更是需要所有的DBA都參與到整個開發過程中,尤其是規劃、范圍界定和原型設計部分。DBA能為企業提供有關數據基礎設施功能、所需變更成本、潛在性能影響以及總體容量規劃等項目的具體信息。
*鑒於對數據的使用要求,更多特定數據平台范圍之外的技術正被用於實施解決方案。DBA不僅僅要專注於SQL、DDL等,還要掌握JavaScript、Java、.NET等技術。DBA會越來越精通應用容器化和系統容器化(Docker、Rkt、Linux容器等)。DBA壓力會越來越大,一旦與其他角色聯繫到一起,數據及其管理都是穿插著多條生命線,因此需要掌握的技術就不斷增加。
成功採用大數據策略的企業,早已經把DBA轉變為新型數據基礎管理員,包括NoSQL資料庫和Hadoop在內。與開發數據管理邏輯的數據開發人員、處理和准備數據的數據科學家以及業務線上的數據分析人員相結合,DBA是操作大數據戰略的重要部分。現在,DBA依賴於更智能的工具,這些工具可以管理並報告各種資料庫和技術框架的數據基礎架構和流程。
工作負載和SLA
* 工作結構消失了。有類型更為廣泛的問題需要解決。要實現混合的環境在流和批處理中交付新的工作負載,同時又能跟得上變化。
* 現在,有許多不在資料庫中管理數據,而是將數據組織成超級管理數據的數據生態系統一部分的做法。了解通信、鏈接的速度、安全性以及如何將來源匯集在一起。
* 比起以往,現在有更多的技術管理。理解並管理一個數據倉庫的技術方法有10到20種。為了能給問題選擇出正確的技術,便於管理,規模較大的企業正在考慮將搜索、NoSQL、Hadoop和GPU技術標准化。
* 從一個擁有資料庫領域知識的系統管理員,到現在需要掌握處理數據集成、非結構化數據、自然語言處理、文檔存儲和統計。工具集可以能夠簡化工作。關系資料庫不會有大的進展,但大數據存儲會有新變化。
1. 大數據時代,DBA的角色發生了重大變化。在很長一段時間里,DBA僅僅只是一個系統管理員。他們的確有SQL知識、知道該如何優化SQL,以及對構建資料庫的理解,但他們並沒有主動參與到資料庫系統里數據的特定用途上。
2. 大數據DBA對數據和非關系數據模型的應用程序有更深入的了解,並且必須具備執行數據集成的知識,這些數據集超出了用於商業智能(BI)應用的傳統提取——轉換——載入過程(ETL)。
❷ mysql select 大數據量表,如何優化 SQL 語句
你用 in語句就意味著你拋棄了索引了,in語句對索引不理想,可以先用table2和table1 查詢, 然後用結果再和table3匹配,這樣貌似給ID加上索引能用的充分點,
❸ 請教MS Sql Server 2008 大數據處理方案(10億以上)
如果你每次查找的數據都是在一個固定的范圍,那麼就可以按照這個條件來做表分區。
如果作為條件的欄位的記錄重復率不高,那麼創建索引肯定可以提高查詢速度。
另外不知道你每次查詢需要返回的數據量是多少?
❹ sqlserver2000 如何提高分頁查詢大數據量的效率
sqlserver2005及以上的版本有row_number()函數可以高效分頁,sqlserver2000的話只能看演算法了
❺ 大數據其實就是寫sql嗎
大數據產業上游是基礎支撐層,主要包括網路設備、計算機設備、存儲設備等硬體供應,此外,相關雲計算資源管理平台、大數據平台建設也屬於產業鏈上游;
大數據產業中游立足海量數據資源,圍繞各類應用和市場需求,提供輔助性的服務,包括數據交易、數據資產管理、數據採集、數據加工分析、數據安全,以及基於數據的IT運維等;
大數據產業下游則是大數據應用市場,隨著我國大數據研究技術水平的不斷提升,目前,我國大數據已廣泛應用於政務、工業、金融、交通、電信和空間地理等行業。
❻ 如何提高SQL Server大數據條件下的查詢速度
1.關於索引優化
建索引的選擇必須結合SQL查詢、修改、刪除語句的需要,一般的說法是在WHERE里經常出現的欄位建索引。如果在WHERE經常是幾個欄位一起出現而且是用AND連接的,那就應該建這幾個欄位一起的聯合索引,而且次序也需要考慮,一般是最常出現的放前面,重復率低的放前面。
SQL
Server提供了一種簡化並自動維護資料庫的工具。這個稱之為資料庫維護計劃向導(Database
Maintenance
Plan
Wizard
,DMPW)的工具也包括了對索引的優化。如果你運行這個向導,你會看到關於資料庫中關於索引的統計量,這些統計量作為日誌工作並定時更新,這樣就減輕了手工重建索引或者DBCC
INDEXDEFRAG所帶來的工作量。如果你不想自動定期刷新索引統計量,你還可以在DMPW中選擇重新組織數據和數據頁,這將停止舊有索引並按特定的填充因子重建索引。
2.
改善硬體(雙CPU,Raid
5,增加內存)
tempdb這個臨時資料庫,它對性能的影響較大。tempdb和其他資料庫一樣可以增大,可以縮小。當數據文件需要增長的時候,通常不能保持剩餘部分的連續性。這時文件就會產生碎片,這種碎片會造成性能下降。這種碎片屬於外來性碎片。要阻止在tempdb中產生外來性碎片,必須保證有足夠的硬碟空間。一般將tempdb的容量放到平均使用容量。而你也應該允許tempdb自動增長,比如你有個一個超大的join操作,它建立了一個超過tempdb容量的時候,該查詢將失敗。你還要設置一個合理的單位增長量。因為如果你設得太小,將會產生許多外來性碎片,反而會佔用更多資源。sqlserver調優最有效的做法之一,就是把爭奪資源的操作獨立出去。tempdb就是一個需要獨立出去的部分而tempdb和其他系統庫一樣是公用的,是存取最可能頻繁的庫,所有處理臨時表、子查詢、GROUP
BY、排序、DISTINCT、連接等等。它最適合放到一個具有快速讀寫能力的設備上。比如RAID0卷或RAID0+1卷上。
查詢語句一定要使用存儲過程;
3、查詢盡量使用TOP子句
4.將表按一定的約束分成子表,(如按分類)創建約束,在用Like
時,先用分類
and
like
,
應該可能解決問題.
而且效果立稈見影!(你要確定SQL會認識你建的分區視圖).我一個表有上百萬的記錄(700兆),用分區視圖後,查詢速度基本跟10萬行一樣.
如果還是太慢,還可以考濾分布式分區視圖!這總可以解決問題了吧!
關鍵在於你能否把大表按某種約束分解成子表.
❼ 關於SQL大數據量的優化問題.可以有哪些有效辦法
比如:
CREATE TABLE `admin` (
`username` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
❽ 如何優化大數據高並發量的系統的SQL語句提高效率
1、HTML靜態化
效率最高、消耗最小的就是純靜態化的html頁面,所以盡可能使網站上的頁面採用靜態頁面來實現,這個最簡單的方法其實也是最有效的方法。但是對於大量內容並且頻繁更新的網站,無法全部手動去挨個實現,於是出現了常見的信息發布系統CMS,像常訪問的各個門戶站點的新聞頻道,甚至他們的其他頻道,都是通過信息發布系統來管理和實現的,信息發布系統可以實現最簡單的信息錄入自動生成靜態頁面,還能具備頻道管理、許可權管理、自動抓取等功能,對於一個大型網站來說,擁有一套高效、可管理的CMS是必不可少的。
2、圖片伺服器分離
對於Web伺服器來說,不管是Apache、IIS還是其他容器,圖片是最消耗資源的,於是有必要將圖片與頁面進行分離,這是基本上大型網站都會採用的策略,他們都有獨立的圖片伺服器,甚至很多台圖片伺服器。這樣的架構可以降低提供頁面訪問請求的伺服器系統壓力,並且可以保證系統不會因為圖片問題而崩潰,在應用伺服器和圖片伺服器上,可以進行不同的配置優化,比如apache在配置ContentType的時候可以盡量少支持,盡可能少的LoadMole,保證更高的系統消耗和執行效率。 這一實現起來是比較容易的一現,如果伺服器集群操作起來更方便,如果是獨立的伺服器,新手可能出現上傳圖片只能在伺服器本地的情況下,可以在令一台伺服器設置的IIS採用網路路徑來實現圖片伺服器,即不用改變程序,又能提高性能,但對於伺服器本身的IO處理性能是沒有任何的改變。
3、資料庫集群和庫表散列
大型網站都有復雜的應用,這些應用必須使用資料庫,那麼在面對大量訪問的時候,資料庫的瓶頸很快就能顯現出來,這時一台資料庫將很快無法滿足應用,於是需要使用資料庫集群或者庫表散列。
4、緩存
緩存一詞搞技術的都接觸過,很多地方用到緩存。網站架構和網站開發中的緩存也是非常重要。架構方面的緩存,對Apache比較熟悉的人都能知道Apache提供了自己的緩存模塊,也可以使用外加的Squid模塊進行緩存,這兩種方式均可以有效的提高Apache的訪問響應能力。
網站程序開發方面的緩存,Linux上提供的Memory Cache是常用的緩存介面,可以在web開發中使用,比如用Java開發的時候就可以調用MemoryCache對一些數據進行緩存和通訊共享,一些大型社區使用了這樣的架構。另外,在使用web語言開發的時候,各種語言基本都有自己的緩存模塊和方法,PHP有Pear的Cache模塊,Java就更多了,.net不是很熟悉,相信也肯定有。