從0到1的PostgreSQL轉型之路

2021-09-17 19:10:27 字數 3218 閱讀 2740

postgresql 和 oracle 都是面向企業的高階資料庫,在設計理念、使用方法、功能等各方面有非常多的相通點。那麼作為一名有著多年 oracle 資料庫運維經驗的工程師,如何快速的從零開始來了解並熟練掌握 postgresql呢,完成華麗麗的轉型?

\\ 本次,我們採訪到了即將在 postgres 中國使用者2016大會上作分享的阿里雲架構師 曾文旌,請他來講講自身的工作經歷,以及在 postgressql 上的研究心得。

\\infoq:目前 postgresql 資料庫在阿里的使用場景有哪些?

\\

\

曾文旌:在阿里有很多內部應用在使用 postgresql。交易型別的應用或分析型的都有。有的應用使用  oracle ,應用中有較多的儲存過程,只能選擇 postgresql 去 o,專案週期才能達到預期。有的應用主體是交易型場景,兼顧部分分型業務,選用  postgresql 很好的滿足各類需求,切成相對低。

\\ 當然 lbs 相關的應用使用 postgresql 和 postgis 也是首選。資料量從幾十 gb 到幾個 t 的庫都有,postgresql 服務相當穩定,應用上線後很少出現問題。

\

\\

infoq:如何利用 postgresql 結合阿里自身的資料同步產品,實現異構資料庫的資料同步?

\\

\

曾文旌:阿里自身的資料同步產品:

\\ dts 已經支援了 postgresql 和 ppas。未來還會支援 greenplum。\\t

cdp 可以把很多分析型資料產品中的資料同步到 postgresql ppas 和 greenplum。 \\t

dbsync 工具集,包括 mysql2pgsql 和 pgsql2pgsql 我們團隊開發的資料同步工具,已經開源。\

\\

\\

\

曾文旌:我是從資料庫核心開發幹起的,在之前的公司接觸了很多異構資料遷移的案例,例如從 oracle 遷移到其他資料庫的情況。在阿里做過一段時間的dba,這段時間做了比較多內部的業務。有部分業務之前是使用 oracle 的,有去o需求。現在在阿里雲做核心開發和服務,接觸到類似需求的客戶就更多了。

\\ 關聯式資料庫的理論已經相當成熟,oracle 和 postgresql 都是該理論的比較完整的實現。oracle 產品化程度高一些,postgresql 這幾年的發展非常的快,效能可靠性都完全沒問題。接觸過一段時間的 oracle 的同學再上手 postgresql 是非常快的。大家碰到問題多相互交流,相信會提高得很快。

\

\\

infoq:阿里雲同時也在使用關係型資料庫 mysql,它和開源的 postgresql 資料庫是怎樣配合執行的?做了哪些優化措施?

\\

\

曾文旌:mysql 有很多獨到的優勢,網際網路企業大都選擇他,同時 postgresql 也有自己獨到的地方。有些應用同時使用 mysql 和 postgresql,他們把不同的資料存放在處理這類資料有優勢的關聯式資料庫服務中。再通過 cdp 這類服務把資料同步到 greenplum 這樣的分析性產品中產生報表。

\\ 我們在裡面做了很多優化:

\\ postgresql 不僅接入了阿里的內部開發平台 idb。集團的業務開發可以像使用 mysql 那樣使用 postgresql。他們用這個平台申請 postgresql,發布 ddl 等等,使用者習慣完全保留。\\t

打通了不同的資料庫產品間的資料通道。資料能很順利的進入 postgresql 和從 postgresql 取走。\\t

監控平台也完全接入 postgresql,資料庫的任何異常都會通知到 dba 和業務方。\\t

postgresql 核心做了安全加固,io優化,強化了資源隔離,使用者完全不會感到例項一會快一會慢。\

\\

infoq:您負責阿里集團 postgresql 相關業務和阿里雲 rds for postgresql 運維,大客戶上雲護航等工作,這期間遇到過哪些技術上的坑?有什麼解決方案?

\\

\

曾文旌:我們在給出方案和實施方案的過程中碰到的問題大多不是技術方面的,我想表達下面幾點:

\\ 目前 postgresql 的成熟程度已經能覆蓋絕大多數場景。很多之前在 oracle 的應用遷移到 postgresql 一樣穩定,使用同等的硬體滿足之前的業務。省掉了之前昂貴的 lincense 和服務費。\\t

在雲上使用 postgresql 更具優勢,我們了解硬體和作業系統,對資料庫核心更可控。之前需要付出的多維的成本一定比雲上的服務費用高。\\t

就遇到的問題,我舉個例子,比較具有普遍性:乙個雲上的使用者使用 postgresql 上線了乙個新業務,他發現效能很差。他立即通過工單給我們反饋,我排查發現了幾個慢 sql。使用者反饋之前應用跑在 oracle上是沒問題的,在 postgresql 上建立了和之前完全相同的索引,但還是慢,是不是 postgresql 不行?根據使用者的描述,我很快建議使用者建立了幾個輔助索引,之前的慢 sql 馬上變得飛快。別著急,還沒完,再跟使用者深入交流,發現他是 oracle dba,不太熟悉怎麼優化 postgresql 的索引,甚至不太明白 postgresql 上的查詢計畫一些細節字段表達的意思。由於關聯式資料庫相關的理論的是通用的,稍微理清幾個概念,再給出幾個調優引數,這位 dba 很快優化掉了現在資料庫中其他幾個稍微慢一些的 sql 語句,整個應用響應時間完全符合預期。使用者表示 postgresql 很好很強大,對它的信心大增。\\t

過去一段時間在阿里內部和雲上接觸了大量的使用者,比我來阿里之前接觸的總和還多。這總分證明了雲計算的魅力。同時也希望我們專業發服務能更多的幫助到大家,大家的業務飛速增長的同時,後端資料庫也完全能夠應對。\

\\

\\關於受訪者:

畢業於人民大學,從事資料庫核心開發和運維工作近10年。深入理解關聯式資料庫理論和實現。熟悉關聯式資料庫在傳統領域和網際網路的應用。擅長資料庫核心開發、sql查詢優化、資料庫調優。目前在阿里雲,從事阿里雲 postgresql、ppas、greenplum 等產品的核心開發和服務等工作。

讀書1 從0到1

總結你身邊是不是總有這樣的人,他特立獨行,有的時候厭煩規則,顯得與眾不同。如果有,請盯住他們,本書就以這類人為論述,作者對他們的迷戀堪稱瘋狂。最近看的一場電影 綠皮書 其中的唐雪莉和托尼就是這樣的人,托尼改掉歧視黑人的行為,甚至為黑人唐打工,而唐也與其他黑人格格不入,他特立獨行,不了解黑人 他是鋼琴...

需求從0到1

軟體是一種工具,是用來輔助人們解決某些問題的 相關的問題,組成問題領域 因此解決問題是軟體存在的價值,所以軟體的價值是符合某個問題領域的需求,從問題領域出發找構建軟體系統的重要性由此而得。充分了解問題領域,能夠幫助你理解需求 涉眾分析報告 通過以上大類,對專案範圍的社眾進行調查和訪談,書寫成涉眾報告...

《從0到1》雜感

從0到1 最近非常火,到處都在談論這本書。書中討論了很多問題,幾乎涵蓋了乙個初創企業要面對的方方面面。個人印象最深刻的,是書中對 壟斷企業 的描述。彼得.蒂爾給出了壟斷企業的四大特徵 專利技術 網路效應 規模經濟 品牌優勢。專利技術。專利技術是公司的核心優勢,很難被其他公司抄襲,最好領先行業平均水平...