云端的实时数据的流式处理...aws 中国(宁夏)区域由西云数据运营 aws...
TRANSCRIPT
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
吴鹏程, AWS 资深解决方案架构师
云端的实时数据的流式处理基于AWS 的托管流式处理服务介绍
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
议程
• 实时流式数据处理概览
• 实时流式处理的典型流程与 AWS 服务
• 数据源
• 获取流数据
• 流式存储
• 流式处理
• 目标
• 实时流式分析的典型架构
• Demo演示
• 总结
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
流式数据的特征
低延时持续的 有序的增量高吞吐
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
为什么需要数据实时分析
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
实时获取
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
以高速生成实时数据的设备和/或应用程序
移动应用 Web 点击流 应用日志
实时指标 IoT 传感器 智能建筑
[Wed Oct 11 14:32:52
2018] [error] [client
127.0.0.1] client
denied by server
configuration:
/export/home/live/ap/h
tdocs/test
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
实时获取
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
来自数万个数据源的数据可以写入单个流
AWS IoT
Amazon CloudWatch
Logs
Amazon CloudWatch
Events
AWS SDKLOG4J
Flume
FluentdAWS Mobile
SDK
Kinesis
Producer
Library
Kinesis Agent
* Amazon DMS 的数据源包括 8 种 数据库, 1 种Azure 数据库, 5 种RDS/Aurora
数据库以及 S3
AWS 工具集/开发库 AWS 服务集成 第三方组件
Amazon Database
Migration Service*
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
实时获取
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
数据按照接收的顺序存储一段时间,并且可以在此期间无限期重播。
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Amazon Kinesis Data Streams 概览
• 易于管理,成本低
• 实时,弹性扩展
• 安全,持久的存储
• 可用于多个实时分析
应用程序
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
从各种来源获取数据
Amazon Kinesis Data
Streams
事务
ERP
Web 日志/cookies
连接设备
AWS SDKs• 在程序代码中直接通过 API 推送
• AWS Mobile SDK
• AWS 服务: Amazon CloudWatch 日志, AWS IoT, Amazon Kinesis Data
Analytics 等
Kinesis Agent• 监控日志文件并转发到 Amazon Kinesis Data Streams
Kinesis Producer Library (KPL)
• 后台进程聚合和批处理消息
第三方和开源工具• Log4j appender
• Apache Kafka
• Flume, fluentd 等
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
对接各种消费者来处理数据
极具成本效益:一百万个 PUT Payload Units 仅花费0.014美元
数以百万计的资源每小时产生
100+TB 数据
Amazon Web Services
FrontEnd
AZ AZ AZ认证授权
数据跨三个可用区持久、一致的存储副本
有序的事件流支持多个消费者
在 Amazon EC2上使用Amazon Kinesis
Client Library
Amazon
Kinesis Data
Firehose
Amazon
Kinesis Data
Analytics
AWS
Lambda
注:上述价格是按美国东部(弗吉尼亚北部)区域计算。
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Amazon Managed Streaming for Kafka概览
• 与Apache Kafka v1.1.1和v2.1.0完全兼容
• 在AWS管理控制台或者通过AWS API/CLI创建
• 群集自动启动和配置
• 提供Apache Kafka brokers和存储
• 按需创建和删除集群
• 与AWS服务深度集成
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
MSK——托管的 Kafka
ProducerBroker
Broker
Broker
Data Consumer
Cluster
Zookeeper
Producer
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
兼容性
MSK 集群能够兼容:
• 支持Apache Kafka分区重新分配工具
• Apache Kafka API
• Apache Kafka管理客户端
• 第三方工具
MSK 集群不能兼容:
• 需要上传.jar文件的工具(Confluent Control Center,Confluent Auto Data Balancer,Uber uReplicator和LinkedIn Cruise Control)
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
在GitHub下载Kafka-Kinesis Connector Library
将 Kafka 和 Kinesis 结合使用
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Amazon Kinesis Data Video Streams 概览
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Amazon Kinesis Data Video Streams 场景
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
实时获取
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
记录按照生成的顺序读取,从而实现实时分析或流式ETL
Amazon EMR
AWS Lambda
Kinesis
Kinesis Client Library
+
Connector Library
AWS 服务
Apache Spark
第三方
SQL
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Amazon Kinesis Data Analytics 概览
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
KDA for SQL 针对简单和快速上手
• 亚秒级端到端处理延迟
• SQL步骤可以串行或并行步骤链接在一起
• 使用一个或数百个查询构建应用程序
• 预构建的函数包括从sum和count到机器学习算法的所有内容
• 聚合使用窗口运算符连续运行
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
KDA for Java 针对复杂应用场景
利用Apache Flink,一个框架和分布式引擎,用于状态处理数据流
简化编程 高性能 状态保护(快照) 强数据完整性
易于使用和灵活的API使构建应用程序
快速
内存计算提供低延迟和高吞吐量
持久的应用程序状态保存
只执行一次
状态一致性
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
如何构建实时应用?
流运算符应用于管道中的数据流
Source
Sink
DataStream
KeyedDataStream
DataStream
Sink
keyBy,
window
filter
apply
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
SQL 流数据实时分析
• 提供模板和交互式编辑器,以及时
间窗口聚合、过滤器等丰富的 SQL
查询
• 只需根据实际需求,选择适合的分
析任务的模板,然后使用 SQL 编辑
器编写数据自定义的分析代码
CREATE OR REPLACE PUMP calls_per_ip_pump
AS
INSERT INTO calls_per_ip_stream
SELECT STREAM source_ip_address,
COUNT(*)
FROM source_sql_stream_001
WINDOWED BY STAGGER(
PARTITION BY source_ip_address
RANGE INTERVAL '1' MINUTE);
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
AWS Lambda function
raw data
Amazon Kinesis Data Analytics application
transformed
data
SQL
codesource destination
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
编写流式SQL
Streams (in memory tables)
CREATE STREAM calls_per_ip_stream(
eventTimeStamp TIMESTAMP,
computationType VARCHAR(256),
category VARCHAR(1024),
subCategory VARCHAR(1024),
unit VARCHAR(256),
unitValue BIGINT
);
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
编写流式SQL
Pumps (持续查询)
CREATE OR REPLACE PUMP calls_per_ip_pump AS
INSERT INTO calls_per_ip_stream
SELECT STREAM "eventTimestamp",
COUNT(*),
"sourceIPAddress"
FROM source_sql_stream_001 ctrail
GROUP BY "sourceIPAddress",
STEP(ctrail.ROWTIME BY INTERVAL '1' MINUTE),
STEP(ctrail."eventTimestamp" BY INTERVAL '1' MINUTE);
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
聚合流式数据?
• 对颗粒化的实时数据进行聚合(计数,总和,最小......),并将其转化为见解
• 数据会持续处理,因此您需要在需要结果时告诉应用程序
Windows!
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Window Types
• 滑动, Tumbling和自定义窗口
• Tumbling窗口是固定大小的, grouped keys不重叠
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Amazon Kinesis Data Analytics for Java
• 包含基于 Apache Flink 的开源
库,能够在数小时而不是数天或
者数周内构建应用程序
• 使用操作习惯的 IDE,然后连接
到 AWS 并安装 Java 库
• 包括超过25个内置运算符的可扩
展库,用于过滤、聚合和转换流
数据,以及与多种AWS 服务的
集成
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Amazon Kinesis Data Analytics for Java
上传应用程序代码到Amazon Kinesis Data
Analytics
在可扩展的托管服务中运行应用程序
使用熟悉的 IDE 环境构建 Java 程序
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Amazon Kinesis Data Analytics for Java 可视化
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
JAD for Java应用扩展–资源和并行度
资源
• 用于运行代码的Kinesis Process Unit
(KPUs)
• 每个KPU 是 1 vCPU 和 4 GB memory
• 每个 KPU 带50 GB 存储
• 可以自动扩展,或者指定 KPU
并行度Parallelism
• 任务的实例数
• 默认值为1,默认最大值为64,可以人为指定,也可以自动扩展
• Maximum定义应用程序的最大可能并行度
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Kinesis Data Analytics for Java支持超过25 operators
… 以及其他.
示例 Operators 典型使用场景
Map, FlatMap, Filter, Iterative 基本的转变
Key By, Split, Shuffle, Custom
Partition
更改流的逻辑或物理结构
Window, Reduce, Fold, Sum,
Min, Max分析和聚合
Join, Union, coGroup, 组合多个数据流
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Kinesis Data Analytics for Java与AWS服务的可扩展集成
• 轻松地将源和接收器添加到应用程序
• 为其他数据源和接收器构建自定义连接器
示例源
示例目标 (Sinks)
Apache Kafka
Apache Kafka RabbitMQ
RabbitMQ ElasticSearchApache
Cassandra
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
自动备份你的应用
创建应用程序并将其还原到以前的时间点(snapshots)
默认情况下会自动备份运行的应用程序状态(checkpoints)
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
实时获取
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Amazon Kinesis Data Firehose 概览
• 零管理和无缝弹性• 直接数据存储集成• 无服务器连续数据转换• 近实时
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Amazon Kinesis Data Firehose 基本原理
获取 转换 交付
Amazon S3
Amazon Redshift
Amazon Elasticsearch Service
AWS IoT
Amazon Kinesis 代理
Amazon Kinesis Streams
Amazon CloudWatch 日志
Amazon CloudWatch 事件
Apache Kafka
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Amazon Kinesis Data Firehose 数据传输
Amazon
Elasticsearch Service
转换后的记录
数据转换函数
• 针对公开访问域
• 轻松转换数据
• 内置的 Serverless 批处理, Amazon Elasticsearch 索引轮换, 错误管理
数据源
原始记录
Firehose 传输流
原始记录
传输失败
转换失败
数据存储
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Amazon Kinesis - Firehose vs. Streams
Amazon Kinesis Data Streams 适用于需要自定义处理的用例,每个传入记录,具有低于1秒的处理延迟,以及流处理框架的选择
Amazon Kinesis Data Firehose 适用于需要零管理的用例,能够使用基于Amazon S3,Amazon Redshift和Amazon ES的现有分析工具,以及60秒或更高的数据延迟
Kinesis Data
Streams
Kinesis Data
Firehose
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
实时流式分析的典型架构
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
点击流分析 -从批处理到实时分析
很多数据以前通过数据仓库批量处理的方式或通过 Hadoop 框架进行分析,而借助 Amazon Kinesis,您可以对此类数据进行实时分
析。最常见的使用案例包括数据湖、数据科学和机器学习。您可以使用 Amazon Kinesis Data Firehose 将数据持续加载到 Amazon
S3 数据湖中。您也可以在获得新数据时更频繁地更新机器学习模型,确保结果的准确性和可靠性。
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
社交媒体流数据分析 - 构建实时应用程序
您可以将 Amazon Kinesis 用于实时应用程序,例如监控、欺诈识别和直播排行榜应用程序。您可以使用 Amazon Kinesis Data
Streams 接收流数据,使用 Amazon Kinesis Data Analytics 处理流数据,然后使用 Amazon Kinesis Data Streams 将结果发送
到任何数据存储或应用程序,端到端延迟只有几秒。这可以帮助您了解自己的客户、应用程序和产品的当前状态并迅速做出反应。
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
视频监控警报系统 -构建视频分析应用程序
您可以使用 Amazon Kinesis Video Streams 将视频从家庭、办公室、工厂和公共场所的配备摄像头的设备安全地传输到 AWS。
然后,可以将这些视频流用于视频播放、安全监控、面部检测、机器学习和其他分析。
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
传感器检测 -分析 IoT 设备数据
您可以使用 Amazon Kinesis 来处理来自消费电器、嵌入式传感器和电视机顶盒等 IoT 设备的流数据。然后您可以用编程方式使用这
些数据,以便在传感器超过特定运行阈值时发送实时提醒或进行其他操作。使用 AWS 提供的 IoT 分析示例代码还可以帮助构建您的
应用程序,无需从头开始。
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Demo
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
Amazon S3
Amazon Redshift
Amazon Elasticsearch
Splunk
Real-Time Applications (seconds)
Streaming ETL (minutes)
Stream Ingestion
[Wed Oct 11 14:32:52
2018] [error] [client
127.0.0.1] client denied
by server configuration:
/export/home/live/ap/htd
ocs/test
Mobile device
Metering
Click streams
IoT sensors
Logs
AWS SDKsAmazon
Kinesis Agent
Amazon Kinesis
Producer Library
Amazon Kinesis
Consumer Library
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营
我们希望您喜欢今天的内容!也请帮助我们完成反馈问卷。
欲获取关于 AWS 的更多信息和技术内容,可以通过以下方式找到我们:
微信公众号:AWSChina
新浪微博:https://www.weibo.com/amazonaws/
领英:https://www.linkedin.com/company/aws-china/
知乎:https://www.zhihu.com/org/aws-54/activities/
视频中心:http://aws.amazon.bokecc.com/
更多线上技术活动:https://aws.amazon.com/cn/about-aws/events/webinar/
感谢参加 AWS 在线研讨会