当前位置: 首页 > 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.dtcms.com/a/341803.html

相关文章:

  • VGG改进(3):基于Cross Attention的VGG16增强方案
  • Foundry与Uniswap V2实战开发指南
  • 【自记】Power BI 中 DISTINCT 和 ALLNOBLANKROW 的区别说明
  • 比特分割 + 尖峰保留:FlashCommunication V2 实现任意比特通信与 3.2× 加速
  • 一键授权登录
  • Windows暂停更新10年最简单的设置
  • UNet改进(33):基于CBAM原理与PyTorch实战指南
  • 可信数据空间关键技术和功能架构研究
  • RAG流程全解析:从数据到精准答案
  • 地区电影市场分析:用Python爬虫抓取猫眼_灯塔专业版各地区票房
  • 不止效率工具:AI 在创意领域的 “叛逆生长”—— 从文案生成到艺术创作的突围
  • 【蒸蒸日上】专栏前言
  • 我的创作纪念日-2048天
  • 动态规划----6.单词拆分
  • 关于 Flask 3.0+的 框架的一些复习差异点
  • 在 Linux 和 Docker 中部署 MinIO 对象存储
  • 深入解析:生产环境 SQL 数据库的架构设计与工程实践
  • 税务专业人员能力构建与发展路径指南
  • ubuntu系统上的conda虚拟环境导出方便下次安装
  • 【网络运维】Linux 文本搜索利器: grep命令
  • JavaBean中首字母小写第二个字母大写属性转换异常详解
  • GIT总结一键式命令清单(顺序执行)
  • redis---常用数据类型及内部编码
  • 官网SSO登录系统的企业架构设计全过程
  • 七十四、【Linux数据库】MySQL数据库存储引擎
  • 11让LLM更懂FunctionCalling返回值
  • S32K3 的图形化配置和EB配置mcal差异
  • week2-[二维数组]排队
  • MySQL/Kafka数据集成同步,增量同步及全量同步
  • Windows 如何清理右键菜单?电脑桌面右键菜单里出现一个清理内存 怎么去掉?