大数据架构设计与技术选型-全方位

160 阅读48分钟

一、大数据全流程

(一)数据采集(Ingestion)与接入

目标:从多源异构系统中获取原始数据。

实时性:离线采集(T+1)、近实时(分钟级)、实时(毫秒级)

数据规模:小流量(GB/天)、大流量(TB/天)、超大规模(PB/天)

来源:传感器、日志、数据库、社交媒体、IoT设备等。

批量采集:ETL工具(如Informatica、Kettle)、Sqoop(数据库导入)、日志解析(Flume、Logstash)。

实时采集:消息队列(Kafka、RocketMQ)、API接口、IoT设备协议(MQTT)。

数据源类型:结构化(数据库)、半结构化(JSON/XML、日志)、非结构化(文本、图像、视频)。

挑战:数据格式标准化、传输延迟控制、断点续传。

1、批量采集(离线)

技术适用场景优势劣势
Sqoop关系型数据库到HDFS/Hive成熟稳定,简单易用,支持增量导入仅支持结构化数据,性能瓶颈明显
DataX多数据源离线同步支持多种异构数据源,插件化扩展配置复杂,实时性差
KettleETL流程可视化开发图形化界面,适合非技术人员性能较低,大规模场景不适用

2、流式采集

技术适用场景优势劣势
Flume日志收集(如Web服务器日志)高可靠,支持多级聚合,支持多种sink仅支持单向流,配置复杂
Kafka高吞吐量消息队列,实时数据管道(如日志→Flink→ClickHouse)高吞吐(百万级/秒)、低延迟(毫秒级)、持久化存储、Exactly-Once语义需配合消费者实现业务逻辑,运维复杂(需管理Broker、Zookeeper)
Pulsar金融级日志流处理(如交易流水)统一消息与流、多租户、分层存储、支持无状态扩容生态成熟度低于Kafka、社区活跃度一般
KinesisAWS环境实时数据处理全托管服务,易扩展仅限AWS生态,成本较高
NiFiETL/ELT,CDC(变更数据捕获),实时流处理,数据归档与备份可视化、多数据源、实时与批量结合、数据溯源性能瓶颈,资源消耗较高,社区与文档支持有限,不适合超大规模数据处理

3、日志采集

技术适用场景优势劣势
Filebeat服务器日志文件采集(如Nginx、Tomcat)专为文件日志设计、低延迟、支持断点续传、与Logstash/Kafka无缝集成功能单一(仅文件采集)、过滤能力弱
LogstashELK栈(Elasticsearch+Logstash+Kibana)功能全面(支持解析、过滤、转换)、与Elasticsearch深度集成资源消耗高(JVM)、启动慢、性能瓶颈明显
Fluentd容器化环境(K8s)、边缘设备日志采集低资源占用(内存/CPU)、支持200+插件(如Kafka、S3)、统一日志层社区规模较小、复杂场景需自定义插件
Vector高性能日志采集(如IoT设备、CDN日志)超低资源占用(CPU/内存)、支持多种源/目标(如Kafka、S3)、动态重载配置生态较新(插件较少)、社区支持有限

3.1 技术选型指标

1)实时性要求

毫秒级:Kafka(低延迟消息队列)、Pulsar(计算存储分离)。

秒级:Fluentd/Filebeat(轻量级Agent)+ Kafka。

分钟级:Logstash(批量处理)、AWS CloudWatch Logs(依赖云服务调度)。

2)数据量规模

小规模(<10GB/天):Filebeat + Logstash + Elasticsearch。

中规模(10GB-1TB/天):Fluentd + Kafka + Flink/Spark。

大规模(>1TB/天):Kafka/Pulsar集群 + 分布式处理框架(如Flink)。

3)资源消耗

低资源:Vector(Rust)、Filebeat(Go)。

高资源:Logstash(JVM)、Splunk Forwarder(专有引擎)。

4)协议支持

文件日志:Filebeat、Fluentd、Logstash。

网络协议:Syslog(Fluentd/Logstash)、HTTP/TCP(Kafka/Pulsar)。

云服务:AWS CloudWatch Logs、Datadog Agent。

5)运维复杂度

简单:Filebeat(配置文件驱动)、Datadog Agent(全托管)。

复杂:Kafka(需管理Broker/Zookeeper)、Pulsar(分层存储配置)。

3.2 场景选型

1)K8s容器日志采集

方案:Filebeat(DaemonSet部署) → Kafka → Flink → ClickHouse。

理由:Filebeat轻量级,Kafka缓冲日志,Flink实时处理,ClickHouse存储分析。

2)高吞吐IoT设备日志

方案:Vector(边缘设备) → Pulsar → 实时告警系统。

理由:Vector低资源占用,Pulsar支持百万级QPS,适合设备日志流。

3)安全审计日志分析

方案:Splunk Universal Forwarder → Splunk Enterprise。

理由:Splunk提供预定义安全规则、合规性报告,企业级支持。

4)云上多服务日志整合

方案:AWS CloudWatch Logs Agent → CloudWatch Logs → OpenSearch。

理由:全托管服务,减少运维成本,适合AWS生态。

5)低成本开源日志栈

方案:Filebeat/Fluentd → Kafka → Loki/Grafana(监控) + Trino/Doris(分析)。

理由:Loki替代Elasticsearch降低成本,Trino支持多数据源查询。

4、数据库变更捕获(CDC)

技术适用数据库典型场景优势劣势
DebeziumMySQL、PostgreSQL、MongoDB、Oracle实时数据仓库、微服务同步全量+增量同步、Exactly-Once语义、支持多种数据库配置复杂、需Kafka存储变更事件、资源消耗较高
Flink CDCMySQL、PostgreSQL、Oracle、SQL Server实时风控、用户行为分析纯流式计算、支持Checkpoint、低延迟仅支持部分数据库、依赖Flink生态
CanalMySQLMySQL到Kafka/Redis的同步轻量级、社区活跃、支持MySQL全量+增量仅支持MySQL、功能单一、无分布式能力
MaxwellMySQL小规模MySQL变更采集输出JSON格式、支持Kafka/RabbitMQ、简单易用单点故障、性能瓶颈、不支持DDL事件
BottledWaterPostgreSQL历史遗留项目(不推荐新用)低延迟、支持全量+增量已停止维护、仅支持PostgreSQL

4.1 技术选型指标

1)实时性要求

毫秒级:Flink CDC(流式计算)、Debezium + Kafka(低延迟管道)。

秒级:Canal、Maxwell。

分钟级:AWS DMS、DataX CDC。

2)数据库兼容性

多数据库支持:Debezium(MySQL、PostgreSQL、MongoDB等)、Oracle GoldenGate。

MySQL专用:Canal、Maxwell。

3)资源消耗

低侵入性:Debezium(基于日志解析)、Flink CDC(JDBC模式)。

高侵入性:触发器模式(如部分商业工具)可能增加源库负载。

4)数据一致性

Exactly-Once:Debezium(配合Kafka事务)、Flink CDC(Checkpoint机制)。

At-Least-Once:Canal、Maxwell(需下游去重)。

5)运维复杂度

简单易用:Maxwell(JSON输出)、AWS DMS(全托管)。

复杂配置:Debezium(需Kafka/Zookeeper)、Oracle GoldenGate。

4.2 场景方案

1)实时数据仓库(如ClickHouse/Doris)

方案:Debezium + Kafka + Flink → ClickHouse。

理由:Debezium提供全量+增量数据,Kafka缓冲变更事件,Flink保证Exactly-Once语义。

2)微服务数据同步

方案:Flink CDC + Kafka → 目标服务。

理由:Flink CDC支持低延迟流式处理,Kafka解耦生产者与消费者。

3)MySQL到Redis缓存更新

方案:Canal + Kafka → Redis。

理由:Canal轻量级,适合MySQL专用场景,Kafka保证数据不丢失。

4)云上跨数据库同步

方案:AWS DMS(如MySQL → Aurora PostgreSQL)。

理由:全托管服务,减少运维成本。

5、分布式文件采集

技术适用场景优势劣势
DistCpHDFS集群间大规模数据迁移Hadoop原生工具,高效稳定仅支持HDFS,功能单一
Alluxio内存级分布式缓存加速数据访问,支持多存储层部署复杂,运维成本高

6、Web数据采集

技术适用场景优势劣势
Scrapy结构化网页爬取框架完善,支持分布式扩展需编写代码,反爬机制需处理
Apache Nutch大规模网页爬取基于Hadoop,支持分布式配置复杂,学习曲线陡峭
Selenium动态网页渲染采集支持JavaScript渲染页面性能低,资源消耗大

7、技术选型

1)离线批量采集

小规模数据:DataX(简单易用)或Sqoop(传统数据库适配)。

大规模数据:Spark + HDFS(计算存储一体化,避免数据搬运)。

关系型数据库迁移:Sqoop + 增量调度

日志文件采集:Flume/Filebeat + HDFS

2)实时流式采集

数据库变更:Flink CDC(无侵入,支持多种数据库)、Canal(MySQL专用)、Debezium/Maxwell。

通用消息队列:Kafka(核心中间件,支持多消费者)/Pulsar

AWS环境:Kinesis

3)日志收集

云原生环境:Fluentd/Fluent Bit

传统环境:Logstash(过滤转换能力强)/Filebeat、Flume(高可靠)

阿里云环境:Logtail

4)特殊场景

Web爬虫:Scrapy(结构化数据) + Selenium(动态页面补充)。

跨集群迁移:DistCp(Hadoop原生)或NiFi(可视化流程管理)。

极低延迟:Kafka + 内存计算

高可靠性:Kafka + 多副本

简单易用:云服务商提供的托管服务

5)混合架构

Lambda架构:离线层(Hive/Spark) + 实时层(Flink/Kafka)。

Kappa架构:纯流式处理(Flink + Kafka),适合低延迟场景。

(二)数据存储(Storage)与管理

目标:构建可扩展、低成本的存储体系。

分布式文件系统:HDFS(Hadoop)、Ceph(支持块/对象/文件存储)。

NoSQL数据库:HBase(列式)、MongoDB(文档型)、Cassandra(宽列)。

云原生存储:AWS S3、阿里云OSS(对象存储)、Azure Blob Storage。

数据湖:Delta Lake、Iceberg(支持ACID事务的表格式)。

挑战:冷热数据分层、存储成本优化、数据生命周期管理。

1、分布式文件系统

技术架构设计核心优势适用场景
HDFS主从架构(NameNode+DataNode)成熟生态(Hadoop/Spark原生支持)大数据批处理、离线分析
Ceph分布式对象存储(RADOS)+ 文件接口统一存储(块/对象/文件)云原生、多协议存储、混合负载
GlusterFS无中心节点(弹性哈希)简单扩展,线性性能提升媒体存储、备份归档
Alluxio内存优先的分层存储(计算存储分离)加速计算层,缓存热点数据AI/机器学习、内存计算加速
Lustre对象存储+元数据服务器集群高性能并行文件系统(HPC场景)HPC、科学计算、高性能需求
MooseFS主从架构(Master+ChunkServers)轻量级,易部署,支持动态扩容中小规模企业存储、Web应用
JuiceFS客户端层,元数据服务层,对象存储层分层设计成本效益显著,弹性与可扩展,高性能与低延迟,跨云与混合云支持大数据分析与AI训练,容器化应用数据持久化,跨云与混合云数据管理

1.1 技术选型

1)传统大数据

HDFS:成熟稳定,适合Hadoop/Spark批处理,Hadoop生态,但需考虑NameNode单点问题。

Alluxio:作为缓存层加速计算,尤其适合AI训练(如TensorFlow on Alluxio)。

2)云原生/混合云

Ceph:支持S3接口/块/文件,统一存储后端,适合私有云/公有云混合部署。

3)性能需求

低延迟:Alluxio(内存缓存)或Ceph(块存储优化)。

高吞吐:Lustre(并行文件系统)或HDFS(顺序读写优化),并行I/O优化,科学计算、金融风控等场景,需配合InfiniBand网络。

4)扩展性

超大规模:Ceph(百万级对象)或HDFS(千节点级)。

动态扩容:GlusterFS(无中心节点)或MooseFS(在线扩容)。

5)成本

开源免费:所有选项均开源,但运维成本差异大(如Lustre需专业团队)。

硬件依赖:Lustre需高性能网络,HDFS依赖本地磁盘。

GlusterFS:媒体存储、备份归档,简单易维护。

MooseFS:中小企业文件共享,支持动态扩容。

轻量级部署:MooseFS或GlusterFS(简单易用)。

6)生态兼容性

Hadoop生态:HDFS或Alluxio。

Kubernetes:Ceph(Rook项目)或GlusterFS(Heketi)。

2、云原生对象存储

技术扩展性多租户支持运维复杂度成本
AWS S3EB级(全球节点)IAM策略低(全托管)按使用量计费
MinIOPB级(集群扩展)命名空间隔离中(K8s集成)自建硬件成本
Ceph RGWEB级(分布式)需额外配置高(需管理Ceph集群)自建硬件成本
阿里云OSS/腾讯云COSEB级(国内节点)RAM策略低(全托管)按使用量计费

3、NoSQL非关系型数据库

数据库类型适用场景优势劣势
Redis键值存储缓存、会话管理、实时排行榜内存计算、毫秒级延迟、支持持久化数据量受内存限制,持久化影响性能
DynamoDB键值/文档存储云原生应用、无服务器架构全托管服务、自动扩展、低延迟成本较高,复杂查询需额外索引
MongoDB文档存储内容管理系统、用户画像、物联网数据灵活模式、强一致性、聚合查询集群分片配置复杂,写入吞吐量有限
Cassandra列族存储时序数据、日志存储、消息队列高可用、线性扩展、多数据中心支持查询语言复杂,无原生事务支持
HBase列族存储大数据实时分析、海量数据存储集成Hadoop生态、强一致性依赖HDFS,运维成本高
Neo4j图数据库社交网络、欺诈检测、推荐系统原生图存储、Cypher查询语言、可视化分布式扩展性差,不适合超大规模图
ArangoDB多模型(文档/图/键值)混合负载场景(如文档+关系查询)支持多种数据模型、统一查询语言社区规模较小,功能迭代较慢

3.1 技术选型因素

1)一致性与可用性

强一致性:MongoDB、HBase(适合金融交易等场景)。

最终一致性:Cassandra、DynamoDB(适合高可用优先的场景)。

图数据库:Neo4j支持ACID事务,适合需要严格一致性的关系查询。

2)扩展性需求

垂直扩展:Redis(单机性能强,但受内存限制)。

水平扩展:Cassandra、MongoDB(分片集群支持PB级数据)。

多数据中心:Cassandra、DynamoDB(跨区域复制能力)。

3)查询复杂度

简单查询:键值存储(通过键直接访问)。

复杂查询:

文档存储:MongoDB支持聚合管道、全文索引。

图数据库:Neo4j支持Cypher语法,高效遍历关系。

列族存储:Cassandra需预先设计查询模式(CQL限制较多)。

4)生态与集成

云原生:DynamoDB(AWS)、Cosmos DB(Azure)、Firestore(Google Cloud)。

开源生态:MongoDB、Cassandra、Neo4j(支持K8s部署)。

大数据集成:HBase(与Hadoop/Spark深度整合)、Cassandra(支持Spark Connector)

3.2 场景选型

1)实时缓存与会话管理

推荐方案:Redis(内存计算+持久化)或Memcached(纯内存缓存)。

理由:低延迟、高并发,支持数据过期和发布订阅模式。

2)物联网(IoT)数据存储

推荐方案:Cassandra(时序数据写入优化)或MongoDB(灵活模式存储设备元数据)。

理由:Cassandra支持高吞吐写入和分布式查询,MongoDB适合嵌套的传感器数据。

3)社交网络与推荐系统

推荐方案:Neo4j(图数据库)或ArangoDB(多模型)。

理由:原生支持关系查询,可高效计算用户相似度或推荐路径。

4)云原生应用

推荐方案:DynamoDB(全托管+自动扩展)或Cosmos DB(多模型+全球分发)。

理由:无需运维,与云服务深度集成,支持多区域复制。

5)大数据分析平台

推荐方案:HBase(Hadoop生态)或Cassandra(Spark集成)。

理由:HBase适合与Hive/Spark协同处理PB级数据,Cassandra支持实时分析。

4、NewSQL分布式事务数据库

1)基于共识算法的分布式架构

CockroachDB、YugabyteDB、TiDB(部分模块)

核心原理:

数据分片(Range Partitioning):将数据按主键范围划分为多个分片(Range),每个分片存储在多个节点上形成副本集(Replica Set)。

共识协议(Raft/Paxos):通过多副本同步确保数据强一致性,写入需多数节点确认(如3副本中2个成功)。

全局时钟(HLC):解决分布式事务中的时间戳分配问题(如CockroachDB的Hybrid Logical Clock)。

优势:

强一致性:支持跨分区ACID事务,满足金融级要求。

自动扩展:动态分片分裂与迁移,无需手动干预。

多云兼容:支持跨区域部署,容忍网络分区。

2)基于两阶段提交(2PC)的优化架构

Google Spanner、OceanBase、TiDB(Percolator算法)

核心原理:

分布式事务协议:通过两阶段提交(2PC)或其变种(如Percolator的乐观锁)协调跨节点事务。

全局唯一时间戳(TrueTime/TSO):为事务分配全局有序时间戳,解决冲突(如Spanner依赖GPS+原子钟,TiDB使用中心化TSO服务)。

列式存储引擎:部分产品(如OceanBase、TiFlash)集成列存引擎支持HTAP。

优势:

严格串行化:提供外部一致性(External Consistency),确保事务全局顺序。

高并发:通过乐观锁减少锁竞争(如Percolator的写写冲突检测)。

混合负载支持:OLTP+OLAP一体化(如Spanner的F1查询引擎)。

3)共享存储架构(计算存储分离)

AWS Aurora、阿里云PolarDB、华为云GaussDB(for MySQL)

核心原理:

存储层共享:多个计算节点共享同一份存储(如Aurora的日志即存储设计)。

无状态计算节点:计算节点故障时,其他节点可快速接管,无需数据迁移。

读写分离:主节点写,多个只读副本提供读扩展。

优势:

极低延迟:存储计算分离减少数据复制开销。

弹性扩展:计算节点秒级扩容,存储按需扩展。

高可用:存储层多副本同步,计算节点无单点。

数据库一致性模型事务支持扩展性典型场景
CockroachDB严格串行化(External Consistency)跨分区ACID自动分片分裂/迁移全球化应用、SaaS平台
TiDB严格串行化(依赖TSO)跨分区ACID(Percolator)自动分片(PD组件调度)金融核心系统、互联网业务
OceanBase严格串行化(Paxos+TSO)跨分区ACID(Paxos)手动分片(支持自动扩展)银行核心系统、高并发OLTP
Google Spanner严格串行化(TrueTime)全球分布式事务自动分片Directory-Based谷歌内部核心业务
AWS Aurora强一致(MySQL兼容)本地事务(跨可用区2PC)计算节点弹性扩展云原生企业应用

4.1 业务场景方案

1)全球化部署

优先选择支持多区域同步的NewSQL(CockroachDB、Spanner、YugabyteDB),避免跨区域2PC性能瓶颈。

2)混合负载(HTAP)

选择集成列存引擎的产品(TiDB+TiFlash、OceanBase+OBServer),避免ETL延迟。

3)云原生环境

托管服务优先(Aurora、PolarDB),降低运维复杂度;自建环境可选TiDB(Kubernetes友好)。

4)跨境支付系统

需求:多区域低延迟、强一致性、反洗钱复杂查询。

推荐:CockroachDB(跨区域同步) + TiFlash(实时风控分析)。

5)证券交易平台

需求:微秒级延迟、高并发订单处理、审计合规。

推荐:OceanBase(蚂蚁集团实测P99延迟<10ms) + 列存引擎加速报表。

核心交易系统需严格串行化,OceanBase(蚂蚁集团生产验证)或TiDB(银行案例丰富)。

6)SaaS多租户数据库

需求:资源隔离、弹性扩缩容、多租户SQL隔离。

推荐:TiDB(资源组隔离) + Aurora Serverless(按需付费)。

7)物联网设备管理

需求:高吞吐写入、时序数据优化、设备状态实时查询。

推荐:YugabyteDB(PostgreSQL兼容) + TimescaleDB扩展(时序数据处理)。

5、大数据仓库

5.1 传统大数据仓库

技术典型场景优势劣势
Teradata超大规模数据仓库(PB级),需极致并行处理能力。分布式架构,MPP(大规模并行处理)设计,线性扩展,优化器强大封闭生态,依赖Teradata专用硬件和软件,成本高
Exadata金融、电信等对事务一致性要求极高的行业,需兼容传统OLTP与OLAP。高性能,硬件加速(如Infiniband网络、SSD缓存)。成熟生态成本高,扩展性有限,依赖专用硬件,横向扩展复杂。

5.2 开源大数据仓库

技术典型场景优势劣势
Hive离线数仓(T+1报表)生态成熟(与Spark/Presto集成)、支持复杂SQL查询延迟高(分钟级)、不适合实时分析
Druid实时OLAP,低延迟分析(秒级)实时摄入:支持Kafka、Kinesis等流数据源,列式存储+索引,分布式架构,自动分片。功能有限,配置复杂,需理解Rollup和Segment管理。
ClickHouse用户行为分析、广告投放效果监测极速分析查询(比Presto快10-100倍)、支持实时更新事务支持弱、高并发写入性能差

5.3 云原生数据仓库

技术典型场景优势劣势
Snowflake企业级数据分析(如Salesforce数据整合)全托管、弹性扩展、按需付费、支持多云、云原生数据仓库成本高(数据导出收费)、云锁定风险
Amazon RedshiftAWS生态内数据仓库,需深度集成云服务性能优化:列式存储、压缩编码、查询优化器,与S3集成,成本可控扩展性有限,锁入AWS,
Google BigQuery无服务器架构,需极致弹性和机器学习集成完全无服务器,实时分析,AI集成成本不可预测,生态局限
Azure Synapse Analytics微软生态内数据仓库,需统一批流处理混合架构,Power BI集成,安全性性能一般,生态封闭

5.4 技术选型

1)传统行业(金融、电信)

优先选择Teradata或Oracle Exadata,满足高并发、低延迟和事务一致性需求。

2)互联网公司(实时分析)

离线批处理:Hive/Spark SQL + HDFS/S3。

实时OLAP:Druid/ClickHouse + Kafka。

全托管方案:Snowflake/BigQuery(降低运维成本)。

3)初创公司/中小企业

云原生数据仓库(Snowflake/Redshift)按需付费,快速启动。

4)成本敏感型

开源方案(Hive/Spark)自建集群,但需投入运维资源。

6、数据湖

技术典型场景优势劣势
Delta Lake高并发写入、历史版本回溯完整ACID、时间旅行、Z-ordering优化依赖Databricks生态,社区活跃度稍低
Iceberg跨引擎查询、元数据集中管理开源标准、多引擎支持、行级更新社区成熟度待提升,功能迭代较慢
Hudi实时数仓、CDC数据同步增量处理、快照隔离、流式更新学习曲线陡峭,配置复杂
StarRocks高并发OLAP、低延迟查询向量化执行、物化视图、实时分析对非结构化数据支持有限
Doris实时分析、用户行为分析列式存储、CBO优化、多表关联加速社区规模较小,功能迭代较慢

6.1 选型参考

1)优先开放生态

选择Delta Lake/Iceberg/Hudi等开放表格式,避免厂商锁定,支持多引擎协同。

若需同时使用Spark和Trino查询,优先选Iceberg。

2)实时性需求

流式更新场景选Hudi(如金融交易、物联网数据)。

微批处理选Delta Lake(如日志分析、用户行为数据)。

3)查询性能优先

复杂分析查询选StarRocks/Doris等MPP引擎,结合物化视图优化。

简单查询可依赖Trino+Iceberg的组合。

4)成本敏感型

云上选Snowflake(按需付费)或AWS Redshift Spectrum(结合S3)。

自建环境选Iceberg+Spark/Flink,降低许可证成本。

5)企业级需求

需完整ACID、细粒度权限控制选Databricks Lakehouse。

多云部署选Snowflake或StarRocks(支持K8s部署)。

7、时序数据库(时间序列数据)

技术典型场景优势劣势
InfluxDB监控告警(如Prometheus替代方案)高压缩比、支持连续查询(CQ)、内置可视化集群版商业授权、分布式能力弱
TimescaleDB金融时序数据(如股票行情)SQL兼容、支持事务、时间分区优化资源消耗高(PostgreSQL内核)、水平扩展需分片
IoTDB工业设备监控(如风电场传感器数据)低存储成本(压缩率高)、支持复杂时序查询生态局限(主要面向物联网场景)、社区规模小
M3DB监控系统,大规模时序数据,日志分析,物联网(IoT),金融风控,A/B测试高可扩展,低延迟查询,生态兼容,企业级功能写入性能瓶颈,生态成熟度低,资源消耗,冷启动问题

物联网数据存储

存储:IoTDB(设备时序数据) + MinIO(图片/视频) + Flink(实时处理)。

理由:IoTDB针对物联网优化,MinIO兼容S3协议。

专用时序数据库:InfluxDB/TimescaleDB

大规模场景:OpenTSDB + HBase

8、技术选型指标

1)数据规模与增长速度

PB级:HDFS、Ceph、Snowflake(云原生弹性扩展)。

TB级:ClickHouse、Doris(单机性能强,集群成本低)。

高速增长:Cassandra(无单点瓶颈)、TiDB(自动分片)。

2)查询模式

实时点查:Doris(MPP架构)、TiDB(行存+索引)。

复杂分析:ClickHouse(列存+向量化)、Snowflake(分布式并行计算)。

全文检索:Elasticsearch(倒排索引)、Milvus(向量检索)。

3)一致性要求

强一致性:TiDB(Raft协议)、CockroachDB(分布式事务)。

最终一致性:Cassandra(多副本异步写入)、Ceph(CRUSH算法)。

4)成本敏感度

低成本开源:Hive(离线)、ClickHouse(实时)、MinIO(对象存储)。

全托管服务:Snowflake(数据仓库)、AWS S3+Glue(数据湖)。

5)生态集成

Hadoop生态:HDFS、HBase、Hive。

云原生生态:Snowflake、AWS Redshift、Google BigQuery。

实时流生态:Flink+Kafka+ClickHouse(实时数仓)。

(三)数据计算与处理(Processing)

目标:通过批处理或流计算提取价值。

批处理:MapReduce、Spark(DAG优化)、Hive(SQL-on-Hadoop)。

流处理:Flink(状态管理)、Spark Streaming(微批)、Storm(实时低延迟)。

混合处理(Lambda/Kappa架构):结合批流一体化(如Flink)。

机器学习:Spark MLlib、TensorFlow on Spark(分布式训练)。

挑战:计算资源调度、状态一致性、反压机制(流处理)。

1、批处理框架(离线计算)

技术适用场景优势劣势
Hadoop (MapReduce)超大规模数据离线处理(TB/PB级)高容错性、成熟生态(HDFS、Hive)延迟高(分钟级)、开发复杂
Spark中大规模批处理(GB/TB级)内存计算(快10-100倍)、统一API内存消耗大、Shuffle成本高
Flink (Batch模式)批流一体处理统一批流API、低延迟批处理优化不如Spark成熟

2、流处理框架(实时计算)

技术适用场景优势劣势
Storm低延迟实时处理(毫秒级)真正实时、容错性强状态管理复杂、资源利用率低
Flink复杂事件处理(CEP)、有状态流计算精确一次语义、状态后端优化学习曲线陡峭
Kafka Streams轻量级流处理(与Kafka集成)低延迟、无额外集群依赖功能较基础、扩展性有限
Spark Streaming微批处理(秒级延迟)与Spark生态无缝集成延迟较高、状态管理较弱

3、AI机器学习计算

技术适用场景优势劣势
Spark批处理、迭代计算(如机器学习训练)内存计算加速,支持SQL、流处理、图计算;生态丰富(MLlib、GraphX)实时性不足(微批处理);内存消耗大,小数据场景效率低
Ray分布式训练、强化学习、超参优化原生支持Python,低延迟调度;适合动态计算图(如深度学习)生态较新,社区规模较小;大数据集成能力弱(需依赖其他工具)
DaskPython生态的并行计算与NumPy/Pandas无缝集成;适合中小规模数据并行化分布式调度效率低于Spark;生产环境稳定性待验证

4、交互式查询引擎(OLAP分析)

技术适用场景优势劣势
Hive (LLAP)离线SQL查询(TB级以上)与Hadoop集成、支持复杂SQL延迟高(分钟级)
Impala实时SQL查询(PB级)低延迟(秒级)、MPP架构资源占用高、仅支持HDFS
Presto/Trino多数据源联邦查询分布式执行、支持多种数据源内存敏感、复杂查询不稳定
Druid时序数据实时分析列式存储、预聚合、低延迟写入性能一般、不支持完整SQL
ClickHouse高并发实时分析(OLAP)列式存储、向量化执行、高性能事务支持弱、生态较新
Kylin固定维度报表、BI工具对接查询延迟毫秒级,适合高并发报表。预计算成本高,维度爆炸问题。不支持动态维度和实时更新。

交互式分析优先 Presto 或 ClickHouse

时序数据场景 → Druid 或 TimescaleDB

已有Hadoop生态 → Impala 或 Hive on Spark

5、搜索与分析

Elasticsearch

1)搜索引擎: 基于Lucene构建,提供全文检索、模糊匹配、相关性排序等能力。

2)典型场景:网站搜索、日志检索、日志分析、文档管理、实时监控、用户行为分析、安全事件分析、电商搜索。

3)分析引擎: 支持聚合查询(Aggregation)、时间序列分析、地理空间分析等OLAP功能。

大数据组件:分布式架构,可横向扩展至PB级数据。

4)实时性: 比Hadoop/Spark更接近实时,支持近实时(NRT, Near Real-Time)数据摄入与查询(延迟通常在1秒内),适合需要快速响应的场景。

5)灵活数据模型: 无需预定义Schema,支持动态字段,适合半结构化数据(如日志、JSON)。

6)高可用性: 内置副本与分片机制,支持跨数据中心部署。

7)生态集成: 与Logstash(数据采集)、Kibana(可视化)、Beats(轻量级传输)组成ELK栈,覆盖数据全生命周期。

8)局限性: 不适合复杂事务,高基数维度聚合性能下降,深度聚合查询成本高,存储成本较高

6、资源管理与调度

技术适用场景优势劣势
YARNHadoop生态资源管理成熟、支持多框架配置复杂、静态资源分配
Kubernetes云原生容器化调度弹性伸缩、多租户支持学习成本高、需适配大数据组件
Mesos混合负载调度(大数据+AI)高效资源利用、支持多框架生态较弱、维护成本高

云原生环境 → Kubernetes

传统Hadoop集群 → YARN

混合负载 → Mesos(或K8s替代)

7、图计算技术

7.1 分布式图处理框架(大规模图计算)

技术适用场景优势劣势算法支持
Giraph超大规模图迭代计算(PB级)基于Hadoop/YARN、高容错性开发复杂、仅支持BSP模型PageRank、连通分量、最短路径
Pregel(Google)原始BSP模型提出者模型简单、适合大规模迭代闭源、依赖Google内部生态同Giraph
Spark GraphX中大规模图计算(TB级)与Spark生态无缝集成、API丰富内存消耗大、性能弱于专用框架社区发现、图嵌入、标签传播
Gemini(清华)超大规模图计算(万亿边)分布式优化、混合计算模型学术性质强、商业支持弱随机游走、图神经网络
PowerGraph(GraphLab)高性能图计算(不规则图)GAS模型优化、顶点切割技术开发复杂、社区较小矩阵分解、推荐系统

超大规模图(万亿边以上):优先 Gemini 或 PowerGraph(需自研优化)

中大规模图(亿级顶点):Spark GraphX(易用性优先)或 Giraph(低成本)

已有Spark生态:直接使用 GraphX 或 GraphFrames(SQL接口)

7.2 原生图数据库(实时图查询与更新)

技术适用场景优势劣势
Neo4j中小规模实时图查询(亿级边)、金融反欺诈、知识图谱Cypher查询语言、ACID事务分布式扩展性差、成本高
JanusGraph分布式图数据库(千亿级边)、社交网络、推荐系统支持多种存储后端(HBase、Cassandra)、开源生态查询性能弱于专用数据库
Nebula Graph超大规模实时图(万亿级边)、金融风控、物联网关系分析分布式架构、共享内存优化、OLAP/OLTP混合社区较新、学习成本高
ArangoDB多模型数据库(图+文档+键值)、混合数据场景(如用户+订单关系)统一查询语言(AQL)、灵活模式图功能不如专用数据库强大
Dgraph高性能分布式图数据库、实时推荐、内容关联GraphQL-like查询、低延迟生态较小、功能较基础

实时查询优先:Neo4j(单机)或 Nebula Graph(分布式)

低成本分布式:JanusGraph(基于HBase)

多模型需求:ArangoDB

7.3 图计算专用引擎(高性能迭代计算)

技术适用场景优势劣势
Galois(Intel)异构计算加速(CPU/GPU)优化内存访问、并行图算法库硬件依赖强、移植成本高
Gunrock(NVIDIA)GPU图计算(亿级边)CUDA优化、高性能图遍历仅支持NVIDIA GPU、算法覆盖有限
Plato(腾讯)超大规模图计算(万亿级边)异步计算模型、分层压缩存储闭源、定制化强
HugeGraph(百度)分布式图计算与查询兼容TinkerPop、低延迟查询迭代计算性能一般

GPU加速需求:Gunrock(需NVIDIA GPU)

超大规模异步计算:Plato(需腾讯技术栈适配)

开源通用方案:HugeGraph(兼容TinkerPop生态)

7.4 技术选型

1)图规模与增长速度

万亿级边:优先分布式框架(Gemini/Nebula Graph)或专用引擎(Plato)

亿级边:图数据库(Neo4j/JanusGraph)或Spark GraphX

2)计算模式

迭代计算(如PageRank):选择BSP/GAS模型框架(Giraph/PowerGraph)

实时查询(如路径查找):选择图数据库(Neo4j/Nebula Graph)

混合负载:考虑OLTP+OLAP混合引擎(Nebula Graph)

3)硬件环境

GPU集群:Gunrock(图遍历)或Galois(异构计算)

CPU集群:Spark GraphX或Gemini

4)算法复杂度

简单遍历:通用框架均可支持

复杂图神经网络:需专用引擎(Plato)或深度学习框架集成(PyG+DGL)

5)团队技能

Java/Scala:Spark GraphX/JanusGraph

C++/Python:Gemini/Gunrock

Cypher/Gremlin:Neo4j/HugeGraph

8、选型因素

1)数据规模与增长速度

PB级超大规模:Hadoop/Spark + 对象存储(如S3)、Hadoop生态(HDFS+MapReduce/Hive)

GB级实时数据:Flink/Kafka Streams

TB-PB级:Spark/Flink + Parquet/ORC

TB级以下:可以考虑ClickHouse、Druid等专用OLAP引擎

2)延迟要求

实时(秒级以下):Flink/Storm

准实时(分钟级):Spark Streaming/Kafka Streams

分钟级以上:Hadoop/Hive

纯离线批处理:MapReduce/Spark

交互式分析:Presto/ClickHouse/Druid

3)团队技能

熟悉Java/Scala → Spark/Flink

偏好SQL → Presto/ClickHouse

云原生经验 → Kubernetes + Spark/Flink

4)成本

开源方案:Hadoop/Spark(需自运维)

托管服务:AWS EMR、Google Dataproc、阿里云MaxCompute

5)使用场景

ETL/数据清洗:Spark/Flink

机器学习:Spark MLlib/Flink ML

实时监控:Flink + Druid

用户行为分析:ClickHouse

图数据分析:Neo4j/GraphX

(四)数据治理(Governance)与质量控制

目标:确保数据可用性、合规性与安全性。

元数据管理:Apache Atlas(Hadoop生态)、DataHub(追踪数据血缘)、Collibra(商业工具)。

数据血缘:追踪数据来源与转换路径。

数据质量:校验规则、异常检测,规则引擎(Great Expectations)、数据清洗(OpenRefine)。

安全合规:Kerberos认证、数据脱敏(ProxySQL)、Ranger/Sentry(细粒度权限控制)、GDPR合规。

挑战:跨系统元数据同步、质量规则动态更新。

1、工作流编排

工具类型适用场景优势劣势
Airflow批处理/轻量流离线ETL、机器学习流水线Python原生支持、插件生态丰富、社区活跃资源调度依赖外部(如Celery/K8s)、实时性较弱
Oozie批处理(Hadoop)传统Hadoop生态离线任务与Hadoop深度集成、XML配置稳定配置复杂、学习曲线陡峭、社区萎缩
Azkaban批处理小规模Hadoop任务调度轻量级、依赖管理简单、Web界面友好功能单一、扩展性差、社区不活跃
Workflows云原生(K8s)云上机器学习、复杂批处理原生K8s支持、声明式编排、强类型检查学习成本高、需K8s基础、实时任务支持有限
Step Functions云原生(AWS)AWS生态内的复杂工作流全托管、与AWS服务无缝集成、可视化设计厂商锁定、成本较高、非AWS服务支持差
NiFi可视化流处理实时数据管道、简单ETL拖拽式界面、数据血缘追踪、实时流处理性能瓶颈明显、批处理能力弱、集群管理复杂
Kubeflow Pipelines机器学习专用ML模型训练与部署流水线与K8s/TFX集成、实验跟踪、可复现性仅聚焦机器学习、学习曲线陡峭

1.1 技术选型

1)数据规模与实时性

小规模离线:Airflow/Azkaban(低成本、易上手)。

大规模实时:NiFi(流处理) + Flink(计算) + Airflow(调度)。

云原生环境:Argo/Step Functions(弹性资源利用)。

2)技术栈兼容性

Hadoop生态:Oozie(若已深度使用)、Airflow(替代方案)。

Python/ML:Airflow、Kubeflow Pipelines。

K8s环境:Argo、Kubeflow。

3)运维复杂度

低运维需求:云原生服务(Step Functions、Glue)。

高可控性:自托管Airflow/Argo(需投入运维资源)。

4)成本考量

开源免费:Airflow、Argo、NiFi(需自建集群)。

按需付费:Step Functions、Glue(适合波动负载)。

1.2 参考方案

1)传统大数据团队

方案:Airflow(调度) + Spark(计算) + HDFS/S3(存储)。

理由:平衡功能与成本,Python生态支持机器学习扩展。

2)实时数据处理场景

方案:NiFi(数据采集) + Flink(流计算) + Airflow(批处理补数)。

理由:NiFi简化实时管道搭建,Flink处理低延迟需求。

3)云原生机器学习

方案:Kubeflow Pipelines(训练) + Argo(批处理) + Step Functions(事件驱动)。

理由:利用K8s弹性资源,避免厂商锁定(可混合使用开源工具)。

4)快速原型开发

方案:NiFi(可视化) + AWS Glue(Serverless ETL)。

理由:降低开发门槛,快速验证业务逻辑。

2、数据治理工具

工具适用场景优势劣势
AtlasHadoop/Spark环境下的数据治理开源、与Hadoop生态深度集成,支持元数据管理和血缘分析社区支持为主,企业级功能需二次开发
Collibra金融、医疗等强合规行业商业化产品,提供数据目录、血缘、权限管理,用户界面友好成本较高,定制化需额外服务
Alation数据资产盘点、数据文化培育基于AI的元数据管理,支持自然语言查询,自动化数据发现对非结构化数据支持较弱
Amazon GlueAWS云环境下的数据治理云原生服务,与AWS生态无缝集成,支持数据目录和ETL依赖AWS,迁移成本高
Informatica已使用Informatica生态的企业端到端解决方案、与ETL工具集成好功能臃肿、学习曲线陡

2.1 数据目录

开源方案:DataHub(LinkedIn)、Amundsen(Lyft)、Marquez

优点:成本低、可定制

缺点:需要技术团队维护

商业方案:Alation、Collibra、IBM Watson Knowledge Catalog

优点:功能全面、支持完善

缺点:许可成本高

3、数据质量控制工具

工具适用场景优势劣势
Great Expectations实时/批量数据质量校验开源、轻量级,支持Python规则编写,可集成到数据管道规则配置需编码,学习曲线较陡
Informatica DQ企业级数据质量监控,支持多数据源商业化产品,提供可视化规则配置、数据剖析、质量评分成本高,部署复杂
Deequ (AWS)批处理数据质量校验基于Spark的开源库,支持自动化数据质量测试,适合大规模数据处理需Spark环境,流处理支持有限
Talend数据清洗与质量监控一体化商业化ETL工具,集成数据质量模块,支持可视化规则配置社区版功能有限,企业版成本较高
Monte Carlo金融衍生品定价,风险评估,投资决策,机器学习,计算机图形学,药物试验设计,游戏AI通用性强,处理高维问题,并行化友好,直观易实现,不确定性量化收敛速度慢,随机性依赖,计算资源消耗,方差控制困难

3.1 技术选型

1)按场景选择

Hadoop/Spark生态:Apache Atlas(治理) + Deequ(质量)、Airflow + Great Expectations

实时数据场景:流式架构+Deequ或Monte Carlo、Flink + Deequ + Prometheus

云环境:AWS Glue(治理) + Great Expectations(质量)。

金融/医疗行业:Collibra(治理) + Informatica DQ(质量)、Collibra+Informatica,满足合规要求

互联网企业:开源组合Atlas+Great Expectations,适应快速变化

传统企业:SaaS化解决方案如Alation,降低技术门槛

2)成本与扩展性平衡

初创企业:开源工具(Atlas + Deequ)降低成本,但需投入开发资源。

大型企业:商业化工具(Collibra + Informatica)快速落地,但需评估长期成本。

3)技术栈整合

优先选择与现有技术栈(如Spark、Flink、Kafka)兼容的工具,减少集成成本。

例如:若使用Databricks,可结合Delta Lake的ACID特性与Great Expectations进行质量校验。

4)合规与安全

涉及敏感数据时,选择支持数据脱敏、审计日志的工具(如Collibra、Informatica)。

4、认证技术

技术类型适用场景优势劣势
Kerberos传统协议传统大数据集群(CDH/HDP)与Hadoop生态深度集成(如HDFS、Hive)、单点登录(SSO)配置复杂、密钥管理困难、不支持细粒度授权
OAuth 2.0/OIDC现代协议微服务架构、跨域认证标准化、支持第三方登录、JWT令牌轻量级需结合其他工具实现授权、令牌泄露风险
LDAP/Active Directory目录服务企业内部用户目录集中管理用户/组、与Windows生态无缝集成扩展性差、不支持动态策略
SPIFFE/SPIRE服务间认证云原生环境(K8s)为容器/微服务提供自动化的身份颁发、支持mTLS学习曲线陡峭、社区较小
AWS IAM/Azure AD云原生身份管理云上大数据服务(EMR、Databricks)全托管、与云服务深度集成、支持细粒度策略厂商锁定、成本较高

5、授权技术

技术类型适用场景优势劣势
Ranger集中式授权HDFS、Hive、HBase等组件的权限管理与Hadoop生态集成、支持RBAC/ABAC、审计日志仅限Hadoop生态、性能瓶颈
Sentry组件级授权遗留Hive环境(需替代时建议迁移至Ranger)为Hive/Impala提供细粒度SQL权限控制功能单一、已停止维护
Open Policy Agent (OPA)策略引擎云原生大数据(K8s上的Spark/Flink)声明式策略、支持多环境(K8s、大数据)、动态授权需自行集成、策略编写复杂
Keycloak身份与访问管理中小规模大数据平台的认证授权中心开源替代Okta/Auth0、支持OAuth 2.0/OIDC、RBAC/ABAC策略需自行运维、大数据生态集成较弱
AWS Lake Formation云数据湖授权AWS数据湖(S3+Athena)与AWS Glue/S3无缝集成、基于标签的动态访问控制仅限AWS生态、成本高

6、加密与审计

技术类型适用场景优势劣势
HDFS Transparent Encryption存储加密传统Hadoop集群数据加密透明加密、与Kerberos集成仅限HDFS、性能损耗
KMS(HashiCorp Vault/AWS KMS)密钥管理跨平台密钥管理集中管理密钥、支持自动轮换、审计日志需与存储/计算层集成
Atlas数据血缘与分类数据分类与合规审计与Ranger集成实现基于标签的授权、元数据管理配置复杂、需结合其他工具使用
ELK Stack日志审计访问日志审计与安全分析集中化日志分析、可视化告警、支持合规报告生成需自行配置存储周期、大数据量下性能优化

6.1 技术选型

1)生态兼容性

Hadoop生态:优先选择Ranger(授权)+ Kerberos(认证)+ Atlas(审计)。

云原生环境:OPA(策略)+ SPIRE(服务认证)+ KMS(加密)。

混合云:Keycloak(统一认证) + OPA(跨云授权)。

2)合规要求

GDPR/CCPA:需支持数据最小化、动态脱敏(如Ranger标签策略)。

金融行业:强制多因素认证(MFA)+ 细粒度审计(ELK+Atlas)。

医疗行业:端到端加密(KMS) + 基于角色的强制访问控制(RBAC)。

3)性能与扩展性

高并发场景:避免Kerberos(单点瓶颈),改用OAuth 2.0/JWT。

大规模策略:OPA(策略引擎)优于Ranger(数据库存储策略)。

4)运维成本

全托管服务:AWS IAM/Lake Formation(降低运维负担,但成本高)。

开源自研:Ranger+OPA(需投入开发资源,但灵活可控)。

6.2 参考方案

1)传统Hadoop集群(CDH/HDP)

认证:Kerberos(基础认证) + LDAP(用户目录)。

授权:Apache Ranger(RBAC/ABAC策略)。

加密:HDFS透明加密 + KMS(密钥管理)。

审计:Ranger审计日志 + ELK(可视化分析)。

理由:深度集成Hadoop生态,满足等保2.0三级要求。

2)云原生大数据(K8s+Spark/Flink)

认证:SPIRE(服务间mTLS认证) + OAuth 2.0(用户认证)。

授权:Open Policy Agent(OPA,动态策略)。

加密:云KMS(如AWS KMS) + 传输层TLS。

审计:Fluentd(日志收集) + ELK(分析)。

理由:支持动态扩缩容,避免单点故障。

3)混合云多数据源

认证:Keycloak(统一身份中心) + SAML(跨域SSO)。

授权:OPA(统一策略引擎,覆盖HDFS/S3/Snowflake)。

加密:HashiCorp Vault(跨云密钥管理)。

审计:Atlas(数据血缘) + ELK(合规报告)。

理由:避免厂商锁定,满足跨云合规需求。

4)金融行业高安全场景

认证:Kerberos(强认证) + MFA(短信/OTP)。

授权:Ranger(细粒度SQL权限) + 动态脱敏(基于标签)。

加密:HSM(硬件安全模块) + 传输层国密算法。

审计:实时告警(Splunk) + 司法取证链。

理由:满足PCI DSS、银保监会等严苛要求。

(五)数据分析(Analysis)与挖掘

目标:从数据中提取洞察并支持决策。

可视化:Tableau、Power BI、Superset、Grafana(实时监控)

交互式分析:Presto、Impala(MPP架构)、Druid(OLAP)、ClickHouse(列式数据库)。

预测性分析:时间序列预测(Prophet)、回归模型(Scikit-learn)。

规范性分析:优化算法(线性规划、遗传算法)。

机器学习AI/ML:Spark MLlib、深度学习(PyTorch、TensorFlow)分布式训练、AI模型服务MLflow/Kubeflow。

挑战:模型可解释性、特征工程自动化、A/B测试验证

1、AI机器学习

技术适用场景优势劣势
Scikit-learn传统机器学习(分类、回归、聚类)简单易用,API统一不支持分布式训练;大数据场景性能差
TensorFlow图像、NLP、序列模型等复杂任务生产级深度学习,支持分布式训练调试复杂,动态图模式性能较低;移动端部署需优化
PyTorch快速原型开发、研究实验动态计算图,研究友好生产部署工具链不如TensorFlow成熟
XGBoost/LightGBM结构化数据建模(如CTR预测、风控)高性能梯度提升树,支持并行化需预处理数据为特征矩阵;对类别特征支持有限
H2O.ai企业级自动化建模,支持SQL集成自动机器学习(AutoML),分布式支持深度学习支持较弱;开源版功能受限
Spark MLlib大规模机器学习(如推荐系统)与Spark无缝集成、支持分布式训练算法覆盖有限、性能不如专用框架
Hugging FaceNLP预训练模型(如BERT)开箱即用、模型库丰富依赖GPU资源、定制化成本高
MLflow端到端的机器学习模型管理平台,中小规模模型开发,模型实验与对比轻量级与灵活性,模型管理闭环,生态兼容分布式训练支持有限,流水线自动化不足,生产级部署需额外工具
Kubeflow基于Kubernetes的云原生机器学习平台,大规模分布式训练,复杂工作流编排,生产环境高可用云原生与弹性,端到端自动化,企业级特性,生态整合学习曲线陡峭,资源消耗大,灵活性受限

1.1 技术选型

1)数据规模与类型

小数据(<1TB):Scikit-learn + Pandas

大数据(>1TB):Spark MLlib + HDFS/Delta Lake

结构化数据:XGBoost/LightGBM + Featuretools(特征工程)

非结构化数据:TensorFlow/PyTorch + Horovod(分布式训练)

2)模型复杂度

传统ML:Scikit-learn/XGBoost

深度学习:TensorFlow/PyTorch + Ray/Horovod

AutoML:H2O.ai/TPOT

3)成本与团队技能

Python生态优先:Dask/PyTorch

Java/Scala生态:Spark/Flink

云原生:AWS SageMaker/Google Vertex AI

4)实时性

批处理:Spark

微批处理:Spark Streaming

真流处理:Flink + Kafka

离线批处理:S3/HDFS → Spark ETL → Delta Lake(训练) → Spark MLlib/XGBoost → 模型服务(Flask/TF Serving)

实时流处理:Kafka(实时特征)→ Flink Streaming(特征计算) → Flink ML/TensorFlow Serving → 实时决策

模型更新:Airflow调度周期性重训练

2、数据可视化与报表

技术适用场景优势劣势
Tableau交互式商业分析、业务报表、仪表盘拖拽式操作、可视化效果好成本高、定制化能力有限
Power BI微软生态集成、企业内部数据分析与Excel/Azure无缝衔接复杂分析支持较弱
Superset开源可视化、初创公司、数据探索免费、支持多种数据库功能较基础
Metabase轻量级自助分析、中小团队、快速原型部署简单、支持SQL查询高级图表类型少
D3.js高度定制化可视化、复杂数据叙事、交互式图表灵活性极高开发成本高

(六)数据服务与应用(Application)

目标:将数据价值嵌入业务场景,推荐系统、风控模型、实时大屏、BI报表。

API服务:RESTful API、GraphQL(灵活查询)。

实时推荐:协同过滤、嵌入向量检索(FAISS)。

风险控制:规则引擎(Drools)、实时决策(Flink CEP)。

挑战:服务高可用、API版本管理、性能监控。

1、大数据监控

1.1 日志监控

技术适用场景优势劣势
ELK Stack (Elasticsearch + Logstash + Kibana)日志分析、全文检索、可视化探索Elasticsearch:分布式搜索引擎,支持近实时检索和聚合分析。Kibana:强大的可视化工具,支持自定义仪表盘。生态成熟,社区活跃。资源消耗高(尤其Elasticsearch的JVM和内存)。实时性有限,复杂查询可能影响性能。
Splunk企业级日志管理、安全信息与事件管理(SIEM)全功能一体化平台,开箱即用。强大的关联分析和机器学习告警。商业软件,成本高,扩展性依赖硬件资源。

参考方案:

EFK Stack:用Fluentd替代Logstash(轻量级、插件丰富)。

Loki + Grafana:轻量级日志聚合(基于标签索引,适合K8s环境)。

1.2 时序数据(指标监控)

技术适用场景优势劣势
Prometheus + Grafana云原生监控、K8s指标采集、告警多维数据模型(标签化指标),灵活查询(PromQL)。主动拉取模式(Pull-based),适合动态环境。集成Alertmanager实现告警管理。Grafana提供丰富可视化。长期存储需依赖TSDB(如Thanos、VictoriaMetrics)。不适合高基数指标(如大量唯一ID)
OpenTelemetry + Jaeger/Zipkin分布式追踪(Trace)、链路监控统一标准(OpenTelemetry合并OpenTracing和OpenCensus)。Jaeger/Zipkin提供可视化链路分析需配合指标监控(如Prometheus)形成完整可观测性

参考方案:

InfluxDB + Telegraf + Grafana:InfluxDB支持高吞吐写入,Telegraf轻量级采集。

TimescaleDB:PostgreSQL的时序扩展,适合需要SQL的场景。

1.3 监控告警系统

技术适用场景优势劣势
Alertmanager与Prometheus集成的告警管理支持分组、抑制、静默等高级路由策略。通知渠道丰富(邮件、Webhook、Slack等)依赖Prometheus生态
Zabbix传统IT基础设施监控(服务器、网络设备)agent-based采集,支持自动发现。内置告警和可视化扩展性有限,不适合大规模分布式系统

1.4 云服务监控

AWS CloudWatch

Azure Monitor

Google Cloud Operations Suite

2、技术选型

1)数据类型

日志监控: ELK Stack/EFK或Loki;或Splunk(如有预算)

指标监控: Prometheus+Grafana或InfluxDB方案

链路监控: OpenTelemetry + Jaeger。

混合监控(日志+指标): ELK + Prometheus组合 或 商业云服务

2)实时性要求

毫秒级:Flink或Kafka Streams。

秒级:Prometheus或Spark Streaming。

3)规模与成本

小规模:Prometheus + Grafana(开源免费)。

企业级:Splunk或Datadog(商业支持)。

4)云原生环境

优先选择K8s原生工具(如Prometheus Operator、Thanos);Prometheus+Grafana或对应云服务商方案。

3、架构示例

1)日志监控

Fluentd/Filebeat → Kafka → Logstash → Elasticsearch → Kibana

2)指标监控

Prometheus (Pushgateway/Node Exporter) → Alertmanager → Grafana

3)链路追踪

OpenTelemetry SDK → Jaeger Collector → Jaeger Query + UI

二、大数据架构分类

(一)Lambda分层架构(批流一体过渡方案)

1、层级划分

1)批处理层(Batch Layer)

使用HDFS 、Hive、 Spark处理历史数据,生成批视图。  

2)速度层(Speed Layer)

使用Flink/Kafka处理实时数据,生成流视图。  

3)服务层(Serving Layer)

合并批流结果(如通过Druid或Redis、HBase/Cassandra),供应用查询。

优势:兼顾准确性与实时性。

缺陷:代码重复、维护复杂。

2、架构示例

案例一:用户转化漏斗分析

用户转化漏斗分析-1.jpg

用户转化漏斗分析-2.jpg

案例二:电商实时用户行为分析

电商实时用户行为分析-1.jpg

电商实时用户行为分析-2.jpg

(二)Kappa架构(纯流式处理)

仅依赖流处理(如Flink),通过重放日志(Kafka)替代批处理。  

数据湖仓一体化(Lakehouse):  

结合数据湖的灵活性和数据仓库的管理能力(如Databricks的Delta Lake)。

优势:简化架构、避免数据同步问题。

挑战:历史数据回溯需依赖消息队列的持久化存储。

案例一:电商实时推荐系统

电商实时推荐系统.jpg

案例二:金融风控实时反欺诈

金融风控实时反欺诈.jpg

(三)云原生+开源

采集:Kafka + Debezium(CDC变更数据捕获)。

存储:S3/GCS/OSS(对象存储)+ Iceberg/Hudi(数据湖表格式)。

计算:Serverless计算(AWS Lambda)、弹性Spark/Flink集群(EMR/Dataproc)、Trino交互查询。

治理:Amundsen(元数据) + Great Expectations(质量)。

编排:Kubernetes(Spark on K8s)、Airflow(工作流调度)。

服务:GraphQL API + Prometheus(监控)。

优势:弹性扩展、成本优化、生态开放。

云原生大数据架构.jpg

案例1:实时风控系统

数据流:

用户行为日志 → Kafka → Flink(实时规则引擎) → Redis(风险名单) → 微服务拦截。

技术栈:

Kafka + Flink + Redis + Prometheus(监控QPS/延迟)。

案例2:用户画像分析

数据流:

多源数据(MySQL/Hive)→ Spark(ETL)→ Iceberg(数据湖)→ Presto(交互查询)→ Superset(可视化)。

技术栈:

Debezium + Spark + Iceberg + Presto + Superset。

案例3:AI模型训练与部署

数据流:

训练数据(MinIO)→ Spark(特征工程)→ Kubeflow(分布式训练)→ MLflow(模型管理)→ Triton(推理服务)。

技术栈:

MinIO + Spark + Kubeflow + MLflow + Triton。

三、不同场景组合

1、传统大数据平台

采集:Flume/Sqoop + Kafka

存储:HDFS/HBase

计算:Spark/Flink

2、离线数仓(T+1报表)

方案:Hive(存储) + Spark(ETL) + Presto(交互查询)。

3、实时数仓(秒级响应)

方案:Kafka(数据源) + Flink(实时计算) + Doris/ClickHouse(存储分析)。

理由:Doris支持高并发点查,ClickHouse擅长复杂聚合。

4、实时分析平台

采集:Kafka Connect + Debezium

处理:Kafka Streams/Flink

存储:ClickHouse/Druid

5、实时推荐系统

采集:Kafka

流处理:Flink(状态管理+CEP)

存储:Redis(实时特征) + HBase(用户画像)

查询:Presto(交互式分析)

6、云原生数据湖

采集:Kinesis/Firehose (AWS) 或 EventHub (Azure)

存储:S3/ADLS + Delta Lake/Iceberg

计算:EMR/Databricks

7、电商交易系统

订单存储:MongoDB/MySQL分库分表

商品缓存:Redis

用户推荐:图数据库

数据分析:数据仓库+BI工具

8、电商实时用户行为分析

采集:Flume(日志) + Flink CDC(MySQL订单数据) → Kafka

处理:Flink/Spark Streaming实时计算 + ClickHouse/Druid(OLAP)存储。

服务:Redis(热数据缓存)

9、用户行为分析

组合1:ClickHouse(事件数据) + Elasticsearch(全文检索) + Superset(可视化)。

组合2:S3 + Spark + Presto + Superset。

组合3:

数据采集:Flume/Logstash

存储:HDFS(原始日志) + Druid(时序聚合)

查询:ClickHouse(高并发点查)

10、实时风控系统

Kafka + Flink + Cassandra + Redis

11、金融风控

采集:Canal(MySQL交易数据)

流处理:Flink(精确一次语义)

规则引擎:Drools

存储:Kafka(实时事件) + HBase(风控规则)

12、金融交易系统

方案:TiDB(核心交易) + Cassandra(日志存储) + Flink(实时风控)。

理由:TiDB强一致性,Cassandra高可用写入。

13、金融反欺诈(实时关联分析)

存储:Nebula Graph(万亿级关系图)

查询:Cypher或Gremlin(多跳路径查询)

批处理:Spark GraphX(定期风险模型计算)

14、海量日志分析

存储:HDFS + Parquet/ORC

计算:Spark/Hive

检索:Elasticsearch(如需全文检索)

15、AI推荐引擎

HDFS + Spark MLlib + TensorFlow + Kubernetes。

16、社交网络推荐(大规模图计算)

迭代计算:Plato(异步PageRank)或Gemini(随机游走)

实时推荐:JanusGraph + Elasticsearch(近似最近邻搜索)

图嵌入:PyG(PyTorch Geometric)集成Spark

17、生物信息学(蛋白质折叠预测)

图神经网络:Gunrock(GPU加速分子图遍历) + DGL(深度学习)

分布式训练:Horovod + Spark(多节点同步)