主頁 > 資料庫 > 云計算、大資料、人工智能讓你過生美好生活

云計算、大資料、人工智能讓你過生美好生活

2020-10-15 21:38:36 資料庫

我今天要講這三個話題,一個是云計算,一個大資料,一個人工智能,我為什么要講這三個東西呢?因為這三個東西現在非常非常的火,它們之間好像互相有關系,一般談云計算的時候也會提到大資料,談人工智能的時候也會提大資料,談人工智能的時候也會提云計算,所以說感覺他們又相輔相成不可分割,如果是非技術的人員來講可能比較難理解說這三個之間的相互關系,所以有必要解釋一下,

 

一、云計算最初是實作資源管理的靈活性

 

我們首先來說云計算,云計算最初的目標是對資源的管理,管理的主要是計算資源,網路資源,存盤資源三個方面,

 

 

 

1.1 管資料中心就像配電腦

 

什么叫計算,網路,存盤資源呢?就說你要買臺筆記本電腦吧,你是不是要關心這臺電腦什么樣的CPU啊?多大的記憶體啊?這兩個我們稱為計算資源,

 

這臺電腦要能上網吧,需要有個網口可以插網線,或者有無線網卡可以連接我們家的路由器,您家也需要到運營商比如聯通,移動,電信開通一個網路,比如100M的帶寬,然后會有師傅弄一根網線到您家來,師傅可能會幫您將您的路由器和他們公司的網路連接配置好,這樣您家的所有的電腦,手機,平板就都可以通過您的路由器上網了,這就是網路,

 

您可能還會問硬碟多大啊?原來硬碟都很小,10G之類的,后來500G,1T,2T的硬碟也不新鮮了,(1T是1000G),這就是存盤,

 

對于一臺電腦是這個樣子的,對于一個資料中心也是同樣的,想象你有一個非常非常大的機房,里面堆了很多的服務器,這些服務器也是有CPU,記憶體,硬碟的,也是通過類似路由器的設備上網的,這個時候的一個問題就是,運營資料中心的人是怎么把這些設備統一的管理起來的呢?

 

1.2 靈活就是想啥時要都有,想要多少都行

 

管理的目標就是要達到兩個方面的靈活性,哪兩個方面呢?比如有個人需要一臺很小很小的電腦,只有一個CPU,1G記憶體,10G的硬碟,一兆的帶寬,你能給他嗎?像這種這么小規格的電腦,現在隨便一個筆記本電腦都比這個配置強了,家里隨便拉一個寬帶都要100M,然而如果去一個云計算的平臺上,他要想要這個資源的時候,只要一點就有了,

 

所以說它就能達到兩個方面靈活性,

  • 第一個方面就是想什么時候要就什么時候要,比如需要的時候一點就出來了,這個叫做時間靈活性,

  • 第二個方面就是想要多少呢就有多少,比如需要一個很小很小的電腦,可以滿足,比如需要一個特別大的空間,以云盤為例,似乎云盤給每個人分配的空間動不動就就很大很大,隨時上傳隨時有空間,永遠用不完,這個叫做空間靈活性,

 

空間靈活性和時間靈活性,也即我們常說的云計算的彈性,

 

為了解決這個彈性的問題,經歷了漫長時間的發展,

 

1.3 物理設備不靈活

 

首先第一個階段就是物理機,或者說物理設備時期,這個時期相當于客戶需要一臺電腦,我們就買一臺放在資料中心里,物理設備當然是越來越牛,例如服務器,記憶體動不動就是百G記憶體,例如網路設備,一個埠的帶寬就能有幾十G甚至上百G,例如存盤,在資料中心至少是PB級別的(一個P是1000個T,一個T是1000個G),

 

然而物理設備不能做到很好的靈活性,首先它不能夠達到想什么時候要就什么時候要、比如買臺服務器,哪怕買個電腦,都有采購的時間,突然用戶告訴某個云廠商,說想要開臺電腦,如果使用物理服務器,當時去采購啊就很難,如果說供應商啊關系一般,可能采購一個月,供應商關系好的話也需要一個星期,用戶等了一個星期后,這時候電腦才到位,用戶還要登錄上去開始慢慢部署自己的應用,時間靈活性非常差,第二是空間靈活性也不行,例如上述的用戶,要一個很小很小的電腦,現在哪還有這么小型號的電腦啊,不能為了滿足用戶只要一個G的記憶體是80G硬碟的,就去買一個這么小的機器,但是如果買一個大的呢,因為電腦大,就向用戶多收錢,用戶說他只用這么小的一點,如果讓用戶多付錢就很冤,

 

1.4 虛擬化靈活多了

 

有人就想辦法了,第一個辦法就是虛擬化,用戶不是只要一個很小的電腦么?資料中心的物理設備都很強大,我可以從物理的CPU,記憶體,硬碟中虛擬出一小塊來給客戶,同時也可以虛擬出一小塊來給其他客戶,每個客戶都只能看到自己虛的那一小塊,其實每個客戶用的是整個大的設備上其中的一小塊,虛擬化的技術能使得不同的客戶的電腦看起來是隔離的,我看著好像這塊盤就是我的,你看這呢這塊盤就是你的,實際情況可能我這個10G和您這個10G是落在同樣一個很大很大的這個存盤上的,

 

而且如果事先物理設備都準備好,虛擬化軟體虛擬出一個電腦是非常快的,基本上幾分鐘就能解決,所以在任何一個云上要創建一臺電腦,一點幾分鐘就出來了,就是這個道理,

 

這個空間靈活性和時間靈活性就基本解決了,

 

1.5 虛擬世界的賺錢與情懷

 

在虛擬化階段,最牛的公司是Vmware,是實作虛擬化技術比較早的一家公司,可以實作計算,網路,存盤的虛擬化,這家公司很牛,性能也做得非常好,然后虛擬化軟體賣的也非常好,賺了好多的錢,后來讓EMC(世界五百強,存盤廠商第一品牌)給收購了,

 

但是這個世界上還是有很多有情懷的人的,尤其是程式員里面,有情懷的人喜歡做一件什么事情呢?開源,這個世界上很多軟體都是有閉源就有開源,源就是源代碼,就是說某個軟體做的好,所有人都愛用,這個軟體的代碼呢,我封閉起來只有我公司知道,其他人不知道,如果其他人想用這個軟體,就要付我錢,這就叫閉源,但是世界上總有一些大牛看不慣錢都讓一家賺了去,大牛們覺得,這個技術你會我也會,你能開發出來,我也能,我開發出來就是不收錢,把代碼拿出來分享給大家,全世界誰用都可以,所有的人都可以享受到好處,這個叫做開源,

 

比如最近蒂姆·伯納斯·李就是個非常有情懷的人,2017年,他因“發明萬維網、第一個瀏覽器和使萬維網得以擴展的基本協議和演算法”而獲得2016年度的圖靈獎,圖靈獎就是計算機界的諾貝爾獎,然而他最令人敬佩的是,他將萬維網,也就是我們常見的www的技術無償貢獻給全世界免費使用,我們現在在網上的所有行為都應該感謝他的功勞,如果他將這個技術拿來收錢,應該和比爾蓋茨差不多有錢,

 

例如在閉源的世界里有windows,大家用windows都得給微軟付錢,開源的世界里面就出現了Linux,比爾蓋茨靠windows,Office這些閉源的軟體賺了很多錢,稱為世界首富,就有大牛開發了另外一種作業系統Linux,很多人可能沒有聽說過Linux,很多后臺的服務器上跑的程式都是Linux上的,比如大家享受雙十一,支撐雙十一搶購的系統,無論是淘寶,京東,考拉,都是跑在Linux上的,

 

再如有apple就有安卓,apple市值很高,但是蘋果系統的代碼我們是看不到的,于是就有大牛寫了安卓手機作業系統,所以大家可以看到幾乎所有的其他手機廠商,里面都裝安卓系統,因為蘋果系統不開源,而安卓系統大家都可以用,

 

在虛擬化軟體也一樣,有了Vmware,這個軟體非常非常的貴,那就有大牛寫了兩個開源的虛擬化軟體,一個叫做Xen,一個叫做KVM,如果不做技術的,可以不用管這兩個名字,但是后面還是會提到,

 

1.6 虛擬化的半自動和云計算的全自動

 

虛擬化軟體似乎解決了靈活性問題,其實不全對,因為虛擬化軟體一般創建一臺虛擬的電腦,是需要人工指定這臺虛擬電腦放在哪臺物理機上的,可能還需要比較復雜的人工配置,所以使用Vmware的虛擬化軟體,需要考一個很牛的證書,能拿到這個證書的人,薪資是相當的高,也可見復雜程度,所以僅僅憑虛擬化軟體所能管理的物理機的集群規模都不是特別的大,一般在十幾臺,幾十臺,最多百臺這么一個規模,這一方面會影響時間靈活性,雖然虛擬出一臺電腦的時間很短,但是隨著集群規模的擴大,人工配置的程序越來越復雜,越來越耗時,另一方面也影響空間靈活性,當用戶數量多的時候,這點集群規模,還遠達不到想要多少要多少的程度,很可能這點資源很快就用完了,還得去采購,所以隨著集群的規模越來越大,基本都是千臺起步,動輒上萬臺,甚至幾十上百萬臺,如果去查一下BAT,包括網易,包括谷歌,亞馬遜,服務器數目都大的嚇人,這么多機器要靠人去選一個位置放這臺虛擬化的電腦并做相應的配置,幾乎是不可能的事情,還是需要機器去做這個事情,

 

人們發明了各種各樣的演算法來做這個事情,演算法的名字叫做調度(Scheduler),通俗一點的說,就是有一個調度中心,幾千臺機器都在一個池子里面,無論用戶需要多少CPU,記憶體,硬碟的虛擬電腦,調度中心會自動在大池子里面找一個能夠滿足用戶需求的地方,把虛擬電腦啟動起來做好配置,用戶就直接能用了,這個階段,我們稱為池化,或者云化,到了這個階段,才可以稱為云計算,在這之前都只能叫虛擬化,

 

1.7 云計算的私有與公有

 

云計算大致分兩種,一個是私有云,一個是公有云,還有人把私有云和公有云連接起來稱為混合云,我們暫且不說這個,私有云就是把虛擬化和云化的這套軟體部署在別人的資料中心里面,使用私有云的用戶往往很有錢,自己買地建機房,自己買服務器,然后讓云廠商部署在自己這里,Vmware后來除了虛擬化,也推出了云計算的產品,并且在私有云市場賺的盆滿缽滿,所謂公有云就是虛擬化和云化軟體部署在云廠商自己資料中心里面的,用戶不需要很大的投入,只要注冊一個賬號,就能在一個網頁上點一下創建一臺虛擬電腦,例如AWS也即亞馬遜的公有云,例如國內的阿里云,騰訊云,網易云等,

 

亞馬遜呢為什么要做公有云呢?我們知道亞馬遜原來是國外比較大的一個電商,它做電商的時候也肯定會遇到類似雙11的場景,在某一個時刻大家都沖上來買東西,當大家都沖上買東西的時候,就特別需要云的時間靈活性和空間靈活性,因為它不能時刻準備好所有的資源,那樣太浪費了,但也不能什么都不準備,看著雙十一這么多用戶想買東西登不上去,所以需要雙十一的時候,創建一大批虛擬電腦來支撐電商應用,過了雙十一再把這些資源都釋放掉去干別的,所以亞馬遜是需要一個云平臺的,

 

然而商用的虛擬化軟體實在是太貴了,亞馬遜總不能把自己在電商賺的錢全部給了虛擬化廠商吧,于是亞馬遜基于開源的虛擬化技術,如上所述的Xen或者KVM,開發了一套自己的云化軟體,沒想到亞馬遜后來電商越做越牛,云平臺也越做越牛,而且由于他的云平臺需要支撐自己的電商應用,而傳統的云計算廠商多為IT廠商出身,幾乎沒有自己的應用,因而亞馬遜的云平臺對應用更加的友好,迅速發展成為云計算的第一品牌,賺了很多錢,在亞馬遜公布其云計算平臺財報之前,人們都猜測,亞馬遜電商賺錢,云也賺錢嗎?后來一公布財報,發現不是一般的賺錢,僅僅去年,亞馬遜AWS年營收達122億美元,運營利潤31億美元,

 

1.8 云計算的賺錢與情懷

 

公有云的第一名亞馬遜過得很爽,第二名Rackspace過的就一般了,沒辦法,這就是互聯網行業的殘酷性,多是贏者通吃的模式,所以第二名如果不是云計算行業的,很多人可能都沒聽過了,第二名就想,我干不過老大怎么辦呢?開源吧,如上所述,亞馬遜雖然使用了開源的虛擬化技術,但是云化的代碼是閉源的,很多想做又做不了云化平臺的公司,只能眼巴巴的看著亞馬遜掙大錢,Rackspace把源代碼一公開,整個行業就可以一起把這個平臺越做越好,兄弟們大家一起上,和老大拼了,

 

于是Rackspace和美國航空航天局合作創辦了開源軟體OpenStack,如圖所示OpenStack的架構圖,不是云計算行業的不用弄懂這個圖,但是能夠看到三個關鍵字,Compute計算,Networking網路,Storage存盤,還是一個計算,網路,存盤的云化管理平臺,

 

當然第二名的技術也是非常棒的,有了OpenStack之后,果真像Rackspace想象的一樣,所有想做云的大企業都瘋了,你能想象到的所有如雷貫耳的大型IT企業,IBM,惠普,戴爾,華為,聯想等等,都瘋了,原來云平臺大家都想做,看著亞馬遜和Vmware賺了這么多錢,眼巴巴看著沒辦法,想自己做一個好像難度還挺大,現在好了,有了這樣一個開源的云平臺OpenStack,所有的IT廠商都加入到這個社區中來,對這個云平臺進行貢獻,包裝成自己的產品,連同自己的硬體設備一起賣,有的做了私有云,有的做了公有云,OpenStack已經成為開源云平臺的事實標準,

 

1.9 IaaS, 資源層面的靈活性

 

隨著OpenStack的技術越來越成熟,可以管理的規模也越來越大,并且可以有多個OpenStack集群部署多套,比如北京部署一套,杭州部署兩套,廣州部署一套,然后進行統一的管理,這樣整個規模就更大了,在這個規模下,對于普通用戶的感知來講,基本能夠做到想什么時候要就什么什么藥,想要多少就要多少,還是拿云盤舉例子,每個用戶云盤都分配了5T甚至更大的空間,如果有1億人,那加起來空間多大啊,其實背后的機制是這樣的,分配你的空間,你可能只用了其中很少一點,比如說它分配給你了5個T,這么大的空間僅僅是你看到的,而不是真的就給你了,你其實只用了50個G,則真實給你的就是50個G,隨著你檔案的不斷上傳,分給你的空間會越來越多,當大家都上傳,云平臺發現快滿了的時候(例如用了70%),會采購更多的服務器,擴充背后的資源,這個對用戶是透明的,看不到的,從感覺上來講,就實作了云計算的彈性,其實有點像銀行,給儲戶的感覺是什么時候取錢都有,只要不同時擠兌,銀行就不會垮,

 

這里做一個簡單的總結,到了這個階段,云計算基本上實作了時間靈活性和空間靈活性,實作了計算,網路,存盤資源的彈性,計算,網路,存盤我們常稱為基礎設施Infranstracture, 因而這個階段的彈性稱為資源層面的彈性,管理資源的云平臺,我們稱為基礎設施服務,就是我們常聽到的IaaS,Infranstracture As A Service,

 

二、云計算不光管資源,也要管應用

 

 

有了IaaS,實作了資源層面的彈性就夠了嗎?顯然不是,還有應用層面的彈性,這里舉個例子,比如說實作一個電商的應用,平時十臺機器就夠了,雙十一需要一百臺,你可能覺得很好辦啊,有了IaaS,新創建九十臺機器就可以了啊,但是90臺機器創建出來是空的啊,電商應用并沒有放上去啊,只能你公司的運維人員一臺一臺的弄,還是需要很長時間才能安裝好的,雖然資源層面實作了彈性,但是沒有應用層的彈性,依然靈活性是不夠的,

 

有沒有方法解決這個問題呢?于是人們在IaaS平臺之上又加了一層,用于管理資源以上的應用彈性的問題,這一層通常稱為PaaS(Platform As A Service),這一層往往比較難理解,其實大致分兩部分,一部分我稱為你自己的應用自動安裝,一部分我稱為通用的應用不用安裝,

 

我們先來說第一部分,自己的應用自動安裝,比如電商應用是你自己開發的,除了你自己,其他人是不知道怎么安裝的,比如電商應用,安裝的時候需要配置支付寶或者微信的賬號,才能別人在你的電商上買東西的時候,付的錢是打到你的賬戶里面的,除了你,誰也不知道,所以安裝的程序平臺幫不了忙,但是能夠幫你做的自動化,你需要做一些作業,將自己的配置資訊融入到自動化的安裝程序中方可,比如上面的例子,雙十一新創建出來的90臺機器是空的,如果能夠提供一個工具,能夠自動在這新的90臺機器上將電商應用安裝好,就能夠實作應用層面的真正彈性,例如Puppet, Chef, Ansible, Cloud Foundary都可以干這件事情,最新的容器技術Docker能更好的干這件事情,不做技術的可以不用管這些詞,

 

第二部分,通用的應用不用安裝,所謂通用的應用,一般指一些復雜性比較高,但是大家都在用的,例如資料庫,幾乎所有的應用都會用資料庫,但是資料庫軟體是標準的,雖然安裝和維護比較復雜,但是無論誰安裝都是一樣,這樣的應用可以變成標準的PaaS層的應用放在云平臺的界面上,當用戶需要一個資料庫的時候,一點就出來了,用戶就可以直接用了,有人問,既然誰安裝都一個樣,那我自己來好了,不需要花錢在云平臺上買,當然不是,資料庫是一個非常難的東西,光Oracle這家公司,靠資料庫就能賺這么多錢,買Oracle也是要花很多很多錢的,然而大多數云平臺會提供Mysql這樣的開源資料庫,又是開源,錢不需要花這么多了,但是維護這個資料庫,卻需要專門招一個很大的團隊,如果這個資料庫能夠優化到能夠支撐雙十一,也不是一年兩年能夠搞定的,比如您是一個做單車的,當然沒必要招一個非常大的資料庫團隊來干這件事情,成本太高了,應該交給云平臺來做這件事情,專業的事情專業的人來自,云平臺專門養了幾百人維護這套系統,您只要專注于您的單車應用就可以了,

 

要么是自動部署,要么是不用部署,總的來說就是應用層你也要少操心,這就是PaaS層的重要作用,

 

 

 雖說腳本的方式能夠解決自己的應用的部署問題,然而不同的環境千差萬別,一個腳本往往在一個環境上運行正確,到另一個環境就不正確了,

而容器是能更好的解決這個問題的,

 

 

 

容器是 Container,Container另一個意思是集裝箱,其實容器的思想就是要變成軟體交付的集裝箱,集裝箱的特點,一是封裝,二是標準,

 

 

 

在沒有集裝箱的時代,假設將貨物從 A運到 B,中間要經過三個碼頭、換三次船,每次都要將貨物卸下船來,擺的七零八落,然后搬上船重新整齊擺好,因此在沒有集裝箱的時候,每次換船,船員們都要在岸上待幾天才能走,

 

 

 

有了集裝箱以后,所有的貨物都打包在一起了,并且集裝箱的尺寸全部一致,所以每次換船的時候,一個箱子整體搬過去就行了,小時級別就能完成,船員再也不用上岸長時間耽擱了,

 

這是集裝箱“封裝”、“標準”兩大特點在生活中的應用,

 

 

 

 

那么容器如何對應用打包呢?還是要學習集裝箱,首先要有個封閉的環境,將貨物封裝起來,讓貨物之間互不干擾,互相隔離,這樣裝貨卸貨才方便,好在 Ubuntu中的LXC技術早就能做到這一點,

 

封閉的環境主要使用了兩種技術,一種是看起來是隔離的技術,稱為 Namespace,也即每個 Namespace中的應用看到的是不同的 IP地址、用戶空間、程號等,另一種是用起來是隔離的技術,稱為 Cgroups,也即明明整臺機器有很多的 CPU、記憶體,而一個應用只能用其中的一部分,

 

所謂的鏡像,就是將你焊好集裝箱的那一刻,將集裝箱的狀態保存下來,就像孫悟空說:“定”,集裝箱里面就定在了那一刻,然后將這一刻的狀態保存成一系列檔案,這些檔案的格式是標準的,誰看到這些檔案都能還原當時定住的那個時刻,將鏡像還原成運行時的程序(就是讀取鏡像檔案,還原那個時刻的程序)就是容器運行的程序,

 

有了容器,使得 PaaS層對于用戶自身應用的自動部署變得快速而優雅,

 

三、大資料擁抱云計算

 

在PaaS層中一個復雜的通用應用就是大資料平臺,大資料是如何一步一步融入云計算的呢?

 

3.1 資料不大也包含智慧

 

一開始這個大資料并不大,你想象原來才有多少資料?現在大家都去看電子書,上網看新聞了,在我們80后小時候,資訊量沒有那么大,也就看看書,看看報,一個星期的報紙加起來才有多少字啊,如果你不在一個大城市,一個普通的學校的圖書館加起來也沒幾個書架,是后來隨著資訊化的到來,資訊才會越來越多,

 

首先我們來看一下大資料里面的資料,就分三種型別,一種叫結構化的資料,一種叫非結構化的資料,還有一種叫半結構化的資料,什么叫結構化的資料呢?叫有固定格式和有限長度的資料,例如填的表格就是結構化的資料,國籍:中華人民共和國,民族:漢,性別:男,這都叫結構化資料,現在越來越多的就是非結構化的資料,就是不定長,無固定格式的資料,例如網頁,有時候非常長,有時候幾句話就沒了,例如語音,視頻都是非結構化的資料,半結構化資料是一些xml或者html的格式的,不從事技術的可能不了解,但也沒有關系,

 

資料怎么樣才能對人有用呢?其實資料本身不是有用的,必須要經過一定的處理,例如你每天跑步帶個手環收集的也是資料,網上這么多網頁也是資料,我們稱為Data,資料本身沒有什么用處,但是資料里面包含一個很重要的東西,叫做資訊Information,資料十分雜亂,經過梳理和清洗,才能夠稱為資訊,資訊會包含很多規律,我們需要從資訊中將規律總結出來,稱為知識knowledge,知識改變命運,資訊是很多的,但是有人看到了資訊相當于白看,但是有人就從資訊中看到了電商的未來,有人看到了直播的未來,所以人家就牛了,你如果沒有從資訊中提取出知識,天天看朋友圈,也只能在互聯網滾滾大潮中做個看客,有了知識,然后利用這些知識去應用于實戰,有的人會做得非常好,這個東西叫做智慧intelligence,有知識并不一定有智慧,例如好多學者很有知識,已經發生的事情可以從各個角度分析的頭頭是道,但一到實干就歇菜,并不能轉化成為智慧,而很多的創業家之所以偉大,就是通過獲得的知識應用于實踐,最后做了很大的生意,

 

所以資料的應用分這四個步驟:資料,資訊,知識,智慧,這是很多商家都想要的,你看我收集了這么多的資料,能不能基于這些資料來幫我做下一步的決策,改善我的產品,例如讓用戶看視頻的時候旁邊彈出廣告,正好是他想買的東西,再如讓用戶聽音樂的時候,另外推薦一些他非常想聽的其他音樂,用戶在我的應用或者網站上隨便點點滑鼠,輸入文字對我來說都是資料,我就是要將其中某些東西提取出來,指導實踐,形成智慧,讓用戶陷入到我的應用里面不可自拔,上了我的網就不想離開,手不停的點,不停的買,很多人說雙十一我都想斷網了,我老婆在上面不斷的買買買,買了A又推薦B,老婆大人說,“哎呀,B也是我喜歡的啊,老公我要買”,你說這個程式怎么這么牛,這么有智慧,比我還了解我老婆,這件事情是怎么做到的呢?

 

 

 

3.2 資料如何升華為智慧

 

資料的處理分幾個步驟,完成了才最后會有智慧,

 

第一個步驟叫資料的收集,首先得有資料,資料的收集有兩個方式,第一個方式是拿,專業點的說法叫抓取或者爬取,例如搜索引擎就是這么做的,它把網上的所有的資訊都下載到它的資料中心,然后你一搜才能搜出來,比如你去搜索的時候,結果會是一個串列,這個串列為什么會在搜索引擎的公司里面呢,就是因為他把這個資料啊都拿下來了,但是你一點鏈接,點出來這個網站就不在搜索引擎它們公司了,比如說新浪有個新聞,你拿百度搜出來,你不點的時候,那一頁在百度資料中心,一點出來的網頁就是在新浪的資料中心了,另外一個方式就是推送,有很多終端可以幫我收集資料,比如說小米手環,可以將你每天跑步的資料,心跳的資料,睡眠的資料都上傳到資料中心里面,

 

第二個步驟是資料的傳輸,一般會通過佇列方式進行,因為資料量實在是太大了,資料必須經過處理才會有用,可是系統處理不過來,只好排好隊,慢慢的處理,

 

第三個步驟是資料的存盤,現在資料就是金錢,掌握了資料就相當于掌握了錢,要不然網站怎么知道你想買什么呢?就是因為它有你歷史的交易的資料,這個資訊可不能給別人,十分寶貴,所以需要存盤下來,

 

第四個步驟是資料的處理和分析,上面存盤的資料是原始資料,原始資料多是雜亂無章的,有很多垃圾資料在里面,因而需要清洗和過濾,得到一些高質量的資料,對于高質量的資料,就可以進行分析,從而對資料進行分類,或者發現資料之間的相互關系,得到知識,比如盛傳的沃爾瑪超市的啤酒和尿布的故事,就是通過對人們的購買資料進行分析,發現了男人一般買尿布的時候,會同時購買啤酒,這樣就發現了啤酒和尿布之間的相互關系,獲得知識,然后應用到實踐中,將啤酒和尿布的柜臺弄的很近,就獲得了智慧,

 

第五個步驟就是對于資料的檢索和挖掘,檢索就是搜索,所謂外事不決問google,內事不決問百度,內外兩大搜索引擎都是講分析后的資料放入搜索引擎,從而人們想尋找資訊的時候,一搜就有了,另外就是挖掘,僅僅搜索出來已經不能滿足人們的要求了,還需要從資訊中挖掘出相互的關系,比如財經搜索,當搜索某個公司股票的時候,該公司的高管是不是也應該被挖掘出來呢?如果僅僅搜索出這個公司的股票發現漲的特別好,于是你就去買了,其實其高管發了一個宣告,對股票十分不利,第二天就跌了,這不坑害廣大股民么?所以通過各種演算法挖掘資料中的關系,形成知識庫,十分重要,

 

 

 

3.3 大資料時代,眾人拾柴火焰高

 

當資料量很小的時候,很少的幾臺機器就能解決,慢慢的當資料量越來越大,最牛的服務器都解決不了問題的時候,就想怎么辦呢?要聚合多臺機器的力量,大家齊心協力一起把這個事搞定,眾人拾柴火焰高,

 

對于資料的收集,對于IoT來講,外面部署這成千上萬的檢測設備,將大量的溫度,適度,監控,電力等等資料統統收集上來,對于互聯網網頁的搜索引擎來講,需要將整個互聯網所有的網頁都下載下來,這顯然一臺機器做不到,需要多臺機器組成網路爬蟲系統,每臺機器下載一部分,同時作業,才能在有限的時間內,將海量的網頁下載完畢,

 

 

對于資料的傳輸,一個記憶體里面的佇列肯定會被大量的資料擠爆掉,于是就產生了基于硬碟的分布式佇列,這樣佇列可以多臺機器同時傳輸,隨你資料量多大,只要我的佇列足夠多,管道足夠粗,就能夠撐得住,

 

 

對于資料的存盤,一臺機器的檔案系統肯定是放不下了,所以需要一個很大的分布式檔案系統來做這件事情,把多臺機器的硬碟打成一塊大的檔案系統,

 

 

再如資料的分析,可能需要對大量的資料做分解,統計,匯總,一臺機器肯定搞不定,處理到猴年馬月也分析不完,于是就有分布式計算的方法,將大量的資料分成小份,每臺機器處理一小份,多臺機器并行處理,很快就能算完,例如著名的Terasort對1個TB的資料排序,相當于1000G,如果單機處理,怎么也要幾個小時,但是并行處理209秒就完成了,

 

 

 

 

所以說大資料平臺,什么叫做大資料,說白了就是一臺機器干不完,大家一起干,隨著資料量越來越大,很多不大的公司都需要處理相當多的資料,這些小公司沒有這么多機器可怎么辦呢?

 

3.4 大資料需要云計算,云計算需要大資料

 

說到這里,大家想起云計算了吧,當想要干這些活的時候,需要好多好多的機器一塊做,真的是想什么時候要,想要多少就要多少,例如大資料分析公司的財務情況,可能一周分析一次,如果要把這一百臺機器或者一千臺機器都在那放著,一周用一次對吧,非常浪費,那能不能需要計算的時候,把這一千臺機器拿出來,然后不算的時候,這一千臺機器可以去干別的事情,誰能做這個事兒呢?只有云計算,可以為大資料的運算提供資源層的靈活性,而云計算也會部署大資料放到它的PaaS平臺上,作為一個非常非常重要的通用應用,因為大資料平臺能夠使得多臺機器一起干一個事兒,這個東西不是一般人能開發出來的,也不是一般人玩得轉的,怎么也得雇個幾十上百號人才能把這個玩起來,所以說就像資料庫一樣,其實還是需要有一幫專業的人來玩這個東西,現在公有云上基本上都會有大資料的解決方案了,一個小公司我需要大資料平臺的時候,不需要采購一千臺機器,只要到公有云上一點,這一千臺機器都出來了,并且上面已經部署好了的大資料平臺,只要把資料放進去算就可以了,

 

云計算需要大資料,大資料需要云計算,兩個人就這樣結合了,

 

四、人工智能擁抱大資料

 

4.1 機器什么時候才能懂人心

 

雖說有了大資料,人的欲望總是這個不能夠滿足,雖說在大資料平臺里面有搜索引擎這個東西,想要什么東西我一搜就出來了,但是也存在這樣的情況,我想要的東西不會搜,表達不出來,搜索出來的又不是我想要的,例如音樂軟體里面推薦一首歌,這首歌我沒聽過,當然不知道名字,也沒法搜,但是軟體推薦給我,我的確喜歡,這就是搜索做不到的事情,當人們使用這種應用的時候,會發現機器知道我想要什么,而不是說當我想要的時候,去機器里面搜索,這個機器真像我的朋友一樣懂我,這就有點人工智能的意思了,

 

人們很早就在想這個事情了,最早的時候,人們想象,如果要是有一堵墻,墻后面是個機器,我給它說話,它就給我回應,我如果感覺不出它那邊是人還是機器,那它就真的是一個人工智能的東西了,

 

4.2 讓機器學會推理

 

怎么才能做到這一點呢?人們就想:我首先要告訴計算機人類的推理的能力,你看人重要的是什么呀,人和動物的區別在什么呀,就是能推理,我要是把我這個推理的能力啊告訴機器,機器就能根據你的提問,推理出相應的回答,真能這樣多好,推理其實人們慢慢的讓機器能夠做到一些了,例如證明數學公式,這是一個非常讓人驚喜的一個程序,機器竟然能夠證明數學公式,但是慢慢發現其實這個結果,也沒有那么令人驚喜,因為大家發現了一個問題,數學公式非常嚴謹,推理程序也非常嚴謹,而且數學公式很容易拿機器來進行表達,程式也相對容易表達,然而人類的語言就沒這么簡單了,比如今天晚上,你和你女朋友約會,你女朋友說:如果你早來,我沒來,你等著,如果我早來,你沒來,你等著,這個機器就比比較難理解了,但是人都懂,所以你和女朋友約會,你是不敢遲到的,

 

4.3 教給機器知識

 

所以僅僅告訴機器嚴格的推理是不夠的,還要告訴機器一些知識,但是知識這個事兒,一般人可能就做不來了,可能專家可以,比如語言領域的專家,或者財經領域的專家,語言領域和財經領域知識能不能表示成像數學公式一樣稍微嚴格點呢?例如語言專家可能會總結出主謂賓定狀補這些語法規則,主語后面一定是謂語,謂語后面一定是賓語,將這些總結出來,并嚴格表達出來不久行了嗎?后來發現這個不行,太難總結了,語言表達千變萬化,就拿主謂賓的例子,很多時候在口語里面就省略了謂語,別人問:你誰啊?我回答:我劉超,但是你不能規定在語音語意識別的時候,要求對著機器說標準的書面語,這樣還是不夠智能,就像羅永浩在一次演講中說的那樣,每次對著手機,用書面語說:請幫我呼叫某某某,這是一件很尷尬的事情,

 

人工智能這個階段叫做專家系統,專家系統不易成功,一方面是知識比較難總結,另一方面總結出來的知識難以教給計算機,因為你自己還迷迷糊糊,似乎覺得有規律,就是說不出來,就怎么能夠通過編程教給計算機呢?

 

4.4 算了,教不會你自己學吧

 

于是人們想到,看來機器是和人完全不一樣的物種,干脆讓機器自己學習好了,機器怎么學習呢?既然機器的統計能力這么強,基于統計學習,一定能從大量的數字中發現一定的規律,

其實在娛樂圈有很好的一個例子,可見一斑

有一位網友統計了知名歌手在大陸發行的 9 張專輯中 117 首歌曲的歌詞,同一詞語在一首歌出現只算一次,形容詞、名詞和動詞的前十名如下表所示(詞語后面的數字是出現的次數):

 

a 形容詞 b 名詞 c 動詞
0 孤獨:34 0 生命:50 0 愛:54
1 自由:17 1 路:37 1 碎:37
2 迷惘:16 2 夜:29 2 哭:35
3 堅強:13 3 天空:24 3 死:27
4 絕望:8 4 孩子:23 4 飛:26
5 青春:7 5 雨:21 5 夢想:14
6 迷茫:6 6 石頭:9 6 祈禱:10
7 光明:6 7 鳥:9 7 離去:10

 

如果我們隨便寫一串數字,然后按照數位依次在形容詞、名詞和動詞中取出一個詞,連在一起會怎么樣呢?

例如取圓周率 3.1415926,對應的詞語是:堅強,路,飛,自由,雨,埋,迷惘,稍微連接和潤色一下:

堅強的孩子,

依然前行在路上,

張開翅膀飛向自由,

讓雨水埋葬他的迷惘,

 

是不是有點感覺了?當然真正基于統計的學習演算法比這個簡單的統計復雜的多,

 

然而統計學習比較容易理解簡單的相關性,例如一個詞和另一個詞總是一起出現,兩個詞應該有關系,而無法表達復雜的相關性,并且統計方法的公式往往非常復雜,為了簡化計算,常常做出各種獨立性的假設,來降低公式的計算難度,然而現實生活中,具有獨立性的事件是相對較少的,

 

4.5 模擬大腦的作業方式

 

于是人類開始從機器的世界,反思人類的世界是怎么作業的,

 

 

 

人類的腦子里面不是存盤著大量的規則,也不是記錄著大量的統計資料,而是通過神經元的觸發實作的,每個神經元有從其他神經元的輸入,當接收到輸入的時候,會產生一個輸出來刺激其他的神經元,于是大量的神經元相互反應,最終形成各種輸出的結果,例如當人們看到美女瞳孔放大,絕不是大腦根據身材比例進行規則判斷,也不是將人生中看過的所有的美女都統計一遍,而是神經元從視網膜觸發到大腦再回到瞳孔,在這個程序中,其實很難總結出每個神經元對最終的結果起到了哪些作用,反正就是起作用了,

 

于是人們開始用一個數學單元模擬神經元

這個神經元有輸入,有輸出,輸入和輸出之間通過一個公式來表示,輸入根據重要程度不同(權重),影響著輸出,

 

 

 

于是將n個神經元通過像一張神經網路一樣連接在一起,n這個數字可以很大很大,所有的神經元可以分成很多列,每一列很多個排列起來,每個神經元的對于輸入的權重可以都不相同,從而每個神經元的公式也不相同,當人們從這張網路中輸入一個東西的時候,希望輸出一個對人類來講正確的結果,例如上面的例子,輸入一個寫著2的圖片,輸出的串列里面第二個數字最大,其實從機器來講,它既不知道輸入的這個圖片寫的是2,也不知道輸出的這一系列數字的意義,沒關系,人知道意義就可以了,正如對于神經元來說,他們既不知道視網膜看到的是美女,也不知道瞳孔放大是為了看的清楚,反正看到美女,瞳孔放大了,就可以了,

 

對于任何一張神經網路,誰也不敢保證輸入是2,輸出一定是第二個數字最大,要保證這個結果,需要訓練和學習,畢竟看到美女而瞳孔放大也是人類很多年進化的結果,學習的程序就是,輸入大量的圖片,如果結果不是想要的結果,則進行調整,如何調整呢,就是每個神經元的每個權重都向目標進行微調,由于神經元和權重實在是太多了,所以整張網路產生的結果很難表現出非此即彼的結果,而是向著結果微微的進步,最終能夠達到目標結果,當然這些調整的策略還是非常有技巧的,需要演算法的高手來仔細的調整,正如人類見到美女,瞳孔一開始沒有放大到能看清楚,于是美女跟別人跑了,下次學習的結果是瞳孔放大一點點,而不是放大鼻孔,

 

4.6 沒道理但做得到

 

聽起來也沒有那么有道理,但是的確能做到,就是這么任性,

 

神經網路的普遍性定理是這樣說的,假設某個人給你某種復雜奇特的函式,f(x):

 

 

 

不管這個函式是什么樣的,總會確保有個神經網路能夠對任何可能的輸入x,其值f(x)(或者某個能夠準確的近似)是神經網路的輸出,

 

如果在函式代表著規律,也意味著這個規律無論多么奇妙,多么不能理解,都是能通過大量的神經元,通過大量權重的調整,表示出來的,

 

4.7 人工智能的經濟學解釋

 

這讓我想到了經濟學,于是比較容易理解了,

 

 

我們把每個神經元當成社會中從事經濟活動的個體,于是神經網路相當于整個經濟社會,每個神經元對于社會的輸入,都有權重的調整,做出相應的輸出,比如工資漲了,菜價也漲了,股票跌了,我應該怎么辦,怎么花自己的錢,這里面沒有規律么?肯定有,但是具體什么規律呢?卻很難說清楚,

 

基于專家系統的經濟屬于計劃經濟,整個經濟規律的表示不希望通過每個經濟個體的獨立決策表現出來,而是希望通過專家的高屋建瓴和遠見卓識總結出來,專家永遠不可能知道哪個城市的哪個街道缺少一個賣甜豆腐腦的,于是專家說應該產多少鋼鐵,產多少饅頭,往往距離人民生活的真正需求有較大的差距,就算整個計劃書寫個幾百頁,也無法表達隱藏在人民生活中的小規律,

 

基于統計的宏觀調控就靠譜的多了,每年統計局都會統計整個社會的就業率,通脹率,GDP等等指標,這些指標往往代表著很多的內在規律,雖然不能夠精確表達,但是相對靠譜,然而基于統計的規律總結表達相對比較粗糙,比如經濟學家看到這些統計資料可以總結出長期來看房價是漲還是跌,股票長期來看是漲還是跌,如果經濟總體上揚,房價和股票應該都是漲的,但是基于統計資料,無法總結出股票,物價的微小波動規律,

 

基于神經網路的微觀經濟學才是對整個經濟規律最最準確的表達,每個人對于從社會中的輸入,進行各自的調整,并且調整同樣會作為輸入反饋到社會中,想象一下股市行情細微的波動曲線,正是每個獨立的個體各自不斷交易的結果,沒有統一的規律可循,而每個人根據整個社會的輸入進行獨立決策,當某些因素經過多次訓練,也會形成宏觀上的統計性的規律,這也就是宏觀經濟學所能看到的,例如每次貨幣大量發行,最后房價都會上漲,多次訓練后,人們也就都學會了,

 

4.8 人工智能需要大資料

 

然而神經網路包含這么多的節點,每個節點包含非常多的引數,整個引數量實在是太大了,需要的計算量實在太大,但是沒有關系啊,我們有大資料平臺,可以匯聚多臺機器的力量一起來計算,才能在有限的時間內得到想要的結果,

 

人工智能可以做的事情非常多,例如可以鑒別垃圾郵件,鑒別黃色暴力文字和圖片等,這也是經歷了三個階段的,第一個階段依賴于關鍵詞黑白名單和過濾技術,包含哪些詞就是黃色或者暴力的文字,隨著這個網路語言越來越多,詞也不斷的變化,不斷的更新這個詞庫就有點顧不過來,第二個階段時,基于一些新的演算法,比如說貝葉斯過濾等,你不用管貝葉斯演算法是什么,但是這個名字你應該聽過,這個一個基于概率的演算法,第三個階段就是基于大資料和人工智能,進行更加精準的用戶畫像和文本理解和影像理解,

 

由于人工智能演算法多是依賴于大量的資料的,這些資料往往需要面向某個特定的領域(例如電商,郵箱)進行長期的積累,如果沒有資料,就算有人工智能演算法也白搭,所以人工智能程式很少像前面的IaaS和PaaS一樣,將人工智能程式給某個客戶安裝一套讓客戶去用,因為給某個客戶單獨安裝一套,客戶沒有相關的資料做訓練,結果往往是很差的,但是云計算廠商往往是積累了大量資料的,于是就在云計算廠商里面安裝一套,暴露一個服務介面,比如您想鑒別一個文本是不是涉及黃色和暴力,直接用這個在線服務就可以了,這種形勢的服務,在云計算里面稱為軟體即服務,SaaS (Software AS A Service)

 

于是工智能程式作為SaaS平臺進入了云計算,

 

五、云計算,大資料,人工智能過上了美好的生活

 

終于云計算的三兄弟湊齊了,分別是IaaS,PaaS和SaaS,所以一般在一個云計算平臺上,云,大資料,人工智能都能找得到,對一個大資料公司,積累了大量的資料,也會使用一些人工智能的演算法提供一些服務,對于一個人工智能公司,也不可能沒有大資料平臺支撐,所以云計算,大資料,人工智能就這樣整合起來,完成了相遇,相識,相知,

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/173202.html

標籤:大數據

上一篇:不走尋常路

下一篇:mysql的各種join連接

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more