当前位置: 首页 > news >正文

数据库架构开发知识库体系

摘要

面向初创与企业团队,系统梳理数据库与数据平台从采集、传输、存储、处理、服务化到治理与安全的全链路。覆盖 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.lryc.cn/news/627093.html

相关文章:

  • 【JavaEE】(17) MyBatis 基础
  • 趣打印高级版--手机打印软件!软件支持多种不同的连接方式,打印神器有这一个就够了!
  • sourcetree 拉取代码
  • HTML--pre标签的作用
  • SpringCloud微服务架构入门指南
  • 8 webUI中-Controlnet(控制与约束)的应用分类与使用方法
  • CentOS 系统 Java 开发测试环境搭建手册
  • 用倒计时软件为考研备考精准导航 复习 模拟考试 日期倒计时都可以用
  • E10 通过RPC实现账号批量锁定与解锁
  • 宝塔部署 Nuxt3
  • 透传 Attributes(详细解析)1
  • 新手向:Python制作简易音乐播放器
  • 软考中级习题与解答——第一章_数据结构与算法基础(1)
  • PyTorch 深度学习常用函数总结
  • Dify 从入门到精通(第 45/100 篇):Dify 的外部系统集成
  • AI 伦理的 “灰色地带”:当算法拥有决策权,公平与隐私该如何平衡?
  • 【C++】模版(初阶)
  • C++ std::optional 深度解析与实践指南
  • kotlin 协程笔记
  • 用Python合成瀑布流图片
  • 【数据类型】
  • python的物资管理系统
  • Linux服务器性能优化总结
  • 压缩--RAR、7-Zip工具使用
  • Kafka如何保证「消息不丢失」,「顺序传输」,「不重复消费」,以及为什么会发生重平衡(reblanace)
  • 中国大学MOOC-C语言第九周指针(上)
  • 360报毒HEUR/QVM03.0.7EBB.Malware.Gen问题
  • lock4j 库中的 @Lock4j 注解进行全面的概述和深度的源码级剖析。
  • Ubuntu实现程序开机自动运行
  • Windows 如何清理右键菜单?电脑桌面右键菜单里出现一个清理内存 怎么去掉?