1. 课程导论:批流一体概念、图谱API的价值、课程目标与前置知识

1.1 批流一体:从Lambda到Kappa的演进

传统大数据架构长期面临“批处理”与“流处理”两套系统并行的困境。批处理(如Hive、Spark Batch)擅长高吞吐、全量计算,但延迟高;流处理(如Storm、Flink Streaming)擅长低延迟、增量计算,但状态管理和精确一次语义复杂。这种“双轨制”即Lambda架构,其核心痛点在于:

  • 维护两套代码:批与流逻辑需分别实现,业务迭代成本翻倍。
  • 数据口径不一致:批与流计算结果常出现偏差,排查困难。
  • 资源利用率低:两套集群独立部署,硬件与运维成本高。

批流一体(Batch-Streaming Unification)旨在用一套引擎、一套API、一套存储,同时覆盖离线批处理与实时流处理场景。Apache Flink 是当前最成熟的批流一体计算引擎,其核心思想是“流就是批,批就是有界流”。

关键认知: 批流一体不是简单的技术选型,而是数据架构从“双轨制”向“单引擎”的范式迁移。本课程所有API设计与发布均基于Flink的批流一体能力。

1.2 图谱API的价值:从数据到知识的桥梁

知识图谱(Knowledge Graph)以图结构组织实体与关系,但传统图谱构建流程(离线ETL → 图数据库导入 → 查询)存在明显短板:

维度 传统离线图谱 批流一体图谱API
数据时效 T+1 或小时级 秒级~分钟级
构建方式 全量重跑 增量流式 + 定期全量校准
API形态 RESTful 查询接口 实时写入 + 近实时查询 + 事件推送
适用场景 静态知识库、百科 实时风控、动态推荐、知识推理

本课程定义的图谱API,并非简单的图数据库CRUD接口,而是一套面向批流一体架构的图谱服务层,具备以下核心价值:

  • 实时实体链接:流式数据到达后,毫秒级完成实体抽取与图谱关联。
  • 增量关系更新:仅处理变更数据,避免全量重建带来的资源浪费。
  • 统一查询语义:批处理与流处理共享同一套图查询逻辑,结果一致。
  • 可观测性:API调用链、数据延迟、图谱质量指标均可实时监控。
批流一体图谱API架构总览 批流一体图谱API架构总览 数据源层 Kafka 实时流 | HDFS 离线文件 | MySQL Binlog | 日志采集器 批流一体计算引擎层 Flink SQL / DataStream API / Table API | 统一批流语义 图谱API服务层 实时实体链接 | 增量关系更新 | 统一图查询 | 事件推送 图存储(Neo4j / JanusGraph)| 查询接口(REST / WebSocket)

1.3 课程目标:你将掌握什么

本课程共30章,从理论到实战,覆盖批流一体图谱API的完整生命周期。完成学习后,你将具备以下能力:

  1. 架构设计能力:独立设计基于Flink的批流一体图谱数据管道。
  2. API开发能力:使用Flink SQL + DataStream API 开发实时图谱写入与查询接口。
  3. 发布与运维能力:掌握API版本管理、灰度发布、监控告警与质量保障。
  4. 实战落地能力:完成一个完整的实时风控图谱API项目(含代码与部署)。
课程特色: 每章均配有可运行的代码示例与API测试用例,代码仓库随课程同步更新。建议在学习过程中动手实践,而非仅阅读文档。

1.4 前置知识:你需要具备的基础

为确保学习效果,建议你具备以下知识储备:

领域 具体要求 推荐学习资源
Java / Scala 熟悉基础语法、集合、多线程;能阅读Flink源码片段 《Java核心技术》或官方Tutorial
SQL 掌握JOIN、窗口函数、聚合查询 LeetCode SQL题库 或 W3School
Flink基础 了解DataStream、Table API、Checkpoint、状态后端 Flink官方文档“概念”章节
图数据库 了解图模型(节点/边/属性)、Cypher或Gremlin基础 Neo4j官方入门教程
API设计 熟悉RESTful规范、JSON序列化、Swagger/OpenAPI REST API设计规范(Microsoft或Google版)
注意: 如果你对Flink完全陌生,建议先花2-3天完成Flink官方“快速入门”实验。本课程不会从零讲解Flink基础API,而是聚焦于图谱场景的工程化实践。

1.5 课程知识图谱:章节脉络一览

下图展示了本课程30章的知识结构,帮助你建立全局视角:

课程知识图谱结构 课程知识图谱结构(30章) 模块一:基础与架构 第1-5章 模块二:数据管道 第6-12章 模块三:API开发 第13-20章 模块四:发布与运维 第21-26章 模块五:实战项目 第27-30章 课程设计原则 • 每章均包含:概念讲解 + 代码示例 + API测试 + 常见避坑 • 代码仓库随章节同步更新,支持本地IDE与在线环境 • 实战项目为完整实时风控图谱系统,可直接用于简历

1.6 学习建议与工具准备

在正式开始第2章之前,请确保完成以下环境配置:

  • JDK 11+:推荐使用 Amazon Corretto 11 或 OpenJDK 11。
  • Apache Flink 1.17+:本地Standalone模式即可,无需YARN/K8s。
  • Neo4j 5.x:社区版即可,用于图谱存储与查询验证。
  • Postman 或 curl:用于API接口测试。
  • Git:克隆课程代码仓库,便于同步更新。
推荐工作流: 阅读本章 → 查看对应代码 → 本地运行测试 → 修改参数观察效果 → 记录笔记与问题。遇到问题优先在课程讨论区搜索,或查看代码注释中的FAQ。