數據庫架構開發知識庫體系

摘要

面向初創與企業團隊,系統梳理數據庫與數據平臺從采集、傳輸、存儲、處理、服務化到治理與安全的全鏈路。覆蓋 OLTP/OLAP/HTAP、湖倉一體與實時數據棧,結合國內外工具與方法論,給出架構選型、性能優化、可靠性與合規要點,以及可落地的命令清單與實施檢查表。文末附 PlantUML 思維導圖。


1. 架構總覽與數據流轉

  1. 典型分層

  • 采集層:日志/業務數據庫/物聯網數據 → CDC/Agent/Kafka

  • 傳輸層:消息隊列與傳輸協議(Kafka、Pulsar、RocketMQ、REST、gRPC)

  • 計算層:批處理(Spark、Hive、Trino)、流處理(Flink、Kafka Streams)、批流一體(Flink、Spark Structured Streaming)

  • 存儲層:行存 OLTP(MySQL、PostgreSQL、TiDB、OceanBase)、列存 OLAP(ClickHouse、StarRocks、Doris、Snowflake、BigQuery、Redshift)、數據湖與湖倉(S3/OSS/OBS+Iceberg/Hudi/Delta Lake)、時序庫(TimescaleDB、InfluxDB、TDengine)、圖數據庫(Neo4j、JanusGraph、Nebula Graph)、搜索與向量(Elasticsearch/OpenSearch、Milvus、Qdrant、pgvector、ClickHouse 向量)

  • 服務與語義層:API Gateway、數據服務化、中臺數據產品、語義模型/數據集(dbt、Cube、Semantic Layer)

  • 可視化與應用:BI/報表/運營大屏、內外部 API

  1. 參考架構范式

  • 數據倉庫與數據集市(Kimball 維度建模、Inmon 企業模型)

  • Lambda/Kappa/湖倉一體(ELT 主導,存算分離)

  • Medallion 分層:Bronze 原始、Silver 清洗、Gold 主題與指標

  • Data Mesh:面向域的數據產品與數據契約


2. 存儲與引擎選型

  1. OLTP

  • 單體與讀寫分離:MySQL、PostgreSQL;代理與分片:ProxySQL、Vitess、ShardingSphere、MyCAT

  • 分布式 HTAP/金融級:TiDB、OceanBase、openGauss/GaussDB、PolarDB

  1. OLAP 與近實時

  • 列存與向量化:ClickHouse、StarRocks、Apache Doris、Apache Druid、Trino/Presto

  • 云原生倉庫:Snowflake、BigQuery、Redshift、AnalyticDB、Hologres

  1. 數據湖與湖倉

  • 元數據目錄:Glue Catalog、Hive Metastore、Unity Catalog、Lake Formation

  • 表格式與 ACID:Iceberg、Hudi、Delta Lake;文件格式:Parquet、ORC、Avro

  • 批流一體讀寫:Flink+Iceberg/Hudi、Spark+Delta

  1. 特種庫

  • 時序:TimescaleDB、InfluxDB、TDengine

  • 圖:Neo4j、JanusGraph、Nebula Graph

  • 向量與檢索:Milvus、Qdrant、Weaviate、Elasticsearch/OpenSearch 向量、pgvector、ClickHouse 向量


3. 數據采集與傳輸

  1. CDC 與日志

  • Binlog/Redo 日志:Debezium、Flink CDC、Canal、GoldenGate

  • 觸發器或定期快照:DataX、Sqoop(存量遷移),謹慎用于增量

  1. 消息與總線

  • Kafka、Pulsar、RocketMQ、RabbitMQ;順序、分區、冪等、Exactly-once 語義

  • 協議與序列化:Avro/Protobuf/JSON、Schema Registry、演進與兼容策略

  1. IoT 與邊緣

  • MQTT/CoAP、網關匯聚、邊緣聚合與降采樣、離線補傳


4. 數據建模與處理方法

  1. 事務與一致性

  • ACID 與 MVCC、隔離級別、分布式事務(兩階段提交、Percolator、TCC/Saga)

  • CAP 與 PACELC 取舍:可用性/一致性/延遲的業務權衡

  1. 維度建模與數據契約

  • 事實表與維度表、星型/雪花、SCD Type 1/2、主鍵策略與代理鍵

  • 數據契約與語義層:指標定義、口徑管理、數據產品接口

  1. 流批一體

  • 事件時間與水位線、遲到與亂序、狀態一致性、窗口(滾動/滑動/會話)

  • 批處理回填與重算、冪等寫入與去重鍵

  1. 質量與可觀察性

  • 維度:完整性、唯一性、有效性、一致性、及時性、準確性

  • 校驗與監控:Great Expectations、Soda Core、Deequ;血緣:Amundsen、DataHub、Atlas、Spline


5. 工程化與平臺能力

  1. 任務編排與調度

  • Airflow、Dagster、Prefect、Azkaban、DolphinScheduler、DataWorks(阿里)

  • 依賴與優先級、重試與補償、事件驅動與日歷窗口

  1. 元數據與治理

  • 數據目錄、血緣、數據地圖、敏感分級與標簽、數據資產評估

  • 訪問治理:Ranger、Sentry、Lake Formation、Unity Catalog、Apache Knox

  1. 安全與合規

  • 傳輸與靜態加密、行列級權限、動態脫敏、令牌化、密鑰管理(KMS/HSM)

  • 隱私與法規:GDPR、CCPA、PIPL、等保 2.0;跨境與本地化

  1. 可觀測性與容量

  • 指標/日志/追蹤:Prometheus、Grafana、OpenTelemetry、ELK

  • SLO:查詢時延、吞吐、錯誤率、資源水位;自動擴縮容與配額


6. 性能優化要點

  1. OLTP

  • 索引與統計信息(BTree/Hash、GIN/GiST)、覆蓋索引、冷熱分離

  • 分區/分表與路由鍵、連接池、慢查詢畫像與執行計劃分析

  1. OLAP/湖倉

  • 列式壓縮與編碼(字典、RLE)、分區與分桶、Z-Order/Cluster Key、Bloom Filter

  • 物化視圖與聚合表、冷熱分層、查詢下推與向量化執行

  1. 流處理

  • 反壓與水位線、狀態大小與 RocksDB、Checkpoint 與 Savepoint、Exactly-once Sink


7. 架構選型指南(速查)

  • 高并發交易系統:OLTP 分布式(TiDB/OceanBase)或 PostgreSQL+讀寫分離

  • 近實時分析與報表:StarRocks/ClickHouse+Doris/Trino;行轉列與聚合表

  • 大數據湖倉:S3/OSS/OBS+Iceberg/Hudi/Delta + Spark/Trino/Flink

  • 實時鏈路:Kafka→Flink→Iceberg/ClickHouse→API/BI

  • 時序監控:Kafka→Flink→TimescaleDB/TDengine→Grafana

  • 圖譜與推薦:OLTP+CDC→圖數據庫/向量檢索→在線召回/排序


8. 研發流程與環境

  1. 開發到生產

  • 本地開發容器化與 Compose(數據庫/消息/計算鏡像)

  • Dev/Stage/Prod 三環境、藍綠與灰度、數據回放與影子流量

  1. 遷移與變更

  • Online Schema Change:gh-ost、pt-online-schema-change、Liquibase/Flyway

  • 數據回填與校驗、雙寫與校驗、回滾預案(PITR、冗余快照)


9. 常用命令與最小示例

  • Kafka

  • 創建主題:kafka-topics.sh --create --topic events --partitions 8 --replication-factor 3 --bootstrap-server localhost:9092

  • 控制臺生產/消費:kafka-console-producer.sh ...kafka-console-consumer.sh --from-beginning ...

  • Flink

  • 提交作業:flink run -m yarn-cluster -c com.demo.Job target/job.jar

  • Savepoint:flink savepoint <jobId> file:///checkpoints/sp

  • dbt

  • 初始化與運行:dbt init, dbt run, dbt test, dbt docs generate && dbt docs serve

  • ClickHouse

  • 建表與分區

CREATE TABLE t
( id UInt64, dt Date, x Float64 )
ENGINE = MergeTree PARTITION BY toYYYYMM(dt) ORDER BY (dt,id);

  • 物化視圖

CREATE MATERIALIZED VIEW mv AS
SELECT toDate(time) d, count() c FROM src GROUP BY d;

  1. PostgreSQL

  • 分區表

CREATE TABLE sales (id bigserial, d date, amt numeric) PARTITION BY RANGE (d);
CREATE TABLE sales_2025m08 PARTITION OF sales FOR VALUES FROM ('2025-08-01') TO ('2025-09-01');

  • 并行與計劃:EXPLAIN (ANALYZE, BUFFERS)

  1. Iceberg 表創建(Spark SQL)

CREATE TABLE lake.sales (id BIGINT, ts TIMESTAMP, amt DECIMAL(12,2))
USING iceberg PARTITIONED BY (days(ts));


10. 實施檢查表(濃縮)

  • 需求與SLO:吞吐、時延、可用性、成本上限

  • 數據契約:字段口徑、變更策略、兼容級別、Schema Registry

  • 安全與治理:分級分類、RLS/CLS、密鑰與審計、血緣與質量門禁

  • 架構與選型:OLTP/OLAP/湖倉與實時路徑、冷熱分層與成本測算

  • 運維與可觀測:指標閾值、告警路由、容量與備份/演練

  • 發布與回滾:藍綠/灰度、雙寫校驗、PITR、應急劇本


11. 學習路徑與資料

  • 基礎與范式:數據庫系統概念、Designing Data-Intensive Applications、The Data Warehouse Toolkit

  • 工具與實踐:Flink/Spark 官方教程、Iceberg/Hudi/Delta 文檔、ClickHouse/StarRocks/Trino 文檔、Airflow/Dagster/Prefect 實戰

  • 國內生態:阿里 DataWorks、華為云 ROMA/數據治理、騰訊 TBDS、開源 TiDB/TiFlash、OceanBase、Doris/StarRocks、TDengine、Nebula Graph


PlantUML 思維導圖

@startmindmap
* 數據庫架構開發知識庫
** 架構與流轉
*** 采集(Logs/CDC/IoT)
*** 傳輸(Kafka/Pulsar/RocketMQ)
*** 計算(Spark/Flink/Trino)
*** 存儲(OLTP/OLAP/湖倉/時序/圖/向量)
*** 服務與語義(API/語義層/dbt)
*** 可視化(BI/大屏/API)
** 存儲與引擎
*** OLTP(MySQL/PostgreSQL/TiDB/OceanBase)
*** OLAP(ClickHouse/StarRocks/Doris/Trino/Druid)
*** 湖倉(S3+Iceberg/Hudi/Delta)
*** 特種(時序/圖/向量)
** 采集與傳輸
*** CDC(Debezium/FlinkCDC/Canal)
*** 消息(Avro/Protobuf/Schema Registry)
*** IoT(MQTT/邊緣聚合)
** 建模與處理
*** 事務與一致性(ACID/MVCC/CAP/PACELC)
*** 維度建模(SCD/星型/契約)
*** 流批一體(事件時間/水位線/冪等)
*** 質量與血緣(GE/Soda/DataHub/Atlas)
** 工程化與治理
*** 調度(Airflow/Dagster/Prefect/DS)
*** 元數據與權限(Ranger/Sentry/Unity)
*** 安全(加密/脫敏/分級/合規)
*** 可觀測性(OTel/Prometheus/Grafana)
** 性能優化
*** OLTP(索引/分區/路由/慢查)
*** OLAP(分區/聚合表/物化/向量化)
*** 流(反壓/狀態/Checkpoint)
** 選型指南
*** 交易/報表/湖倉/實時/時序/圖
** 研發與上線
*** 容器化/多環境/藍綠灰
*** Schema變更(gh-ost/Flyway)
*** 回滾與PITR
** 命令與示例
*** Kafka/Flink/dbt/ClickHouse/PG/Iceberg
** 檢查表與學習
*** SLO/契約/安全/運維/發布
*** 書籍/文檔/國內生態
@endmindmap

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/919787.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919787.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919787.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在Excel和WPS表格中合并多個單元格這樣最快

如果要把WPS表格和Excel中多個單元格的數據合成到一個單元格中&#xff0c;不用函數&#xff0c;只需要先寫輸入公式&#xff0c;然后在各個單元格之間輸入&符號即可。&#xff08;當然&#xff0c;&符號不只是連接單元格的數據&#xff0c;也可以直接輸入內容連接&…

在嵌入式上用 C++14實現簡單HSM狀態機

文章目錄概述為什么要遷移到 C&#xff0c;以及 C 的陷阱目標與挑戰為什么不能直接使用 std::function&#xff1f;解決方案&#xff1a;POD 回調與模板 Trampoline核心設計模板 trampoline 實現兩種成員函數綁定策略1. **Per-Transition Context&#xff08;每個狀態轉移綁定一…

【unity】Obfuz加固混淆日志還原解析方案ObfuzResolver

Github | Gitee ObfuzResolver是基于obfuz-tools針對Obfuz的一項輔助工具&#xff0c;方便開發者在unity編輯器中或者運行時快捷將使用Obfuz混淆加固后的日志信息還原為原始信息&#xff0c;以輔助開發者快速定位Bug。 特性 支持unity編輯器模式下還原被加固混淆的日志信息&a…

2025DevOps平臺趨勢解讀:哪些DevOps工具正在引領行業變革?

DevOps平臺已成為企業提升研發效能、實現敏捷交付的核心支柱。2025年DevOps領域正經歷深刻變革&#xff0c;平臺能力正從“工具鏈整合”向“價值流智能中樞”躍升。01. 2025Devops平臺趨勢解讀“全棧式”與“模塊化/可組合”的平衡&#xff1a;企業既需要能覆蓋開發、測試、部署…

第二階段Winform-4:MDI窗口,布局控件,分頁

1_MDI窗口 &#xff08;1&#xff09;MDI是指將多控件窗體在同一窗體中打開,可以設置重疊打開&#xff0c;平捕打開等&#xff0c;MDI窗體&#xff08;Multiple-Document Interface&#xff0c;多文檔界面&#xff09;用于同時顯示多個文檔。在項目中使用MDI窗體時&#xff0c…

實用R語言機器學習指南:從數據預處理到模型實戰(附配套學習資源)

一、為什么需要掌握機器學習建模&#xff1f;在科研與項目實踐中&#xff0c;機器學習已成為數據挖掘的核心工具。本文手把手帶你在R語言中實現7大常用模型&#xff1a;邏輯回歸/正則化回歸決策樹/隨機森林SVM支持向量機XGBoost梯度提升神經網絡全程包含數據標準化→模型訓練→…

go.uber.org/zap 日志庫高性能寫入

使用 go.uber.org/zap 實現日志分割功能 實現按照單個文件最大MB自動分割,最多保留多少天的文件,是否啟用壓縮,按天自動分割日志 核心依賴 go.uber.org/zap:核心日志庫 lumberjack.v2:日志輪轉工具(實現按大小/時間分割) 時間處理依賴標準庫 time 實現步驟 1. 初始化…

電腦端完全免費的動態壁紙和屏保軟件(真正免費、無廣告、無會員)

? 1. Lively Wallpaper&#xff08;強烈推薦&#xff09; 特點&#xff1a;完全免費、開源、無廣告&#xff0c;支持本地視頻/GIF/網頁作為動態壁紙內置資源&#xff1a;12個高質量動態壁紙&#xff08;可自定義&#xff09;屏保功能&#xff1a;支持將動態壁紙一鍵設為屏保系…

C#_組合優于繼承的實際應用

2.2 Composition over Inheritance&#xff1a;組合優于繼承的實際應用 繼承&#xff08;Inheritance&#xff09;是面向對象編程中最容易被過度使用和誤用的特性之一。傳統的教學往往讓人們優先選擇繼承來實現代碼復用和建立“是一個&#xff08;is-a&#xff09;”的關系。然…

Kafka消息丟失的場景有哪些

生產者在生產過程中的消息丟失 broker在故障后的消息丟失 消費者在消費過程中的消息丟失ACK機制 ack有3個可選值&#xff0c;分別是1&#xff0c;0&#xff0c;-1。 ack0&#xff1a;生產者在生產過程中的消息丟失 簡單來說就是&#xff0c;producer發送一次就不再發送了&#…

盼之代售 231滑塊 csessionid 分析

聲明 本文章中所有內容僅供學習交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包內容、敏感網址、數據接口等均已做脫敏處理&#xff0c;嚴禁用于商業用途和非法用途&#xff0c;否則由此產生的一切后果均與作者無關&#xff01; 逆向分析 部分python代碼 url "…

STL關聯式容器解析:map與set詳解

目錄 1. 關聯式容器 2. 鍵值對 3. 樹形結構的關聯式容器 3.1 set 3.1.2 set的使用 3.2 map 3.2.1 map的介紹 3.2.2 map的使用 3.3 multiset 3.3.1 multiset的介紹 3.3.2 multiset的使用 3.4 multimap 3.4.1 multimap的介紹 3.4.2 multimap的使用 4.紅黑樹模擬實現…

貪吃蛇--C++實戰項目(零基礎)

視頻地址&#xff1a;C語言必學項目&#xff1a;貪吃蛇&#xff01; 貪吃蛇游戲框架 ├── 基礎框架 │ ├── 頭文件引入 │ ├── 常量和宏定義 │ └── 窗口初始化 │ ├── 數據結構系統 │ ├── Pos結構體(位置和顏色) │ ├── Snake結構體(蛇的屬性) │ ├──…

unity資源領取反作弊工具加密器

https://assetstore.unity.com/packages/tools/utilities/anti-cheat-pro-2025-3006260元購碼GUARDINGPEARSOFTWARE

FPGA設計中的信號完整性量化與優化:探索高速數字系統的關鍵路徑

在高速FPGA設計中&#xff0c;信號完整性&#xff08;Signal Integrity, SI&#xff09;已成為確保系統穩定、可靠運行的核心要素之一。隨著數據傳輸速率的不斷提升和電路規模的日益復雜&#xff0c;信號在傳輸過程中受到的干擾和畸變問題日益凸顯。因此&#xff0c;如何有效量…

`strncasecmp` 字符串比較函數

1) 函數的概念與用途 strncasecmp 是 C 語言中一個非常實用的字符串處理函數&#xff0c;它執行不區分大小寫的字符串比較&#xff0c;但只比較前 n 個字符。這個函數的名字來源于"string n case-compare"&#xff08;字符串前n個字符不區分大小寫比較&#xff09;。…

軟件安裝教程(一):Visual Studio Code安裝與配置(Windows)

文章目錄前言一、Visual Studio Code下載二、安裝步驟&#xff08;Windows&#xff09;1. GUI安裝2. 命令行安裝三、首次啟動后建議的快速配置&#xff08;幾分鐘完成&#xff09;四、常見問題 & 小貼士總結前言 Visual Studio Code&#xff08;VS Code&#xff09;是一款…

JavaSSM框架從入門到精通!第三天(MyBatis(二))!

四、Mapper 的動態代理1. 引入 在上面的 CURD 例子中&#xff0c;我們發現&#xff1a;Dao 層的實現類的每一個方法僅僅是通過 SqlSession 對象的相關 API 定位到映射文件 mapper 中的 SQL 語句&#xff0c;真正對數據庫操作的工作實際上是有 Mybatis 框架通過 mapper 中的 SQL…

大模型應用發展與Agent前沿技術趨勢(下)

Agent技術的行業應用與實踐案例 金融領域的Agent應用 金融行業是大模型Agent技術應用最為廣泛的領域之一&#xff0c;涵蓋了風險評估、投資決策、客戶服務等多個方面。在金融風控領域&#xff0c;Agent系統通過結合大模型的語義理解能力和強化學習的決策優化能力&#xff0c;能…

94. 城市間貨物運輸 I, Bellman_ford 算法, Bellman_ford 隊列優化算法

94. 城市間貨物運輸 IBellman_ford 算法Bellman_ford 算法 與 dijkstra算法 相比通用性更強。dijkstra算法解決不了負權邊的問題&#xff0c;因為Dijkstra基于貪心策略&#xff0c;一旦一個節點被從隊列中取出&#xff08;標記為已解決&#xff09;&#xff0c;它就假定已經找到…