Amazon Kinesis Analytics

现在让我们将注意力集中在 Amazon Kinesis Analytics 上。

Amazon Kinesis Analytics 使您能够快速编写 SQL 代码,以近乎实时的方式连续读取、处理和存储数据。

借助 Amazon Kinesis Analytics,您可以实时摄取数十亿个小数据点。 然后可以聚合每个单独的数据点以提供智能的业务见解,进而可用于持续优化和改进业务流程。

使用 Kinesis Analytics 需要您执行以下三个步骤。

第一步,配置输入流。
第二步,提供 SQL 查询来执行分析。
第三步,配置输出流并写出分析结果。

我们将更详细地深入研究每个步骤。 但在我们深入了解 Kinesis Analytics 服务的具体细节之前,让我们退后一步,考虑一下是什么首先促使我们证明使用实时分析服务的合理性。
正如该图中所示,数据的价值随着时间的推移而减少。 保持企业最佳绩效的能力通常与及时做出决策的能力有关。 我们越早做出明智且可行的决策,我们就能越快地调整和保持最佳性能,因此凸显了能够近乎实时地处理数据的重要性。 我们可以做出的决策类型取决于数据本身的年龄。 考虑到这一点,我们可以看到实时处理的数据使我们能够做出预防性和/或预测性决策。 几秒钟内处理的数据使我们能够做出可行的决策。 在几分钟到几小时内处理的数据使我们能够做出反应性决策。 在几天到几个月内处理的数据使我们能够执行商业智能类型的历史报告。 现在让我们考虑一些实时流数据的来源和生成器。 移动应用程序是不断收集您当前 GPS 位置的应用程序,并将其实时传输回集中服务。

点击流、开源工具,例如 Open Web Analytics 和 Piwik,集成后可跟踪和流式传输网页用户行为。 Application Log,应用程序日志记录,不断收集服务器应用程序的行为和运行性能。 IoT,物联网,连接到互联网的传感器,收集有关本地环境的信息并流回集中服务,例如物联网恒温器。 社交、Twitter 和 Facebook 等社交应用程序、用户帖子和评论。 接下来,我们现在讨论如何在 AWS 平台中使用 Amazon Kinesis Analytics 以及如何与其他 AWS 服务集成。 现在,我们将介绍一些高级示例,每个示例都强调一个不同的用例,其中 Kinesis Analytics 可用于实时处理传入的数据源,然后将生成的分析见解传播到特定端点 。 Kibana 仪表板的时间序列分析。 在此示例中,Kinesis Analytics 用于处理和导出基于时间序列的分析,其结果将发布到 Elasticsearch 托管的基于 Kibana 的仪表板中。 这种类型的架构非常适合根据时间序列数据创建关键绩效指标。 使用 QuickSight 将移动 Web 应用程序迁移到 RedShift。 此示例涉及一个移动 Web 应用程序,该应用程序使用 AWS JavaScript SDK 将应用程序点击流数据发送到 Kinesis 流中。
Kinesis 流是由 Kinesis Analytics 应用程序处理的输入流。 分析结果被输入到输出 Kinesis 流中,然后通过 Lambda ETL 函数进行转换。 然后输出被推送到 RedShift 数据库中。 AWS QuickSight 用于创建业务报告。 物联网实时监控。 此示例涉及物理 IoT 恒温器,用于收集温度读数并将其流式传输到 AWS IoT 主题。 AWS IoT 规则配置为处理 IoT 主题并将数据发布到 Kinesis 输入流中,然后该输入流本身用作 Kinesis 应用程序的输入。

然后,Kinesis 应用程序输出将传送到输出 Kinesis 流。 输出流通过订阅 Lambda 函数进行处理,该函数将数据转换为自定义指标,发布到 CloudWatch 中,使我们能够通过实施的警报对数据做出反应。 Amazon Kinesis Analytics 提供以下主要优势。 与其他分析工具相比,实时处理是该服务的基本特征和差异化因素。 完全托管,这是一项完全托管的服务。

AWS 负责服务的所有维护和运营方面,让您能够专注于数据的实时分析。 自动弹性,AWS 将根据需要调整和扩展底层基础设施,以确保持续分析,无论传入数据的数量和速度如何。 标准SQL,此服务支持标准 SQL,因此允许您重用现有的 SQL 技能。 现在让我们开始详细介绍 Kinesis Analytics 部署所使用和所需的每个关键概念。 对于初学者来说,您必须配置的第一件事是应用程序。

Kinesis Analytics 应用程序由三个主要子组件组成。
一,输入流。 输入流通常来自流数据源(例如 Kinesis 流),但也可以来自存储在 S3 存储桶中的参考数据源。
二、SQL处理逻辑,一系列处理输入并产生输出的SQL语句。 SQL 代码通常会执行聚合并生成见解。 SQL 语句是用符合 ANSI 的 SQL 编写的。 Amazon Kinesis Analytics 实施带扩展的 ANSI 2008 SQL 标准。
三、输出流。 输出流可以配置为保存用于输入其他查询或用于流式输出最终结果的中间结果。 输出流可以配置为写出目的地,例如 S3、Redshift、Elasticsearch 和/或其他 Kinesis 流。
接下来将开始更详细地研究每个子组件。 Kinesis Analytics 应用程序的核心旨在持续读取和处理传入的数据源流。 数据源流的示例是使用 Amazon Kinesis Stream 或 Amazon Kinesis Firehose 服务实现的数据源流。
Kinesis Analytics 应用程序可以配置的另一个可选输入是静态引用表。 Kinesis Analytics 应用程序上下文中的参考表可以丰富传入数据。 引用表是从 S3 存储桶中存储和提取的。 丰富过程是在查询时使用 SQL 连接执行的。 数据模式关联并应用于所有传入数据。 Kinesis Analytics 应用程序还可以自动检测数据架构。 但是,您可以通过指定自己的架构来完全覆盖此设置,也可以自定义和优化自动派生的架构。 应用程序输入流的数据模式定义了数据本身的结构。 这类似于在关系数据库中使用DDL语句(例如建表语句)的过程。 每个输入都必须与一个数据模式相关联。 正如已经提到的,默认模式是在配置时自动派生的。 尽管架构是在数据摄取开始时推断出来的,但 Kinesis Analytics 提供了一个架构编辑器,使您可以控制操作和自定义架构,以对输入进行宽松或严格的控制。 您编写的 SQL 查询语句代表 Kinesis Analytics 应用程序最重要的部分,因为它们生成您希望获得的实际分析。 您的分析是使用一个或多个 SQL 语句来实现的,用于处理和操作输入并生成输出。 您编写查询流以获取分析结果的 SQL 语句。 此过程可能涉及中间步骤,从而将一个查询的输出馈送到应用程序流中的第二个查询。 这个过程可以重复多次,直到获得最终期望的结果并保存到输出流。 可以利用多个 SQL 语句来为您提供灵活性,允许您建模和实现不同的数据处理模式,例如扇出、扇入、聚合、增强和/或过滤。 AWS Kinesis Analytics 控制台提供了一个查询编辑器等功能,我们可以在其中编写、格式化和保存分析查询。 查询编辑器提供了非常有用的 SQL 模板功能,您可以从预定义的 SQL 模板开始。 AWS 提供了多个 SQL 模板,涵盖了需要对流数据执行分析时的许多常见要求。 示例模板包括以下内容。 连续过滤器,根据where条件执行连续过滤器。 滚动时间窗口中的聚合函数,在 10 秒滚动窗口内聚合指定列的行。 多步骤应用程序、使用并行或串行处理步骤、应用程序流中的中间对于构建多步骤应用程序非常有用。 现在让我们快速浏览一下用于定义示例 Kinesis Analytics 应用程序的全套 SQL 语句。 此特定示例基于翻滚时间窗口模板中的聚合函数。 第一,对于初学者来说,模板定义了输出目标流的数据结构。 第二,接下来创建一个泵,将其输出定向到第一个语句中创建的目标流。 第三,最后,泵中填充了一条插入语句,该语句本身是由输入源流上的选择语句定义的。 有几点值得一提。 默认情况下,输入源流名为源 SQL 流 001。源流代表您配置的 Kinesis 流或 Kinesis Firehose特雷姆。 默认情况下,输出目标流被命名为目标 SQL 流。 select 语句始终在 insert 语句的上下文中使用,即当您从应用程序流中的一个中选择行时,会将结果插入到应用程序流中的另一个中。 insert 语句始终在泵的上下文中使用,即我们使用泵写入应用程序内流。 泵是用于使插入语句连续的机制。 正如刚才简要提到的,您可以实现一个涉及中间步骤的管道,其中一个 SQL 查询的输出用于在应用程序流中填充和生成另一个 SQL 查询的输出。 这个过程涉及到泵的概念。 泵用于获取从源流派生的查询输出,然后将它们存储到单独的应用程序流中。 此过程分为两步,首先定义一个新的应用程序流,然后将数据注入其中。 让我们逐步完成这个过程。 第一步是定义一个新的流,泵将用于将数据泵入其中。 我们定义新流的数据结构。 在此示例中,我们定义一个名为 stage1stream 的新流,它有四列。 第二步是定义新泵。 在这里,我们将其命名为 stage1pump。 该泵将数据插入到 stage1stream 中。 插入的数据源自对称为应用程序流的输入流执行的选择查询。 在处理和分析流数据时,我们需要在流上使用基于时间的边界。 考虑到这一点,在应用程序流中标记有一个称为行时间的特殊元列。 Rowtime 记录 Kinesis Analytics 首次将行插入应用程序流中的第一个行时的时间戳。 当记录在应用程序内的任何中间流之间移动时,相同的行时间值将与记录保持关联。 请注意,行时间用于在基于时间的滚动窗口上实现聚合。 当我们进入查询窗口幻灯片时,我们将更详细地介绍这一点。 Kinesis Analytics 使您能够执行连续查询。 连续查询非常适合需要不断收到与查询过滤器中的参数匹配的数据更改警报的场景。 Kinesis Analytics 负责在数据传输过程中持续运行 SQL 查询,将结果发送到您所需的目的地。 连续查询开始后,您将收到查询过滤器中所有数据更改(如果有)的通知。 例如,假设您有一个每分钟传输一次心率信息的 IoT 设备,并且您希望在发生大于 25% 的心率变化时收到通知。 您可以在应用程序代码中使用以下查询。 此查询持续运行,并在检测到心脏变化大于 25% 时发出记录。 如前所述,应用程序代码中的 SQL 查询在应用程序流中连续执行。 要从不断变化且无限制的数据中获取结果集,您通常需要使用基于时间或基于行的窗口来限制 SQL 查询。 此上下文中的窗口定义查询的开始和结束。 SQL 查询可以受时间窗口或基于行的窗口的限制。 现在让我们分别讨论其中的每一个。 基于时间的窗口。 基于时间的窗口查询是通过根据时间指定窗口边界来定义的。 例如,我们可以定义基于一分钟的时间窗口或更长的时间窗口,例如基于 10 分钟的窗口。 基于时间的窗口利用应用程序流中单调递增的时间戳列。 我们之前谈到了 Kinesis Analytics 在每个即将到来的记录上自动标记的行时间列。 Rowtime 可用于计算基于时间的窗口。 基于行的窗口。 基于行的窗口查询是通过以行数指定窗口大小来定义的。 Kinesis Analytics 支持三种类型的窗口:翻滚窗口、滑动窗口和自定义窗口。 现在我们将逐一讨论这些内容。 翻滚窗口是固定大小的窗口,其中窗口的绑定不与紧邻之前或之后的窗口重叠。 新的翻滚窗口的开始是从旧窗口的结束开始的。 滚动窗口通常用于创建基于时间范围的报告。 例如,您可以使用滚动窗口来计算给定网页在过去 10 分钟内的平均点击次数。 滑动窗口是固定大小的窗口,其中窗口的绑定与紧邻之前或紧邻之后的窗口重叠。 每当新行进入窗口时,滑动窗口都会发出新结果。 一条记录可以是多个窗口的一部分,并且可以在每个窗口中进行处理。 滑动窗口对于维护 KPI 和基于趋势的数据报告非常有用。 自定义窗口对于事件关联非常有用。 Web 应用程序会话化是一个可以使用自定义窗口的好例子。 会话化是使用 ses 跟踪和记录用户活动的过程针对该用户分配的 sion id。 在这种情况下,将根据用户的会话 ID 定义自定义窗口,并允许报告用户在特定会话期间完成的所有操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/742280.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

两个笔记本如何将一个笔记本作为另一个笔记本的拓展屏

需求是有两个笔记本,一个笔记本闲置,另一个笔记本是主力本。想将另一个闲置的笔记本连接到主力本上作为拓展屏使用。网上搜了好久,有一些人提到了,也有一些视频但是文章比较少。简单总结一下吧 上述需求有两种方式 第一种&#x…

浅谈Redis 的 保护模式(protected-mode)

今天在一台服务器上面部署了redis,发现始终无法用工具远程连接,项目里面是正常的,就是工具不行,防火墙也关闭了.折腾了一会才突然想起来,是不是触发了保护模式. 什么时候触发保护模式protected-mode: 同时满足以下两个: 1.bind未指定ip 2.未配置密码 解决方案: 编辑redis…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的交通标志识别系统详解(深度学习模型+UI界面代码+训练数据集)

摘要:本篇博客详细介绍了利用深度学习构建交通标志识别系统的过程,并提供了完整的实现代码。该系统采用了先进的YOLOv8算法,并与YOLOv7、YOLOv6、YOLOv5等早期版本进行了性能评估对比,分析了性能指标如mAP、F1 Score等。文章深入探…

计算机组成原理实验报告1 | 实验1.1 运算器实验(键盘方式)

本文整理自博主大学本科《计算机组成原理》课程自己完成的实验报告。 —— *实验环境为学校机房实验箱。 目录 一、实验目的 二、实验内容 三、实验步骤及实验结果 Ⅰ、单片机键盘操作方式实验 1、实验连线(键盘实验) 2、实验过程 四、实验结果的…

代码随想录-java-栈与队列总结

栈(Stack):是只允许在一端进行插入或删除的线性表。栈是一种线性表,限定这种线性表只能在某一端进行插入和删除操作。进行操作的这一端称为栈顶。 队列(Queue)是只允许在一端进行插入操作,而在另…

Python使用FastAPI提供图片缩略图生成接口

使用pillow的thumbnail生成缩略图时,会保持原图的宽高比;使用的opencv的resize则不会 具体代码如下: #!/usr/bin/env python import re import sys from enum import Enum from io import BytesIO from pathlib import Path from typing im…

汇编课设——秒表2

1. 设计要求 基于 51 开发板,利用键盘作为按键输入,将数码管作为显示输出,实现电子秒表。 功能要求: (1)计时精度达到百分之一秒; (2)能按键记录下5次时间并通过按键回看 (3)设置时间,实现倒计时,时间到,数码管闪烁 10 次,并激发蜂鸣器,可通过按键解除。 2. 设计思…

P1955 [NOI2015] 程序自动分析题解

题目 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。 考虑一个约束满足问题的简化版本:假设x1​,x2​,x3​,⋯ 代表程序中出现的变量,给定n个形如xi​xj​或xi​!xj​ 的变量相等/不等的约束条件,请判…

美国欲在菲律宾扩大半导体芯片投资

近年来,在复杂的国际形势和保障供应链安全需求的影响下,东南亚国家如新加坡、马来西亚和越南已经成为众多半导体巨头设立海外业务的重要选址地。现在,菲律宾也有望加入这些国家的行列。 最近,美国商务部长吉娜雷蒙多表示希望帮助…

思科网络中如何进行动态NAT配置

一、什么是动态NAT?动态NAT与静态NAT的区别是什么? (1)动态NAT(Network Address Translation)是一种网络地址转换技术,它会动态地将内部私有网络中的局域网IP地址映射为公共IP地址,…

Hack The Box-Codify

目录 信息收集 rustscan nmap dirsearch WEB 提权 get user get root 信息收集 rustscan ┌──(root㉿ru)-[~/kali/hackthebox] └─# rustscan -b 2250 10.10.11.239 --range0-65535 --ulimit4500 -- -A -sC .----. .-. .-. .----..---. .----. .---. .--. .-. …

JVM 类的加载篇

我们都知道一个类从加载到卸载一共分为七个过程 加载 - 链接(验证 - 准备 - 解析) - 初始化 - 使用 - 卸载 下文我们将详细解析这些过程 谁需要加载? 在Java中数据类型分为基本数据类型和引用数据类型,基本数据类型由虚拟机预定义,引用数据类型则需要类的加载 1.加载/装载(loa…

Docker入门二(应用部署、迁移与备份)

文章目录 一、应用部署1.MySQL部署2.Redis部署3.Nginx部署 二、迁移与备份1.容器做成镜像2.把镜像被分成压缩包 一、应用部署 1.MySQL部署 在dokcer中部署mysql,以后不需要在宿主机上装mysql1.做端口映射docker run -id --namemysql5.7 -p 3306:3306 -e MYSQL_ROOT…

Fundamentals of Amazon MSK (Amazon Managed Streaming for kafka)

Amazon Managed Streaming for Apache Kafka 或 Amazon MSK 允许您在 AWS 中运行利用 Apache Kafka 的应用程序。 Kafka 提供了一个流处理平台,并作为基于发布者/订阅者的持久消息传递系统运行。 其主要功能是能够以极高的容错能力获取数据,允许这些记录…

网工内推 | 国企、上市公司网工、运维,CCNA即可,补贴福利多

01 深圳新思 招聘岗位:网络工程师(中电集团) 职责描述: 1:负责办公室电脑的桌面运维,主要是windows维护与应用维护; 2:负责办公室网络设备配置,如防火墙,交换…

CMake 编译 raylib 程序

CMakeLists.txt 内容如下: cmake_minimum_required(VERSION 3.0) project(t001) # 搜索指定目录下源文件 file(GLOB SRC_LIST ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) # 包含头文件路径 include_directories(F:/vclib/raylib-5.0_win64_mingw-w64/include) # 包含静态…

CountDownLatch介绍和使用

1. CountDownLatch是什么 CountDownLatch 是 Java.util.concurrent 包中的一个同步工具类,用于控制线程的执行顺序。它的主要作用是让一个或多个线程等待其他线程完成操作后再继续执行。 2. CountDownLatch 类常用方法 CountDownLatch(int count) 是 CountDownLa…

使用maven命令行。手动搭建maven项目

要使用Maven命令行,首先需要确保已经安装了Maven。接下来,可以按照以下步骤手动搭建Maven项目: 创建项目目录:在命令行中切换到你希望创建项目的目录下,然后执行以下命令: mkdir myproject cd myproject初…

软件测试基础概念

一、需求 定义:满足用户期望或正式规定文档所需条件和技能,包含用户需求 用户需求:用户使用产品所必须完成的任务 该需求比较简略 软件需求:详细描述开发人员必须实现的软件功能 需求是标准,测试人员按照这个标准测…

python之第三方模块

配置pip源 更新pip pip install --upgrade pip 下载清华源 pip config set global.index-url Simple Index requests 用代码模拟向浏览器发送请求 #返回的是json格式,分页查询 import requests for i in range(0,100,10):resrequests.get(url"https://mov…