
1) 【一句话结论】采用分布式实时流处理(如Flink/Kafka)构建毫秒级响应的数据采集处理链路,结合数据湖(如HDFS/S3)存储,通过加密(如AES/KMS)和细粒度访问控制(如IAM)保障合规,并设计弹性扩展架构应对数据量增长。
2) 【原理/概念讲解】老师口吻,解释核心概念:
3) 【对比与适用场景】
| 架构类型 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 实时流处理(如Flink) | 处理持续数据流,毫秒级延迟 | 低延迟、实时计算、状态管理 | 实时监控、异常检测、状态更新 | 需高可用集群,状态管理复杂 |
| 批处理(如Spark) | 处理批量数据,分钟级延迟 | 高吞吐、复杂计算、离线分析 | 数据仓库、报表生成、历史分析 | 不适合实时需求 |
| 分布式存储(如HDFS/S3) | 分布式文件系统,高容量 | 弹性扩展、持久化存储 | 数据湖、大数据分析 | 写延迟较高,适合批量 |
| 关系型数据库 | 结构化数据存储 | ACID事务、事务支持 | 业务逻辑、事务处理 | 写延迟高,不适合实时 |
4) 【示例】(伪代码+请求示例)
from kafka import KafkaProducer
import json
producer = KafkaProducer(bootstrap_servers='kafka:9092',
value_serializer=lambda v: json.dumps(v).encode('utf-8'))
for sensor_data in sensor_stream:
producer.send('semiconductor_stream', value=sensor_data)
from pyflink.datastream import StreamExecutionEnvironment
env = StreamExecutionEnvironment.get_execution_environment()
env.set_parallelism(8)
data_stream = env.add_source(...) # 从Kafka读取
processed_stream = data_stream.map(lambda x: process_sensor_data(x)) # 实时处理
processed_stream.write_stream(...) # 写入S3(加密用KMS)
import boto3
s3_client = boto3.client('s3')
s3_client.put_object(Bucket='semiconductor-data',
Key='raw/2023-10-27/temperature.log',
Body=raw_data,
ServerSideEncryption='AES256')
5) 【面试口播版答案】
面试官您好,针对超10TB的制程数据,我设计的方案是采用分布式实时流处理架构,确保毫秒级响应。首先,数据采集层通过工业协议接入传感器,统一接入到Kafka消息队列,保证数据可靠传输。然后,实时处理层用Flink对数据进行实时计算(如温度异常检测、设备状态更新),通过状态管理和低延迟算子实现毫秒级响应。数据存储采用数据湖(如HDFS或S3),存储原始和计算后的数据,支持后续批处理分析。为保障合规,传输中用TLS加密,存储用AES-256加密(密钥管理用KMS),访问控制采用基于角色的访问控制(RBAC),结合审计日志记录操作。同时,架构支持弹性扩展(如增加Flink任务实例或S3存储容量),应对数据量增长。这样既能满足毫秒级响应,又能保障数据安全和合规。
6) 【追问清单】
7) 【常见坑/雷区】