实时计算Flink —— 独享模式 —— Data Lake典型场景
数据湖
Data Lake并不是一个新的概念,早在2011年就被提出,作为数仓的补充。数据湖是一个中心化的存储,能够存储任意规模的结构化与半结构化数据。数据湖中的数据,不必经过结构化过程,即可进行各种类型的分析。如可视化,大数据处理,实时数据分析和机器学习。
数据湖与数仓区别
与数仓相比,数据湖中数据有以下几个特点。
数据存储多样化
- RDBMS:RDS/ADS…
- 数仓:Hive/ODPS…
- Queue:SLS/MQ/Kafka…
- 文件存储:OSS/HDFS…
数据格式多样化
- RDBMS中结构化数据
- JSON/XML/CSV等半结构化数据
- 图像/音频/视频等非结构化数据
数据计算多样化
- 数据Schema不固定
- 异构数据源计算,无需将数据导入统一存储。
- 支持SQL进行大数据分析,同时也可直接对数据进行全文检索/机器学习等。
在数据湖场景中,实时计算有其独特优势,可完美解决数据湖场景下,结构化和半结构化数据的异构数据源计算和ETL等问题。下面以IoT场景举例说明数据湖的优势。
具体场景
典型工业化IoT场景,传感器采集厂房中各地点的温度,湿度,压力等信息,并上传到云端做环境监控及数据分析。整体业务架构如下。
场景数据流
IoT场景中,整个系统数据分为几类:
- IoT Device的运行日志,以文件的形式存储在OSS中。
- IoT Device采集的数据,上传到SLS,MQ,Kafka等各种数据通道类系统。
- MySQL,HBase,Redis等RDBMS,NoSQL中保存的重点监控区域设备白名单。
场景业务逻辑
根据以上三种数据类型,整个数据链路可分为两部分。
- 实时链路
- 实时BI
- 链路:IoT Device -> SLS/MQ/Kafka… -> SC
- 相关业务指标:
- 实时查看在线设备状态,设备个数。
- 实时查看工厂各区域温度/湿度/压力等报警情况。
- 重要设备的在线情况查看(流式维表Join)。
- 工厂重要区域指标查看(流式维表Join)。
- 实时监控(CEP)
- 链路:IoT Device -> SLS/MQ/Kafka… -> SC
- 相关业务指标:
- 设备状态异常报警。
- 厂区各监控指标(温度/湿度/压力)等报警。
- 实时BI
- 离线链路
- DataLake ETL
- 链路:IoT Device -> SLS/MQ/Kafka… -> SC -> Hive/ODPS
- 链路作用:
- 将IoT采集到的数据经过清洗,上传到数仓中做持久存储及分析。
- DalaLake分析
- 链路1:IoT Device -> OSS -> SC。链路作用:直接分析IoT日志,获取小时/天级别设备运行状态报表。 IoT设备日志量大,如果将所有数据导入数仓,会大大增加存储成本,通过数据湖分析功能可直接通过SQL查询OSS上日志文件。
- 链路2:IoT Device -> OSS -> SC (OSS JOIN HBase)。链路作用:将OSS上设备运行状态日志与Hbase/MySQL中数据关联并聚合,计算出关键设备某段时间的运行状态。
- DataLake ETL
场景下流计算优势
- 功能丰富
- 实时计算,数据湖场景下ETL,分析,监控等功能集为一体。
- 20+种connector,无缝对接各种类数据源。
- 异构数据源可计算。可使用标准SQL,对异构数据源直接计算。
- 节省成本
- 开发成本:实时/离线各种场景中,SQL+UDF即可解决所有问题。一套SQL,实时/离线无缝切换。
- 运维成本:全托管模式,保证高SLA情况下,减轻您的运维负担。
- 存储成本:直接分析OSS,RDBMS,NoSQL,Queue,Hive…中结构化,半结构化数据,与传统数仓中,数据集中后才能分析的模式相比,对于低频查询类场景,可以节省存储成本。
- 计算成本:一个产品,支持多种计算能力,降低您的计算成本。
本文转自实时计算——Data Lake典型场景