轉載一篇舊文《阿里研究員張瑞:把資料庫裝入容器不再是神話 》
張瑞,阿里集團資料庫技術團隊負責人,阿里巴巴研究員,Oracle ACE。雙十一資料庫技術總負責人,曾兩次擔任雙十一技術保障總負責人。自2005年加入阿里巴巴以來,一直主導整個阿里資料庫技術的不斷革新。
近日,在京舉行的2017中國資料庫技術大會上,來自阿里巴巴集團研究員張瑞發表了題為《面向未來的資料庫體系架構的思考》的主題演講。主要介紹了阿里資料庫技術團隊正在建設阿里下一代資料庫技術體系的想法和經驗,希望能夠把阿里的成果、踩過的坑以及面向未來思考介紹給與會者,為中國資料庫技術的發展出一份力。
演講全文:
我先介紹一下我自己,我2005年加入阿里一直在做資料庫方面的工作,今天這個主題是我最近在思考阿里巴巴下一代資料庫體系方面的一些想法,在這裡分享給大家,希望能夠拋磚引玉。大家如果能夠在我今天分享後,結合自己面對的實際場景,得到一些體會,有點想法的話,我今天分享的目的就達到了。
今天我會講以下幾方面內容:首先講一下我們在核心上的一點創新、資料庫怎麼實現彈性排程、關於智慧化的思考、最後是曾經踩過的坑和看到未來的方向。
阿里場景下資料庫所面臨的問題
首先說一下,阿里巴巴最早一代使用的資料庫技術是Oracle,後面大家也知道一件事情就是去IOE,去IOE過程中我們邁向了使用開源資料庫的時代,這個時代今天已經過去,這個過程大概持續了五六年,整個阿里巴巴有一個大家都知道的開源MYSQL分支--AliSQL,我們在上面做了大量的改進,所以我這裡列了一下在AliSQL上的一些改進,但今天我實際上並不想講這個,我想講一下面向未來的下一代資料庫技術、資料庫架構會往哪個方向走。
我覺得是這樣的,因為今天的阿里巴巴畢竟是一個技術的公司,所以很多時候我們會看比如說Google或者是一些網際網路的大的公司,他們在技術上創新點來自於哪裡?來自於問題。就是說今天在座的各位和我是一樣的,你所面對場景下的問題是什麼、你看問題深度如何決定了你今天創造的創新有多大。
所以今天我們重新看一下阿里面臨的問題是什麼,相信在座的各位一定也有這樣的想法,阿里所面臨的問題不一定是你們的問題,但我想說今天通過阿里面臨的問題,以及我們看到這些問題後所做的事情,期待能夠給大家帶來參考,希望大家也能夠看到自己所面臨的問題是什麼,你將如何思考。
可以看到其實阿里巴巴的應用和Facebook、Google的還是有很大區別的,我們也找他們做了交流,發現跟他們的業務場景真的不一樣,首先我們的主要應用是交易型的,這些應用會有些什麼要求,你會看到有這些點(見圖片),下面主要講一下我們的思考。
今天資料的高可用和強一致是非常重要的,資料不一致帶來的問題是非常非常巨大的,大家也用淘寶,也是阿里巴巴一些服務的使用者,資料不一致帶來的問題,每一個使用者、甚至我的父母都會關注這些事情。
第二,今天儲存成本是非常高的,所有的資料中心已經在用SSD,但資料的儲存成本依然是一個大型企業面臨的一個非常大的問題,這都是實實在在錢的問題。
另外剛才也提到了,資料都是有生命週期的,那麼資料尤其是交易資料是有非常明顯的冷和熱的狀態,大家一定很少看自己一年前在淘寶的購買記錄,但是當下的購買記錄會去看,那系統就需要經常會去讀它、更新它。
還有一個特點是今天阿里的業務還是相對簡單的,比如我們要在OLTP效能上做到極致性。還有一個阿里巴巴特有的點就是雙十一,雙十一本質上是什麼,本質上就是製造了一個技術上非常大的熱點效應。這對我們提出什麼樣的需求呢?需求就是一個極致彈性的能力,資料庫實際上在這個方向是非常欠缺的,資料庫怎麼樣去做到彈性伸縮是非常難的事情。
最後我想說說DBA,今天在座的很多人可能都是DBA,我想說一下阿里在智慧化這個方向上得到的思考是什麼樣的,我們有海量的資料,我們也有很多經驗很豐富的DBA,但這些DBA怎麼樣去完成下一步的轉型、怎麼樣不成為業務的瓶頸?資料庫怎麼樣做到自診斷、自優化。這是我們看到的問題,最後我也會來分享一下我在這方面的思考。
阿里在資料庫核心方向上的思考
我先講一下我們在資料庫核心上的思考。首先我很尊敬做國產資料庫的廠商,凡是在核心上改進的人都知道,其實每個功能都是要一行行程式碼寫出來都是非常不容易的,我想表達對國產資料庫廠商包括這些技術人的尊敬。今天我要講的內容是我第一次在國內的會議上來講,首先我會講一下AliSQL X-Cluster。X-Cluster是在AliSQL上做的一個三節點叢集,這是我們在引入了Paxos一致性協議,保證MySQL變成一個叢集,並且這個叢集具有資料強一致、面向異地部署,且能夠容忍網路高延遲等一系列特性。
今天很多資料庫都會和Paxos聯絡在一起,比如大家都知道的Google的Spanser資料庫,但是以前大家沒有特別想過資料庫和Paxos會有什麼關係,其實以前確實沒有什麼關係的,但是今天的資料庫在幾個地方是需要用到Paxos協議的,第一個我們需要用Paxos來選舉,尤其在高可用的場景下需要唯一地選舉出一個節點作為主節點,這就需要用到Paxos;第二是用Paxos協議來保證資料庫在沒有共享儲存的前提下資料的強一致,就是資料怎麼樣在多個節點間保證是強一致,且保證高可用。
所以說現在的資料庫架構設計上Paxos的應用非常廣泛,今天外面很多展商包括Goolge Spanser也都在用Paxos協議和資料庫結合在一起來做。所以AliSQL的三節點叢集也是一樣,就是利用Paxos協議變成一個資料強一致的叢集。下面我大概解釋一下Paxos協議在資料庫裡的作用是什麼。
本質上來說Paxos也是現在通用的技術,大家都是搞資料庫的,簡單來說,Paxos協議用在我們資料庫裡面,就是一個事務組的提交在一個節點並落地後,必須在多個節點同時落地,也就是說原來寫入只需要寫入一個節點上,但是現在需要跨網路寫到另外一個節點上,這個節點可能是異地的,也可能是全球的另外一個城市,中間需要經過非常漫長的網路時延,這時候需要有一些核心技術。
我們的目標是什麼?首先沒有辦法抗拒物理時延,過去在資料庫上的操作只要提交到本地,但現在資料庫全球部署、異地部署,甚至跨網路,這個時延特性是沒有辦法克服的,但是在這種情況下我們能做到什麼?在時延增長情況下儘可能保證吞吐不下降,原來做多少QPS、TPS,這一點是可以保證的,只要工程做的好是可以保證的,但是時延一定會提升。
這也是大家經常在Goolgle Spanser論文裡看到的“我的時延很高”的描述,在這種時延很高的情況下,怎麼樣寫一個好的應用來保證可用、高吞吐,這是另外一個話題。大家很長一段時間裡已經習慣一個概念,那就是資料庫一定是時延很低的,時延高就會導致應用出問題,實際上這個問題要花另外一個篇幅去講,那就是應用程式必須要去適應這種時延高的資料庫系統。當然用了Batching和Pipelining技術,本質上是通用的工程優化,讓跨網路多複本同步變的高效,但是時延一定會增加。
實際上大家知道資料庫要做三副本或者三節點,本質上就是為了實現資料強一致,而且大家都在這個方向上做努力,比如Oracle前一段時間推出的Group replication,也是三節點技術,X-Cluster和它的區別是,我們一開始的目標就是跨城市,最開始設計的時候就認為這個節點一定要跨非常遠的距離來部署的,設計之初提出這個目標造成我們設計上、工程實踐上、包括最終的效能上有比較大的差異。
這裡我們也做了一些X-Cluster和Oracle的Group replication的對比,同城的環境下我們要比他們好一些;在異地場景下這個差異就更大了,因為我們本來設計的時候就是面向異地的場景。可能大家也知道,阿里一直在講異地多活的概念,就是IDC之間做異地多活怎麼樣能夠做到,所以最開始我們設計的就是面向異地的場景做的。
這是一個典型的X-Cluster在異地多活的場景下怎麼做的架構圖,這是一個典型的3城市4份資料5份日誌架構,如果要簡化且考慮資料儲存成本的話,實際上可以做到3份資料5份日誌,這樣的話就可以保證城市級、機房機、包括單機任何的故障都可以避免,並且是零資料丟失的,在今天我們可以這麼做,且能保證資料是零丟失、強一致的。在任何一個點上的資料至少會被寫到另一個城市的資料中心的資料庫裡面,這是我們X-Cluster設計之初的目標,這也是一個典型的異地多活的架構。
再講一個小的,但是非常實用的創新點,可能大家都比較感興趣,這就是X-KV。這裡還要說一下,我們所有的下一代技術元件都是以X開頭的。這個X-KV是基於原來MYSQL的Memcached plugin做的改進,做到非常高的效能,大家可能都瞭解MySQL的Memcached plugin,可以通過Memcached plugin的介面直接訪問InnoDB buffer 裡的資料,讀的效能可以做到非常高,這對於大家來說,或者對於所謂的架構師,或者設計的過程中意義在什麼地方呢?
那就是很多場景下不需要快取了,因為資料庫+快取結構基本上是所有業務通用的場景,但是快取的問題在於快取和資料庫裡的資料永遠是不一致的,需要一個同步或者失效機制來做這個事情。使用X-KV後讀的問題基本上就能解決掉。這是因為一份資料只要通過這個介面訪問就基本上做到和原來訪問快取差不多的能力,或者說在大部分情況下其實就不需要快取了。
第二是說它降低了應用的響應時間,原來用SQL訪問的話響應時間會比較高,我們在這上面做了一些改進,本來Memcached plugin外掛有一些支援資料的型別限制,包括對一些索引型別支援不太好,所以我們做了改進,這個大家都可以用的,如果用這個方式的話基本上很多快取系統是不需要的。
第三個事情我想講一下怎麼樣解決冷熱資料分離的,我們天然地利用了MySQL的框架,這裡就直接拿了MySQL的大圖來展示,大家可以看到MySQL本質上來說就是上面有個Client,中間有個Server,底下有個儲存層,在儲存層裡面可以有各種各樣的引擎,所以通過不同的引擎可以實現不同的特性。大家今天最常用的就是InnoDB引擎,每個儲存引擎的特性本質上是由其結構造成的。比如InnoDB採用B+ Tree的結構,它帶來的特性就是相對來說讀和寫都比較均衡,因為發展了這麼多年確實是比較成熟的。
比如我們現在選擇RocksDB,這是因為我們和Facebook在RocksDB上有一些合作,就是把它引入到MySQL上面,它本質的結構是LSM Tree,這個結構就帶來的好處包括寫入比較友好、壓縮的特性好等。把它引入進來對我們的改革還不僅僅是引入了一個結構,而是今天我們用這兩種引擎解決我們今天資料分離的問題。我們也跟Facebook有過一些交流,RocksDB今天並沒有那麼穩定、那麼好,但是作為InnoDB儲存引擎的補充的話,是非常有效的。
尤其在穩定資料庫的背景下,使用者今天怎麼樣才能對自己的資料的冷熱沒有太多的感覺,因為大家可能也知道,你們以前也有一些資料的分離,但是對應用方來說,需要把資料從某個儲存倒到某個儲存裡,然後再刪掉;或者動不動DBA去找業務開發方說你的儲存空間不夠了,佔用很多空間,能不能刪一些資料或者把這些資料匯入到成本更低的儲存引擎裡。我們經常這麼幹,這裡說的直白一點,我相信大家都這麼幹過。
但是用這種雙引擎結構的話,RocksDB壓縮率高的特性,特別是OLTP行儲存的場景下,能夠給我們帶來比較大的收益。所以我們可以把這兩個引擎在MySQL特性下面把它結合起來,並且可以利用到比較廉價的架構,尤其是LSM Tree這種架構,他對廉價的儲存介質是比較友好的,因為他的寫都是順序寫的。這就是我們今天在資料庫核心上面的一些思考。
資料庫為什麼要實現彈性排程
第二部分,我想說一下資料庫彈性排程這個事,大家都知道阿里雙十一,雙十一對我們來說最大的挑戰就是應用程式可能已經很容易去做彈性排程,包括上雲、彈性擴容和縮容,但是資料庫確實比較難,我們也在這上面也探索了一段時間,今天會把我們的思考分享給大家。
我之前聽好多人說資料庫容器化是個偽命題,為什麼要做容器化,為什麼要把資料庫放到容器裡呢?第二也有一些新技術,比如剛才的分享嘉賓也提到的,把儲存放在遠端通過網路訪問是可能的。但是我們從正向來思考,先別想資料庫彈性排程可能不可能,資料庫如果要實現彈性排程,它的前提是什麼?
我們先去想資料庫要像應用一樣非常簡單的彈性排程,那麼資料庫要做到什麼?我覺得有兩大前提是必須要做的:1、它必須要放到一個容器裡;2、計算和儲存必須分離。因為如果計算和儲存本質上不分離的話,資料庫基本上沒有辦法彈性排程。大家知道計算資源是很容易被移動的,但是儲存資源基本上很難在短時間內移動它,所以做彈性是非常非常困難的。所以這是兩大基礎條件。
在我們的場景下如果你也碰到這種問題的話,那就不是偽命題,我覺得這個東西合不合理,更多時候不是技術有沒有正確性,而是在你的場景下是否需要它,所以今天我們就做了兩件事情,第一是把它放到容器裡面,我們目前物理機,VM和Docker都在支援,有一層會把容器的複雜性遮蔽掉,資料庫一定要放到容器裡。應用程式放到容器裡很多時候是為了部署,但是我們把資料庫放容器裡就是為了做排程,因為資料庫本身沒有特別多的釋出,不需要像應用一樣做頻繁釋出。做了容器化之後,資料庫在一個物理機上可以和其他的容器做混部。
我們做DBA的都有一些傳統的觀點,比如資料庫伺服器上肯定不能跑應用,資料庫肯定是不能用容器的。不知道在座的各位,每當有人或者你的老闆問你這個問題的時候,你是不是從來都是馬上回絕他說“資料庫肯定不能這麼做”,但是今天你也許可以告訴你的老闆可以試一試。
儲存計算分離,最早做資料庫的時候,儲存和計算其實就是分離的,用一個Oracle的資料庫,用一個SAN網路,底下接一個儲存,儲存和計算本身就是分離的,中間用SAN網路連起來。然後演進到用Local的盤,用SSD盤,用PC做伺服器。,那未來重新要回到儲存和計算分離的結構下,今天的網路技術的發展,不說專有網路,就說通用的25G網路,還有RDMA和SPDK等新技術的使用,讓我們具備了儲存計算分離的能力,讓資料庫儲存計算分離的條件已經具備。
今天在資料庫上已經看到大量優化的特性可以減少IO,可以把離散的IO變成順序的IO,可以對下層的儲存做的很友好。從儲存成本上來說,共享儲存會極大的降低成本,是因為儲存碎片會被極大地壓縮,因為原來每個機器上都空閒30%、50%的空間,其他的機器是很難利用到的,當你今天把這些碎片變成一個Pool的時候是有很大收益的。
還有資料庫未來如果採用儲存和計算分離的話,就會打破目前主流的資料庫一主一備的架構,這個架構至少有一半的計算資源是被完全浪費的,不管你的備庫是否用來做報表或者其他的應用,但是基本是浪費的。如果可以做到共享儲存,那這將是一個巨大的收益。這是我們在排程上的思考,明天分會場上也會有一個阿里同學就這個主題給大家做容器和儲存資源上的細節介紹,我今天只講了一個大概。
DBA未來的工作內容是什麼?
最後講一下DBA的事情,剛才也在說,我這裡說從自動化走向智慧化,我們內部講從自助化走向智慧化,不知道大家是不是受到一個困擾,業務發展的速度遠遠大於DBA人數的增長,如果你沒有後面的這些我可以不講了,但是如果你有,你可以聽一下我們在這方面的思考,我們也碰到同樣的問題,DBA要怎麼樣的發展,自動化的下一步應該做什麼,很多人說DBA是不是會被淘汰掉,至少我們想清楚了這些問題之後,阿里的DBA不糾結這個事情,所以我今天跟大家分享一下這個思考。
首先我們今天做了一個事情,我們放棄了原來的思路,原來的思路是什麼呢?最早的時候我們每個上線的SQL都需要DBA看一下;第二個階段,我們做了一個系統,在每個SQL上線之前系統都要預估一下它的效能好不好,如果好才上線。所有我們今天覺得最大的變化和思考是什麼?所有基於單條語句的優化都是沒有特別多意義的,因為只有基於大的資料和計算,才有可能變成一個智慧化的東西,否則都是基於規則的。
基於規則的系統是很難有特別長久的生命力,因為有永遠寫不完的規則。我們也曾經做過這樣的嘗試,一些SQL進來的時候,系統要對它進行一些判斷,最後發現永遠寫不完的規則。所以後來我們就找到了另外一個方向,我相信今天在座的所有人,你所在的公司不論大小都都有一個監控系統,我們就從這個監控系統出發,怎麼樣把一個監控系統變成一個智慧的優化引擎,我們在這裡也不說是大腦,就說是引擎好了。這個引擎會做什麼?
首先來說,我們已經放棄掉基於單條SQL的優化,因為沒有意義,DBA也沒有審閱單條SQL,系統去看單條SQL的意義也不大。今天我們的第一個場景是說大量的資料,大量的資料是什麼?我們就從我們的監控系統出發,提出了第一個目標,把每一條執行的SQL採集下來,不是取樣,是每一條。在規模比較大的系統來說對儲存來說是個巨大的壓力,因為這樣會產生大量的副產品。
就像Facebook在做監控產品時產生的時序資料庫一樣,今天我們產生的副產品也是在時序資料庫方面帶來壓力,這個具體的我今天先不展開。我們採集每一條SQL的執行情況,因為我們在核心裡做了改進,可以把每條SQL的來源、路徑、以及它在資料庫裡所有的資訊全部採集下來。把監控指標壓到秒級,所有監控項的指標必須最小達到秒級,這是我們現有的技術能夠做到的。
另外,我們把應用端日誌和資料庫結合在一起。原來做資料庫的時候,應用方吼一嗓子說“資料庫有沒有問題啊”DBA說沒有問題。但是從應用那端看,其實看到資料庫有很多問題,包括應用報錯,包括響應時間,把應用端報錯也要和資料庫結合在一起,尤其是應用裡面報資料庫的錯誤,以及這一整條鏈路。
響應時間,只有應用端的響應時間才是真正意義上可以衡量一個資料庫是不是好的指標,而不是資料庫本身怎麼樣,什麼Load低啊,CPU利用率多少。當把這些資料全部採集下來之後,這些大量的時序資料我們叫做副產品,這對我們整個鏈路產生了一個巨大的壓力。我們做整個監控系統平臺的同學覺得日子要活不下去了,因為原來的儲存系統支撐不了、分析系統支撐不了、原來的平臺計算不出來。所以先從這個目標考慮,基於鏈路做了巨大的改進,包括怎麼樣實現廉價儲存、怎麼樣實時分析,這是儲存和計算的要求。
我們今天這個目標是在阿里內部明確提的,我們希望兩到三年內希望大部分把DBA的工作替換掉,我不知道兩到三年能不能做到,我希望能做到。其實今天DBA是這樣的,DBA的工作本質上分為兩類,第一類就是運維,但運維本質上來說是比較好解決的,不管是用雲,小公司用雲全搞定,大公司基本上都有一些自動化運維的系統。
但是最難解決的就是剛才我說的診斷和優化。我也瞭解過很多公司,比如說Google、facebook,我說你們為什麼沒有DBA呢?他們說我們沒有DBA,沒有像國內這種特別傳統的針對診斷和效能優化的DBA,這種職責很少。所以這個東西希望能夠做到。
最後我們有了資料、有了計算,我們覺得未來的方向可能就是現在比較火的機器學習,這個主題明天也有一個阿里同學會來分享,機器學習這裡我就不多講了,因為我覺得我們也在入門,所以沒有什麼值得講的,但是我們覺得這個設計挺有戲的,你只要積累足夠的資料和計算的話這個事情還是挺有戲的。
我們對資料庫未來的其他思考
最後一頁PPT我用大白話講一下我對整個資料庫體系的一些理解。
今天在一個公司裡邊沒有一個儲存或者是資料庫可以解決所有問題,今天越來越多的趨勢看到,資料儲存的多樣性是必然會存在的,因為行存有行存的優勢、列存有列存的優勢、做計算有計算的優勢、做分析有做分析的優勢、做OLTP有OLTP的優勢,不要指望,或者很難指望一個系統幹所有的事情很,這個話我說了可能不太好,但是確實比較難,但是我們看到的一點是什麼?就是每個技術或產品在生產中幹一件事情可以幹到最好,你就用它做的最好的那件事解你的問題就好了。
這就回到之前的問題,我們也走過一些彎路,資料儲存型別越來越多,今天用這個明天用那個,怎麼辦?我們的運維沒法搞定,這個支援很痛苦。
所以今天我們建議建立兩個平臺:1、建立一個支撐的平臺,這個支撐的平臺儘可能把下層儲存的複雜性遮蔽掉,對上層提供統一的介面和服務;2、建立一個服務的平臺,明確面向研發的平臺,研發人員可以直接通過這個平臺來用資料庫的服務。我看到很多公司把運維平臺和DBA開發的平臺混在一起,但阿里的思路是,支撐平臺和服務平臺是兩個分層的平臺,支撐平臺在下面,上層服務平臺為所有的開發人員服務,開發人員上了這個平臺就能看到我用了什麼資料庫,效能怎麼樣,在上面可以做什麼事情,這樣就可以大量節省DBA的人力。
我們內部有句開玩笑的話叫“不節省人力的平臺、不節省成本的技術都是耍流氓”,這句話怎麼講?就是說我們的自動化系統,尤其是大公司越建越多,最後的結果就是人沒有能力了,我不知道大家有沒有這個問題,這就是我最後講的一點,自動化系統的悖論。每個公司每個人今天你們在做自動化系統的過程中有沒有發生一件事情?反正在阿里是發生了,就是人的能力弱化了。
這個自動化系統的悖論是我們無意中看到的,在講飛機的自動駕駛的時候,因為自動駕駛做的足夠好,當出現緊急問題的時候,飛機駕駛員反而沒有足夠的能力去處理緊急的情況,這就是自動化系統的悖論。
可以對比看一下,我們今天做了很多自動化系統,結果人只會點系統,系統一卡殼就完蛋,很多次生故障都是出現在系統卡殼,卡殼人搞不定,怎麼辦?這是今天要去想的問題,在這個過程中今天所有帶團隊的或者今天在這個體系的人都要思考的問題,我們也在直面這個問題,讓人的能力和系統的能力能夠結合在一起,這是另外一個話題,我今天不能給出答案,但是要特別重視這些問題。
不要相信那些已經過期的神話,資料庫儲存和計算是可以分離的,資料庫也是可以放在容器裡的,但你真的要去看一下,原來那些神話或者是那個背後它的問題到底是什麼,其實現在可能都已經有解法了,所以在座的各位,當你的老闆、CTO或者什麼人來問你“能不能做到這樣?”我希望你能告訴他“我能!”
我們內部有一句話原來我們的DBA哪裡看過一篇文章,說DBA的概念是什麼?我印象特別深,有一個開發的同學在底下的回覆是說“DBA就是一群永遠在說不的人”就是不能這樣不能那樣,我們今天我覺得未來我們變成一群永遠可以說“yes”,說“可以”的人,謝謝!
轉自:http://www.sohu.com/a/143113774_629652
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29487349/viewspace-2640413/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 懂了這個道理,人月神話不再是神話!
- 裁員潮此起彼伏,轉行資料分析師仍舊可期
- 黑神話畫素版(懷舊服)
- 使用scrapy框架把資料非同步寫入資料庫框架非同步資料庫
- 把雲資料庫帶回家!阿里雲釋出POLARDB Box資料庫一體機資料庫阿里
- ORACLE 資料庫管理員的職責(轉)Oracle資料庫
- 重磅 | 把雲資料庫帶回家!阿里雲釋出POLARDB Box資料庫一體機資料庫阿里
- 為什麼不建議把資料庫部署在docker容器內?資料庫Docker
- sqlserver資料庫下載安裝SQLServer資料庫
- 阿里雲IoT流轉到postgresql資料庫方案阿里SQL資料庫
- Python3爬蟲資料入資料庫---把爬取到的資料存到資料庫,帶資料庫去重功能Python爬蟲資料庫
- DBeaver安裝教程(開發人員和資料庫管理員通用資料庫管理工具)資料庫
- 一篇長文帶你在python裡玩轉Json資料PythonJSON
- python下載萬方資料庫文獻Python資料庫
- 一張圖讀懂阿里雲資料庫架構與選型阿里資料庫架構
- 把大象裝入貨櫃裡——Java容器記憶體拆解Java記憶體
- 長文:一篇"完美"的資料庫產品文件都有啥資料庫
- python資料視覺化神庫:Matplotlib快速入門Python視覺化
- 把 Windows 裝進 Docker 容器裡WindowsDocker
- 下載和安裝MySQL資料庫MySql資料庫
- 阿里雲影片點播轉碼 舊版阿里
- 把TXT文字匯入SQLServer 出錯:資料轉換失敗SQLServer
- mysql資料庫的安裝(圖文詳解)MySql資料庫
- 還不瞭解資料庫?Smartbi一文帶你入門資料庫!資料庫
- [Docker核心之容器、資料庫檔案的匯入匯出、容器映象的匯入匯出]Docker資料庫
- 大話 資料入門
- MySQL資料庫下載及安裝教程MySql資料庫
- 面試官問:我把資料庫部署在Docker容器內,你覺得如何?面試資料庫Docker
- 多例項資料庫一個用PSU(轉載)資料庫
- 資料庫入門之3張表對比關係型與非關係型資料庫資料庫
- Oracle:容器資料庫簡介Oracle資料庫
- 對話南大通用張益:企業需要怎樣的分散式資料庫?分散式資料庫
- Oracle資料庫遷移至PolarDb(阿里雲資料庫)Oracle資料庫阿里
- Mysql實現定時清空一張表的舊資料並保留幾條資料MySql
- 艾瑞諮詢:2020年中國容器雲市場研究報告(附下載)
- 2023年資料庫發展研究報告(附下載)資料庫
- 把業務邏輯寫入應用程式,而不是資料庫資料庫
- 1.2.10. 任務10:下載並安裝資料庫及資料庫更新資料庫