大数据开发通常围绕数据的“采集 → 存储 → 处理 → 分析 → 展示”几个阶段来展开。下面是一个典型的大数据开发基本流程(适用于离线或实时场景):
一、数据采集(Data Ingestion)
目标:从各种来源采集原始数据
来源 | 技术或工具 |
---|
日志 / 文件 | Flume、Logstash、Filebeat、Python 脚本、FTP |
数据库 | Sqoop(批量)、Debezium(实时)、自定义 Python 脚本 |
消息队列 | Kafka、Pulsar、RabbitMQ、MQTT |
API 抓取 | Python requests、Airflow 调度、爬虫 |
IoT/实时数据 | Kafka、Flume、NiFi、Socket、MQTT |
二、数据存储(Data Storage)
目标:将采集到的数据合理地存储,支持后续处理
类型 | 工具/技术 | 适合场景 |
---|
分布式文件系统 | HDFS、S3、OSS | 原始日志、大文件、批处理 |
列式存储 | HBase、Kudu | 高并发写入、大宽表 |
数据仓库 | Hive、ClickHouse、Presto、Doris | 分析型查询 |
数据湖 | Apache Iceberg、Delta Lake | 数据版本管理、湖仓一体 |
关系型数据库 | MySQL、PostgreSQL | 元数据管理、小规模数据存储 |
三、数据处理(Data Processing)
目标:清洗、转换、聚合原始数据,形成有用数据
类型 | 技术 | 描述 |
---|
批处理 | PySpark、Hive、Flink Batch、Dask | 对历史数据的周期性处理 |
流处理 | Kafka Streams、Flink、Spark Streaming、Faust | 实时数据处理,低延迟 |
ETL | Airflow、NiFi、Luigi、Python 脚本 | 自动化数据清洗和转换流程 |
数据质量校验 | Great Expectations、custom Python code | 确保数据准确一致 |
四、数据分析与挖掘(Analytics & ML)
目标:统计分析、机器学习、预测建模等
类型 | 技术 |
---|
数据分析 | Pandas、Spark SQL、Presto |
数据可视化 | Superset、Tableau、PowerBI、Matplotlib、Plotly |
机器学习 | Spark MLlib、Scikit-learn、XGBoost、TensorFlow、PyTorch |
大数据推荐/画像 | Embedding + Recall + Ranking,GraphX |
五、数据服务与展示(Data Serving & Visualization)
目标:将数据结果以服务/页面/API 等形式展现
类型 | 技术 | 说明 |
---|
可视化平台 | Superset、Grafana、Tableau | 展示图表、监控面板 |
REST API | FastAPI、Flask、Django | 提供数据查询接口 |
BI 报表 | FineBI、DataFocus、SmartBI | 面向业务人员 |
Web Dashboard | Vue、React + ECharts | 自研展示前端 |
六、调度与运维(Orchestration & DevOps)
目标:管理整个大数据流程的自动化与稳定性
功能 | 工具 |
---|
工作流调度 | Airflow、Azkaban、DolphinScheduler |
集群资源管理 | YARN、K8s、Mesos |
日志监控 | ELK、Prometheus + Grafana |
任务容错 | Retry、告警、Checkpoints(如 Flink) |