本文作者司馬遼太杰, gzh:程序猿讀歷史
在業務快速變化與數據安全日益重要的今天,生產數據庫變更管理、版本控制、數據使用是數據庫領域的核心挑戰之一。傳統的解決方式往往采用郵件或即時通訊工具發起審批流程,再通過堡壘機直連數據庫執行變更操作。這種粗放管理模式高度依賴操作人員的專業素養,SQL腳本質量把控、操作合規性追溯、安全風險防控等關鍵環節,均與企業的生產IT系統變更管理規范形成沖突。可以說這類解決方案:100斤的哪吒,99斤反骨,1斤藕粉。
近期,玖章算術推出了NineData 社區版,該版本不僅免費,還為生產數據庫變更管理、版本控制、數據使用?提供了專業可靠的解決方案。本文是筆者對該版本的使用體驗心得。
NineData 社區版解決方案
NineData 社區版是玖章算術推出的免費、一鍵安裝的數據管理解決方案,專為開發者、初創團隊、教育機構及個人用戶設計,包含DevOps、數據復制、數據庫對比三個核心功能。
-
數據庫 DevOps:數據庫 DevOps 具有數據源管理、數據查詢、SQL 規范、SQL 審核、審批流程等強大功能,幫助用戶快速完成多種環境的數據管理任務,助力企業數字化轉型。
-
數據復制:NineData 數據復制支持多種同異構數據源之間的離線、實時數據復制。適合數據遷移、數據庫擴縮容、數據庫版本升級、異地容災、異地多活、數據倉庫及數據湖數據集成等多種業務場景。
-
數據庫對比:NineData 數據庫對比功能支持對兩個數據源之間的內容進行一致性對比,不一致的情況下支持自動生成變更 SQL,實現數據與結構的一致性。
NineData 社區版是一個完全離線運行的本地化部署版本,無需連接任何云端服務或訪問 NineData 網站,所有數據與操作?100% 留存于您的本地環境。特別適用于無法訪問外網的內網環境,完美匹配小規模企業、個人項目或學習測試等場景。
對比維度 | 社區版 | 企業版 |
---|---|---|
核心定位 | 開發者/初創團隊/個人開發者 | 中大型企業/生產環境 |
部署方式 | Docker 單機部署 | Docker 單機部署/分布式集群 |
數據庫 DevOps | 10 個數據源 | 按許可證動態擴展(無限制) |
數據復制 | 10 個任務(含 2 個增量任務) | 按許可證動態擴展(無限制) |
數據對比 | 上限 10 任務 | 無上限 |
部署復雜度 | ????? 單命令部署 | ???? 具備升降配、增加節點等能力 |
資源消耗 | 單機 | 集群(跨機房容災 + 異地多活) |
技術支持 | 文檔 | 7x24 專屬技術支持 + SLA 服務保障 |
費用 | 免費 | 按需付費 |
NineData 社區版使用體驗
NineData 社區版本可直接通過 docker 快速部署該服務。安裝部署命令如下:
docker?run -p?9999:9999?--privileged -v /opt/ninedata:/u01 --name ninedata -d swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata:latest
服務初始化大約需要10分鐘,也可以通過:?docker logs -f ninedata
? 查看安裝進度,如日志中出現以下提示則表示安裝完成:
部署完成后,在瀏覽器中輸入服務地址和端口后即可登錄,初始管理員賬號與密碼均為 admin 。整個部署過程簡單、方便,唯一不足的是目前鏡像大約有2G左右,需要有一個比較好的網絡環境。NineData 也提供了多個鏡像下載地址,用戶可以就近選擇。
華北-北京:swr.cn-north-4.myhuaweicloud.com/ninedata/ninedata:latest
華東-上海:swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata:latest
華南-廣州:swr.cn-south-1.myhuaweicloud.com/ninedata/ninedata:latest
NineData Docker Hub 官方地址:ninedata/ninedata:latest
筆者本次重點體驗DB DevOPS 中的SQL 窗口、數據安全、SQL 任務等功能,下面將逐一介紹上述功能。
-
SQL 窗口
SQL 窗口是開發者日常使用高頻的工具,數據庫對象樹形展示、執行結果多樣化展示、保留字體現等等基礎功能,NineData 社區版均有不錯的表現,這部分功能和企業版保持一致。
筆者曾經遇到數據庫GUI工具面對大量表出現卡頓的情況,本次測試也特地創建了1萬個表后,使用NineData 社區版查看表結構,均能做到1秒左右出結果。此處的優化,還是相當意外。
-
數據安全
NineData 社區版 還提供了敏感數據加密的功能,支持將數據源中的某一列或多個列設置為敏感列,未被授權查看敏感列的用戶將無法查看該列的內容。敏感列功能由敏感等級、數據類型、脫敏算法等幾個關鍵組件構成。
敏感等級提供 S0 ~ S5 6 個等級,數字越大安全級別越高。S0 表示非敏感字段,S1 ~ S5 的每個等級都對應不同的審批流程,支持管理員配置不同的審批策略,對敏感數據進行分類分級管控。此外,系統默認提供了 27 條數據類型,每條數據類型關聯了敏感等級、脫敏算法,以及敏感字段的識別規則。數據類型用來自動識別表中的敏感字段,識別規則命中目標列后就會關聯該列,自動為敏感列進行分類分級 。敏感列的數據將通過該算法進行加密,系統默認提供了 33 條脫敏算法,也支持根據實際業務需求創建自定義脫敏算法。
下圖是筆者在測試時,構建的銀行卡號、身份證、地址以及手機號等常見敏感字段的脫敏方式。
-
SQL 任務
SQL 任務是對數據庫發起 SQL 操作的任務,主要包括 DDL、DML等 兩類語句。當生產數據庫需要變更時,可以通過提交 SQL 任務工單實現,它的主要功能是全周期的安全管控,包括提交、審批、執行、回滾等步驟。系統會在實際執行對應的 SQL 任務之前,自動備份對應變更內容的當前數據狀態,如為當意外情況發生或者操作失誤導致數據錯誤,用戶可以下載該備份數據手動進行數據回滾,保證數據的安全。
除了流程以外,SQL 任務還內嵌了編 200多條規則,這些規則除了提升 SQL 質量,防止慢 SQL、保持一致的編碼風格,減少潛在的錯誤和性能問題外。例如:針對 OceanBase for MySQL 在進行變更時可能存在的部分語法沖突問題,提供了沖突檢查規則,強制用戶分開執行。下圖是部分規范。
總結
通過筆者本次使用體驗以及結合市場上開源或免費的數據庫DevOPS 工具來看,NineData 此次推出的社區版在產品功能、性能、以及易用性均有較大的提升,不僅有基礎的SQL 變更管理、數據查詢使用,也包含了豐富的SQL規范和數據安全等高級特性。不足的是,社區版目前僅支持10個數據源,這對于大部分公司來說還是偏少。希望后期社區版能支持更多的數據源。