長文:一篇"完美"的資料庫產品文件都有啥

qing_yun發表於2023-11-03

資料庫文件,可以說是資料庫的“臉面”,是瞭解學習資料庫的主要手段。近些年國內資料庫產品層出不窮,使用者也是眼花繚亂。如何選擇、學習掌握一款資料庫產品,我的經驗就是可以先從文件入手。之前也接觸過不少國內資料庫產品,在文件上與如Oracle、MySQL等還存在不小差距,這點還需國內廠商更多重視文件工作。畢竟一份文件是否寫的完整、詳實、準確,關係到使用者是否能用好一款產品。下文是我根據之前的觀察,總結的一份個人認為較為完整的資料庫產品文件結構。希望對上手一個新資料庫,有所幫助。

1. 產品簡介

文件的第一個部分是產品簡介,使用者需要從這部分快速瞭解一個產品,並做出判斷是否符合自己的需求。因此這一部分不需要涉及很多技術細節,更多是描述“是什麼、做什麼”的問題。讓受眾能夠有簡單、直觀的瞭解即可。

1).產品概述

產品概述部分,需要準確描述產品的定位,即“是什麼”的問題。不要以為說清楚這個問題很簡單,很多產品連這個就基礎問題都沒有說清楚。舉個例子,如國外有一款產品Vitess,其官網主頁定位為“Scalable. Reliable. MySQL-compatible. Cloud-native. Database.”,透過這樣一系列名詞能讓我們對產品有個大致的印象。這裡有個誤區,儘量不要使用一些含糊的描述,如“企業級、金融級..”等描述。上述描述對使用者瞭解產品沒有任何幫助,屬於無用資訊。

2).適用場景

適用場景部分,將在“是什麼”的基礎上,進一步說明在產品在哪些場景有價值。透過這部分說明,讓使用者可以更加具象地理解產品的使用範圍。若描述很精準,甚至可以做到對號入座,讓使用者可以明確的知道是否適合自己。這裡的場景可以很寬泛,因為作為通用性產品來說,只要描述大致即可。具體到某一行業、某類業務,可以透過解決方案層面進行說明。

3).核心功能

上面的產品描述,使我們瞭解的產品“是什麼”,那麼核心功能部分就挑重點說明下產品“做什麼”。可以透過產品支援的具體功能進行說明。這裡需要說明的是,這裡的功能應該是對使用者有明確場景價值的,有實際受益的功能。例如某資料庫產品支援“彈性伸縮”,使用者就可以瞭解當業務出現徒增時,是可以實現靈活的擴容。避免出現一些偏重於技術性的功能描述,如“資料分片策略支援一致性Hash方式”,這樣非技術背景的同學很難知道這意味著什麼。

4).核心技術

有了場景和功能描述,下面就可以說明實現上述功能使用哪些核心技術,這是可以“秀肌肉”的環節,目的是使使用者更深入地瞭解功能實現原理,更加篤信產品能力。在核心技術選擇上,更多傾向於與前面核心功能能夠有對應關係,即透過什麼技術實現某種功能、進而延展為適用某些場景。這樣就形成從“技術-功能-場景”的閉環。

5).產品架構

產品架構部分,可透過一張簡圖,說明產品組成。注意這裡不是技術架構、部署架構,而是產品架構,因此無需關注實現細節,重點是讓使用者能快速瞭解產品是如何組成的,與上下游如何協同工作等就可以了。很多細節的如系統與子系統組成、技術棧和框架、介面和協議、資料架構和流程等是可以忽略了,避免對使用者造成干擾。

6).產品規格與版本

這部分是在使用者對產品定位、功能、技術有了一定了解後,說明下產品規格和版本,激發下潛在購買意願。很多產品都提供了個人版、標準版、企業版等不同版本或者提供了多種規格可供使用者選擇,這裡需要明示出來,特別需重點說明不同版本、規格的差異,方便使用者根據自身情況進行選擇。特別建議透過一個列表的形式進行說明,一目瞭然。

7).相容性說明

很多國產資料庫產品採用了相容性設計,其背後原因是希望藉助其他產品成熟生態進行擴充套件。常見如相容大型商業資料庫(如Oracle)或流行的開源資料庫(如MySQL、PostgreSQL)。對於很多使用者來說,接受一個全新的資料庫產品還是有一定難度的,如果有相容性則可以大大降低使用門檻。當然相容性是多方位的,包括開發、管理、監控等等,可透過對比的方式讓使用者快速瞭解。

8).使用限制

沒有產品是完美的,清楚的知道產品邊界對使用者很有意義。透過這些限制,可以很好地掌握想使用這一產品需要做哪些“妥協”。事前的知悉遠比事後暴露出問題重要的多,也是對使用者負責任的一種態度。

2. 快速上手

快速上手部分,是讓使用者在最短的時間內,體驗產品功能,完成一個使用閉環。這其中需包括從部署安裝、開發設計到應用開發等多個階段。在體驗場景設計上,可選擇最小功能為設計原則,能快速完成即可。如可能涉及到多個元件,也儘量減少來回互動,儘量透過在單一產品完成操作。

1).安裝部署

在安裝部署方面,可不循序最佳實踐,能快速完成即可。很多產品都提供瞭如一鍵安裝、All in One包、Docker映象、雲例項等方式,儘量降低安裝部署難度、降低對客戶端環境依賴。一般要求在五分鐘內可以完成環境準備工作,時間過長使用者會失去體驗耐心。以分散式資料庫為例,其涉及的元件非常多,安裝過程可能很複雜,提供快捷體驗環境尤為重要。以分散式資料庫-KunlunBase為例,就透過Docker映象的方式,可在數分鐘內完成一套包括多個計算節點、儲存節點的叢集構建過程,非常方便。

2).使用者操作

使用者操作部分,主要是為了配合後面體驗工作所必需的操作。常見的如例項啟停、使用者建立、許可權分配等。完整的管理操作不需要在此說明,也不建議透過圖形化介面完成,儘量透過同一終端就可以完成整個操作。

3).SQL操作

SQL 操作部分,使用者最為常用的SQL操作,通常包括表和索引的建立刪除,資料記錄的CRUD,簡單查詢(含表關聯),事務操作等。透過以上部分,小白使用者可達到日常可用的程度。

4).應用開發

進一步進階的要求是如何通用應用程式訪問資料庫。這其中建議針對常用的開發語言支援情況進行描述,例如Java、Python、Go、C/C++等。每種語言中又包括前提條件(如語言版本)、驅動方式(含連結)、示例程式碼(完整原始碼)、編譯執行等說明。針對簡單場景,完全可以仿照這一過程進行開發。

5).匯入匯出

匯入匯出部分,是為了方便生態整合。可將現有系統資料透過匯入功能快速整合到新資料庫中,也可以將資料庫中內容透過匯出輸出到其他平臺。上述示例,可以幫助使用者完成一些更為複雜的示例,不用從0到1完全自己建立,可以複用現有的結構、資料及SQL,快速體驗產品能力。

6).效能測試

在完成了上述試用後,使用者最後通常會關注到效能。針對效能部分,可利用標準效能測試,如TPC-C、TPC-H、TPC-DS等。在內容中需包含完整的測試步驟,方便使用者可以照此快速復現測試過程並提供最終測試資料。真實的效能表現還是需要使用者根據自己業務進行測試,上述僅僅是供使用者參考即可。很多使用者也會基於此作為選項參考因素之一。上述內容也獨立成章,形成效能白皮書。

3. 部署安裝

安裝部署,通常是瞭解使用資料庫的第一步。與前面的快速上手不同,這一環節儘量做到詳實、完整,箇中細節需要描述到位。

1).安裝部署

由於資料庫,通常存在多種規格或部署模式,在描述安裝之前應先說明下大體情況、適用場景等,然後再針對不同安裝情況分別加以說明。如果資料庫包含多種元件(特別是分散式資料庫),這種情況很常見,可以說明下各元件功能,並描述獨立安裝過程,由使用者選擇是否安裝。對於同時提供多種安裝方式,如命令列、圖形化、容器化安裝方式的,也應分別說明。在具體安裝過程中,可遵循硬體、系統、環境、使用者、初始化、安裝、啟動、元件、檢測等環節分別加以說明。

2).資料庫解除安裝

解除安裝,往往是很多產品文件會忽略的一個環節。如何幹淨、徹底地刪除資料庫,是需要遵循一定步驟的。通常應包括備份(資料+配置)、停止例項、刪除空間、刪除使用者、檢查殘留等。

3).資料庫升級

資料庫升級是不可避免的操作,特別是在產品不完善的情況下。而對於使用者來說,升級往往是比較痛苦的,如何做到升級平滑是DBA非常關注的問題。特別是在分散式環境下,元件多、節點多,升級能力更為重要。在整體升級中,可包括升級檢查、影響評估、升級準備、資料備份、配置備份、例項升級、元件升級、狀態檢查、應用驗證、升級回退等環節進行說明。

4).資料庫擴縮容

資料庫擴縮容分為兩種情況,一種是所謂Scale UP,一種是Scale Out。前者更多是單機或集中式架構的場景擴容策略,這種更多是硬體的升級,這裡不再詳述。後者則更多是分散式資料庫的通常擴容策略,很多資料庫都採用存算分離架構,支援對計算、儲存或其他元件的擴容。這其中的核心問題一是是否支援線上擴容,二是是否需要移動資料。之前接觸不少使用者,針對這塊還是比較慎重的,需要在擴容過程中重點說明對線上執行的影響及過程跟蹤。縮容的過程跟擴容類似,但需關注儲存空間、算力等的減少或降低對系統的影響。

5).雲與容器化

很多資料庫,也提供了雲端產品。雲作為一種新型資源供給方式,顛覆了傳統使用行為,大大加速簡化了基礎設施的構建及使用。作為雲產品,安裝部署、管理維護、監控告警、備份最佳化等都可以依託於雲平臺去完成。在安裝部署階段,使用者可以不再關心具體的安裝配置過程,而需要更多關心雲的一些特殊性。如選擇資料庫產品、高可用架構、部署區域、網路拓撲、儲存介質等以及是否購買使用其他產品。此處文件中只需描述這些特殊點,解決使用者選擇困難即可。針對支援容器化管理的情況,也可以一併說明如何使用管理資料庫。具體操作可以參見後面參考引用部分。

4. 資料庫管理

資料庫管理,主要是面向DBA人群,重點說明資料庫管理的相關內容。這部分的內容會比較龐雜,需要分解說明。

1).叢集管理

這其中包括例項及相關元件的啟動、停止、狀態檢視。其他如增加、刪除元件及節點,可以參考之前的“資料庫擴縮容”;資料庫升降級可參考之前的“資料庫升降級”。

2).租戶管理

如資料庫支援租戶,可在此處說明下,主要包括租戶建立、刪除、資源配置等。有些產品租戶能力較強,實現了較為完整的租戶能力,包括資源、引數、備份、監控、診斷等,這種情況建議在將租戶管理放在資料庫管理章節最後,獨立說明。

3).引數管理

一個資料庫會保護很多引數,特別是分散式資料庫,不同元件也會有各自的引數。此部分需要說明引數的大致分類、操作方式(檢視、修改、重置)、持久化情況等資訊。至於引數的明細,可以在參考引用部分重點說明,包括但不限於引數名稱、引數含義、值域範圍、作用域(例項級、元件級、會話級等)、生效方式(線上、離線)等。這裡強調下,有些產品是基於開源資料庫實現或相容其他資料庫產品,需重點說明下“其他資料庫”引數在當前產品是否有變化,並給出具體描述,不能直接引用其他產品說明。

4).日誌管理

資料庫系統中會包含很多日誌,如常見的執行日誌、事務日誌、告警日誌、監聽日誌、慢日誌等。在此部分需要說明日誌檔案分類、檔名稱、內容格式、儲存位置、配置方法、歸檔刪除策略等。如日誌內容需要單獨工具解讀,也可以一併在此說明。日誌是使用者觀察資料庫的一個視窗,特別在很多產品效能檢視、事件等機制尚不完善的情況下,因此應更加重視日誌的使用。

5).儲存管理

儲存管理部分,涉及資料庫執行時所需空間的管理,這裡需根據不同檔案對於空間、IO能力等訴求的差異,在前期就做好規劃。後續日常管理則包括空間的擴容、移動、監控、清理等。對於很多資料庫,還支援資料副本的概念,即資料儲存多份,針對這種情況也需在此說明,包括工作原理等;如能人為干預副本的分配、移動、分裂、合併等也一併說明。

6).備份恢復

備份恢復部分,包括物理與邏輯備份恢復兩種。一般建議將邏輯的備份恢復,歸為匯入匯出,放在後面的資料整合章節,這裡重點談物理備份恢復。在開始部分可先說明備份介質選擇、各元件備份(如資料、日誌、配置等)。在具體備份操作上,包括備份建立、備份刪除、過程跟蹤、備份限流、備份集管理等。在具體恢復操作上,包括完整恢復、基於時點恢復、部分恢復(如基於物件)等。

7).故障診斷

故障診斷部分,建議先說明下整體故障診斷的框架,即支援哪些故障診斷的方法及手段,然後再具體說明。常見的診斷如健康檢查(如儲存壞塊等)、日常巡檢(如工作負載、引數配置等)、DUMP檔案(各類異常生成)、錯誤碼等。此部分需說明上述各類操作方法,具體DUMP檔案格式解讀、錯誤碼資訊可以引導參考引用部分。

8).監控指標

監控是DBA觀察資料庫的主要視窗,這其中包括資料字典檢視、動態效能檢視以及系統可吐出的各種Metric。此部分建議先說明下監控體系、收集機制、查詢方法、指標分類及解讀等。具體的檢視、Metric 說明可引導引數引用部分。

9).應急處理

應急處理,是指系統過載或出現異常時需要緊急採取的措施。應急處理的首要目的並不是排查根因,而是快速止血,先讓資料庫儘快恢復正常服務能力。這裡可根據經驗收集經驗,按異常類別進行分類說明。如硬體故障、業務過載、元件異常等,然後整理對應應急處理措施。

5. 高可用

高可用意味著兩點,一是服務高可用,二是資料高可靠。前者是為了保障業務系統的可用性,後者為為了保護企業核心資產-資料不丟失。針對整體高可用,可以在前面先概述下整體高可用技術,包括各種高可用架構,後面再分類說明。

1).例項高可用

在例項內部,已經內建有多種高可用能力。例如針對應用連線,Oracle 資料庫支援的TAF;針對儲存異常,很多資料庫提供的多儲存副本機制;針對誤操作等,資料庫提供如資料閃回功能;針對元件級故障,資料庫提供的自動切換等。上述這些均為高可用在例項內能夠提供的技術能力,可在此說明。

2).叢集高可用

高可用叢集是指在例項高可用基礎外,透過架構支援多種叢集方式以滿足更高的可用性。當例項或單點叢集出現故障時,可以切換到高可用叢集的其他部分來承載。這其中可以有多種模式,常見的如主備、分散式和共享三種。主備模式,是指將主庫/主叢集資料複製一份到備庫/備叢集,後者可承擔異常時切換滿足業務訪問或者承擔只讀訪問需求。類似於Oracle DataGuard、MySQL Replication 方式。分散式模式,是指資料庫本身各元件節點採用分散式架構,當異常時可透過冗餘節點來處理。例如在存算分離架構下,計算節點多采用多點冗餘無狀態設計,儲存節點採用多資料副本的方式解決單點,管理節點也多采用主備或基於共識協議方式解決。類似於 Google Spanner、OceanBase、TiDB、TDSQL等產品。共享模式則是指多個資料庫例項作為計算節點共享一份儲存(或加快取)的方式,上層計算例項出現問題,可自動切換,下層的共享儲存則透過硬體或分散式儲存來解決。類似於 Oracle RAC 的方案即如此,國內如DM DSC、華為開源的參天引擎等。

3).部署實踐:同城與異地

針對各種高可用方案,使用者很關心如何選擇及部署。這裡可根據最為常用的幾個高可用場景說下上述架構的部署方式。這其中包括針對同城(同機房)、同城(跨機房)、異地多種場景進行說明。比較高效的方式是畫下部署圖,這樣比較清晰。此外,針對各種異常情況,不同場景及架構下的系統可用性(例如RTO、RPO指標)情況,這樣使用者可以一目瞭然。

4).高可用管理

針對上述高可用能力的相關操作,包括各種架構的搭建、切換、同步、監控、排障等。

6. 產品安全

一個安全的資料庫系統應該能夠建立安全保護機制,保護計算機硬體、軟體和資料不因偶然和惡意的原因而遭到破壞、更改和洩漏。對資料庫的安全性要求通常會被劃分為保密性、完整性、可用性三個要素。保密性是指資料不能洩露給非授權使用者,通常透過資料加密、訪問控制等方式實現。完整性是指資料在儲存和傳輸過程中,資料不被破壞及丟失,通常透過訪問控制、完整性校驗來實現。可用性是指資料可被授權使用者,在異常時可恢復使用,通常透過備份、冗餘、防火牆等方式來實現。

1).傳輸加密

傳輸加密是指在應用與資料庫之間或資料庫各元件之間使用 SSL/TLS 的方式實現通訊加密。使用加密傳輸可以減少資料庫中敏感資訊的洩露風險,有效保護資料的安全。有些資料庫產品是相容開源資料庫協議的,這時就需要判斷是否已支援開源資料庫的傳輸加密。

2).鑑權認證

鑑權認證,是指對登入資料庫訪問資料的使用者進行身份驗證,確認該使用者是否能夠與某一個資料庫使用者進行關聯,並根據關聯的資料庫使用者的許可權,對該使用者在資料庫中的資料訪問活動進行安全控制。有些資料庫產品還支援作業系統認證,即使用作業系統使用者直接登入,也需一併說明。

3).訪問控制(使用者、角色、許可權)

訪問控制,是指資料庫透過使用者、角色、許可權設計,做到對資源訪問控制管理,不同使用者或角色擔負不同的責任。在許可權設計上,一般分為系統許可權、物件許可權,並提供一組檢視來檢視許可權資訊。有些資料庫產品還擴充套件支援了三權分立、行級許可權、網路安全等能力。

4).資料加密

資料加密,狹義上指對資料庫儲存資料的加密,廣義則還包括對日誌、備份、過程定義等的加密。透過資料加密可以有效的保護,避免因資料外洩造成的損失。現在大部分資料庫都實現了透明加密(即TDE),加密與解密的過程對使用者來說是完全透明的。但這裡需要關注幾點,一是國密演算法、金鑰輪轉等是否支援;二是資料加密後備份恢復或上下游生態是否受到影響。

5).安全審計

安全審計,是指對具備相應許可權使用者執行操作的記錄,進而防止使用者登入資訊洩露,或者訪問許可權被濫用。審計功能可以加強企業對資料安全、合規等方面的要求,是跟蹤使用者行為最主要的工具。此部分應包括審計開啟、檢視的方法,及開啟審計對效能影響的說明。

6).防火牆

防火牆功能,更多是在事前或事中針對訪問做的一種防禦措施,用於檢測和防禦外部入侵風險,較為常見的如IP白名單等。

7. 開發指南

前面幾個章節多為面向運維側,後面幾個章節更多是面對架構、研發側,講述如何基於這個資料庫開發應用系統。

1).連線驅動

在開發之初,先需解決如何連線訪問問題,因此需說明連線驅動問題。面對常見的開發語言\介面,如何連線資料。常見如Java、Python、C/C++、Go、.NET,介面如JDBC、ODBC、OLEDB等。此處最好給出連線驅動下載地址及簡單開發示例。某些產品相容其他資料庫,即可以透過其他資料庫協議訪問,也需一併說明。

2).SQL元素

針對SQL語句使用的最基本要素的說明,包括字面值、識別符號、雙引號、物件及物件命令、偽列(如有)、NULL等的說明。

3).資料型別

支援資料型別,包括型別、儲存長度、值域、精度等資訊,最好以一種表格的形式呈現。為了方便使用者理解,也可以同步列出主流資料庫型別的對應關係,這樣方便使用者參照轉換。

4).字符集

系統支援字符集的情況,並說明字符集使用規範。

5).運算子

資料庫支援的運算子,包括但不限於算術、比較、邏輯、連線、位、其他運算子。

6).函式

資料支援的函式說明,包括但不限於日期、字元、數學、轉換、聚焦、視窗、特殊函式等。如果系統還支援自定義函式,可在下面的語句開發部分詳細說明。

7).語句開發

語句開發部分,大體可分為兩個部分:SQL語言和過程語言。這其中包含的內容有比較多,其中SQL語言就包括DDL\DML\DQL\TCL等,又可以進一步分解如DQL就可以細分為查詢、過濾、關聯、巢狀、層次等。過程化語言則包括語法結構、條件控制、資料操作、資料遊標等。這部分只描述基本內容即可,具體寫法可參考後面的參考引用。此外,還可包含如註釋等寫法。

8).結構設計

資料庫支援很多種物件,包括常見的表、分割槽、分片、索引、檢視、觸發器、儲存過程、序列等。在結構設計部分,需說明各物件的設計規範,包括基礎命名規範、設計規範、最佳實踐等。相較於之前傳統資料庫,如今資料庫在開發設計上需關注側重點有了明顯的變化。如在分散式資料庫中,資料分片尤為重要;數倉資料庫中列存表的設計有其特有要求;多模資料庫,對架構設計又有著自己的特殊性等等。這部分內容較為繁多,可以結合案例進行說明,方便使用者理解。

9).物件管理

上面結構設計中的諸多物件,都需要一定管理操作,如建立、刪除、檢視、修改、截斷、重建、分析、編譯、執行等等,均在此說明。

10).事務&隔離級

這其中包括事務原理性說明、事務控制、異常事務處理、事務與併發、事務與隔離級等內容的說明。針對事務的一些小點,如空閒事務、懸掛事務處理、顯性與隱性事務、大事務處理等,也可在此說明。在分散式資料庫下,分散式事務也需要單獨說明下。

11).鎖與死鎖

需要說明系統鎖的類別、工作機制、顆粒度、互斥行為、死鎖與死鎖檢測機制等。

8. 效能調優

當系統出現效能瓶頸時,效能調優就顯得尤為重要。調優本身可以在多個層次進行,這裡可按照自下而上或者說先區域性後總體的方式進行說明,通常都按照語句級、物件級、例項級、系統級、架構級、應用層調優順序來展開。最後在說明下調優相關工具的使用。

1).SQL 調優

SQL 語句的調優,首先要理解SQL執行過程,包括解析器、最佳化器、執行器的行為,包括快取、執行計劃等內容。在具體描述上也可遵循上面的 SQL 執行順序進行說明,逐步展開。其中最佳化器部分,還會涉及到統計資訊、引數化等問題。這部分內容相對龐雜,需要細緻說明。

2).物件調優

物件的調優,更多是在物件設計階段的一些最佳實踐,例如是否需要做分片、分割槽?是否需建立索引?如何和使用自增效率高等等。這部分可按照物件分列說明。在說明過程中,最好等配合一些查詢、監控手段,可以印證調優是否有效。

3).例項調優

例項調優,通常是指各種引數的最佳化配置。最好的方式是提前建立效能基線,再根據收集到的資訊做調整。很多資料診斷最佳化工具提供的報告,可以幫助完成例項調優。

4).系統調優

系統調優,是指在作業系統或硬體層面可以考慮的一些最佳化手段。

5).架構調優

當在單一例項或叢集無法滿足最佳化結果,就要考慮在架構層面進行。例如使用讀寫分離技術,滿足更高的查詢請求;如使用分散式資料庫提供更強的計算能力等。這部分相對代價比較大了,通常描述些方法論就可以。

6).應用調優

最後部分,就是不要把最佳化僅僅限於資料庫層面,在應用層也可以做很多東西。例如透過引入快取降低資料庫壓力;透過應用層處理重資料庫負載的計算任務降低壓力等。

7).調優工具

配合上面的調優工作,需要一組調優工具來輔助完成。這其中比較重要的如統計資訊,包括收集檢視操作;執行計劃,包括檢視、管理執行計劃;效能檢視,包括各粒度效能指標的檢視;效能診斷工具,如Oracle AWR等工具可以完成系統診斷等。

9. 資料整合

資料庫不是一個孤立的環境,需要與上下游生態打通,這就對資料庫提供的整合能力提出一定的要求。

1).資料遷移

資料遷移是指從其他資料庫將資料一次性遷移到當前資料庫;或將當前資料庫遷移到其他庫。這包括結構遷移和資料遷移,其中資料遷移又可分解為全量遷移、增量遷移、資料對比等過程。很多產品都支援了多種遷移工具,可採用列表方式詳細說明。

2).資料同步

資料同步是指兩個資料庫之間保持持續資料複製狀態,兩個庫之間可以保持準實時的狀態。在同構資料庫下往往可透過物理或邏輯日誌消費的方式進行,異構庫間相對難度較大。很多第三方產品提供了異構庫間資料同步的能力。

3).匯入匯出

除了前面提到的備份恢復外,異構資料庫間進行資料交換一個便捷的方式就透過匯入匯出方式。透過將資料匯出為格式化檔案或 SQL 語句的檔案,再向目標端匯入或執行,可相對容易地實現異構庫資料交換。資料庫應提供上述匯出為檔案或語句指令碼的能力。

4).CDC

CDC,是Change Data Capture的縮寫,翻譯過來是資料變化捕捉。這是一種資料整合的能力,透過將資料庫的變更處理為訊息,供下游生態系統消費訪問,可以較為容易地實現資料變化的傳播。這也成為資料庫開發生態的一種規範。

10. 參考引用

參考引用,是個“大字典”,文件中涉及到速查類的資訊都可以放在這裡,方便使用者快速查詢。

1).SQL 參考

包括SQL語句的寫法、注意事項、典型示例等。由於SQL寫法比較複雜,可以採用鐵路圖等方式簡化理解,方便使用者使用。具體使用上可按用途分類,按字母排索引表,便於查詢。

2).PL 參考

過程化語言參考,包括前面講的如迴圈、條件判斷、分支、賦值、遊標等操作,都在此說明。

3).API 參考

使用者通常與資料庫是透過 SQL 語句打交道,但有時也會提供API的方式。例如很多管控類的操作會提供API供使用者呼叫,包括在K8S環境裡整合的Operator也類似。特別是雲產品,為了方便使用者整合進自己的運維繫統,也會提供Open API。這裡重點說明下API用法、引數、給出示例即可。

4).系統變數與引數

這裡重點說明變數或引數的含義、值域、作用域、是否熱載入等資訊,給出一份詳細列表。需注意的是,分散式資料庫有很多元件,需要區分上述變數或引數是哪個元件,是否可以統一設定等。

5).錯誤碼

包括錯誤碼組成、錯誤碼含義、錯誤碼速查表。如提供了相容模式,還需說明是否相容原始資料庫的錯誤碼,如果相容一併列出。

6).告警/等待事件

系統定義的事件,包括告警事件、等待事件或其他事件。透過這些事件可以有效分析系統執行狀態。

7).效能檢視/資料字典

如前面所談,需要完整的資料字典和效能檢視說明,方便使用者查詢。

8).驅動說明

不同開發語言資料庫驅動說明,包括驅動支援的主要功能、資料型別、函式等。

9).保留關鍵字

系統內建保留的關鍵字。

10).術語表

文件中引用名詞的描述。

11).工具說明

資料庫產品周邊生態工具的說明,一般資料庫產品都會提供如備份恢復、匯入匯出、SQL 命令列等工具。這裡需說明各工具功能、使用方法、引數說明等。

12).生態相容

生態相容是指與資料庫上下游生態的相容情況,例如從資料建模、資料開發、資料分析、資料探勘、視覺化展現、資料管理、ETL、資料庫管理、備份恢復、資料庫最佳化、大資料平臺等等,這些上面的主流工具是否支援這一產品。對於前天就具備相容性產品來說,是會較容易的支援,如從0到1完成的新產品會有一個過程。

11. 效能測試

可部分可參考“快速入門”部分,可獨立成章,包含的測試內容更加詳實。

12. 常見問題

FAQ環節,針對使用者經常提供的問題羅列如此。如問題較多,可採用分類或標籤的方式,方便使用者檢索。

13. 版本釋出記錄

版本釋出記錄,說明發布的主要版本功能、修復的Bug等。方便使用者根據此記錄,結合自己的場景判斷是否需要升級。

來自 “ 韓鋒頻道 ”, 原文作者:韓鋒頻道;原文連結:https://mp.weixin.qq.com/s/wEBxLENNvUXnYuItNE5m4w,如有侵權,請聯絡管理員刪除。

相關文章