什么是数据实时处理?
• 数据从生成->实时采集->实时缓存存储->实时计算->实时落地->实时展示->实时分析。这一个流程线下来,处理数据的速度在秒级甚至毫秒级。
• 某电子商务网站双十一大屏,火车站车辆实时信息显示,股票交易大厅信息展示。
实时数据处理意义
• 通过大数据处理获取数据的价值,但是数据的价值是恒定不变的吗?显然不是,一些数据在业务发生后不久就有了很高的价值,而且这种价值会随着时间的推移而迅速减少,所以数据的处理速度变得尤为重要,实时处理的关键意义在于能够更快地提供数据洞察。
实时处理解决方案与其它解决方案的关系
实时布控场景
业务场景
GZ省公安厅警务实时布控系统服务于公安案件侦破业务。
• 数据实时采集:通过警务数据共享交换平台与边界平台,实时获取出行/住宿/通讯/视频数据。
• 数据实时分析:基于规则模型对布控人员信息进行实时监控与分析。
• 情报实时预警:布控规则触发后实时预警,通知办案人员进行抓捕。
典型特点
• 数据格式多:数据库/数据文件/视频图片。
• 数据量大:每天22.5TB/每秒35MB。
• 数据震荡流入:数据流在短时内突发增长。
• 作业调度复杂:实时采集/小批量采集。
• 时间要求高:5秒内完成计算。
• 资源占用多:容易产生资源抢占。
信用卡反欺诈场景
业务场景
Z行信用卡反欺诈系统建立在“渠道-反欺诈引擎-主机”的实现框架上:
• 交易渠道:客户刷卡后,从银联、VISA、万事达等卡组织向银行发送实时交易。
• 欺诈识别:
• 对卡组织交易数据进行清洗补齐,并提取风险特征。
• 将风险特征载入神经网络和业务规则,对交易进行欺诈判断。
• 对可疑交易实施拦截,并发送验证码核实。
• 主机:
• 对正常交易执行账务处理,对异常交易登记拦截原因,对欺诈卡片实施冻结处理。
典型特点
• 大:需处理的数据量较大,并发度较高。
• 快:毫秒级欺诈识别。
• 稳:7*24小时服务。
o 多租户支持:服务于不同的业务条线。
• 丰富的模型支持。
• 规则
• 异常值模型(无监督学习:聚类)
• 关联模型(有监督学习:LR、分类等)
• 神经网络模型
实时数据处理系统的诉求
• 处理速度快:端到端处理需要达到秒级。如风控项目要求单条数据处理时间达到秒级,单节点TPS大于2000。
• 吞吐量高:需在短时内接收并处理大量数据记录,吞吐量需要达到数十兆/秒/节点。
• 可靠性高:网络、软件等故障发生时,需保证每条数据不丢失,数据处理不遗漏、不重复。
• 水平扩展:当系统处理能力出现瓶颈后,可通过节点的水平扩展提升处理性能。
• 多数据源支持:支持网络流、文件、数据库表、IOT等格式的数据源。对于文件数据源,可以处理增量数据的加载。
• 数据权限和资源隔离:消息处理、流处理需要有数据权限控制,不同的作业、用户可以访问、处理不同的消息和数据。多种流处理应用之间要进行资源控制和隔离,防止发生资源争抢。
• 第三方工具对接:支持与第三方规则引擎、决策系统、实时推荐系统等对接。
华为实时流处理技术架构
• 数据源:主要包含业务数据库以及Socket数据流和实时文件等。
• 实时数据采集:用于实时采集数据源产生的数据,并将其写入分布式消息系统,采集的数据格式包括文件、数据库、网络数据流等。
• Flume:Hadoop自带的采集工具,支持多种格式的数据源,包括日志文件、网络数据流等。
• 第三方采集工具:第三方的专用实时数据采集工具,包括GoldenGate(数据库实时采集)、自开发采集程序(定制化采集工具)等。
• 消息中间件:消息中间件可对实时数据进行缓存,支持高吞吐量的消息订阅和发布。
• Kafka:分布式消息系统,支持消息的生产和发布,以及多种形式的消息缓存,满足高效可靠的消息生产和消费。
• 分布式流计算引擎:对实时数据进行快速分析。
• Structured Streaming:基于Spark的流处理引擎,支持秒以内的流处理分析。
• Flink:新一代流处理引擎,支持毫秒级的流处理分析。
• 流计算引擎,优先推荐Flink
• 数据缓存(可选):将流处理分析的结果进行缓存,满足流处理应用的访问需求。
• Redis:提供高速key/value存储查询能力,用于流处理结果数据的高速缓存。