Skip to content

jason-gao/streamlake

Repository files navigation

实时数据湖仓一体架构 Demo

架构概述

本Demo基于云原生理念,使用TypeScript/Node.js技术栈,模拟实时数据湖仓一体架构的核心思想:

数据源 → 数据摄取 → 实时处理 → 分层存储 → 统一查询 → 数据治理

核心组件映射

概念组件 技术栈实现 说明
Apache Kafka Redis Streams 消息队列,实现数据流
Apache Flink Node.js Stream Processing 实时数据处理引擎
Apache Hudi/Iceberg PostgreSQL分层表 数据湖存储层
ClickHouse/Doris PostgreSQL + 索引优化 分析查询引擎
Airflow Node-cron 任务调度
Atlas/DataHub 元数据API 数据治理
Kubernetes Docker Compose 容器化部署

项目结构

src/
├── config/           # 配置管理
├── services/         # 核心服务
│   ├── ingestion/   # 数据摄取服务(模拟Kafka)
│   ├── processing/  # 实时处理服务(模拟Flink)
│   ├── storage/     # 存储服务(数据湖)
│   └── query/       # 查询服务(分析引擎)
├── controllers/      # API控制器
├── models/          # 数据模型
├── middleware/      # 中间件
└── utils/           # 工具函数

infrastructure/       # 基础设施
├── docker/          # Docker配置
├── postgres/        # 数据库脚本
├── elk/            # ELK配置
└── ci-cd/          # CI/CD配置

数据流架构

  1. 数据摄取层: 模拟实时数据源,通过Redis Streams实现消息队列
  2. 实时处理层: 使用Node.js Stream处理,实现窗口计算、聚合等
  3. 存储层: PostgreSQL实现分层存储(Bronze/Silver/Gold)
  4. 查询层: RESTful API提供统一数据访问接口
  5. 治理层: 元数据管理、血缘追踪、质量监控

部署架构

  • 容器化: Docker + Docker Compose
  • 监控: ELK Stack (Elasticsearch + Logstash + Kibana)
  • CI/CD: GitHub Actions
  • 数据库: PostgreSQL
  • 缓存: Redis

快速开始

1. 环境要求

  • Docker & Docker Compose
  • Node.js 18+ (本地开发)
  • Git

2. 启动Demo

# 克隆项目
git clone <repository-url>
cd dataapi

# 启动所有服务
./start.sh

3. 访问服务

4. 测试API

查看 API_EXAMPLES.md 了解详细的API使用示例。

技术特色

🔄 实时数据流

  • Redis Streams模拟Kafka的消息队列功能
  • Node.js Stream Processing实现窗口计算和实时聚合
  • 支持多消费者组和负载均衡

🏗️ 分层存储架构

  • Bronze层: 原始数据存储,保持数据完整性
  • Silver层: 清洗和丰富的数据,提供业务价值
  • Gold层: 聚合指标和业务KPI,支持快速查询

📊 统一查询接口

  • RESTful API提供统一数据访问
  • 支持实时查询和历史数据分析
  • 内置数据质量监控和血缘追踪

🔍 数据治理

  • 元数据管理和血缘追踪
  • 数据质量自动监控
  • 多维度数据分析和报告

📈 可观测性

  • ELK Stack提供全栈日志监控
  • 实时性能指标和健康检查
  • 分布式链路追踪

开发指南

本地开发

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 构建项目
npm run build

# 运行测试
npm test

Docker开发

# 构建镜像
docker build -t data-lakehouse-demo .

# 运行容器
docker run -p 3000:3000 data-lakehouse-demo

监控和运维

日志查看

# 应用日志
docker-compose logs -f dataapi

# 所有服务日志
docker-compose logs -f

# 特定服务日志
docker-compose logs -f postgres redis elasticsearch

服务管理

# 停止服务
docker-compose down

# 重启服务
docker-compose restart

# 清理数据
docker-compose down -v

健康检查

# API健康检查
curl http://localhost:3000/api/v1/health

# 服务状态
docker-compose ps

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published