Azure: 发布新的实时数据流和数据工厂服务

[原文发表地址] Azure: Announcing New Real-time Data Streaming and Data Factory Services

[原文发表时间] 2015/10/31

过去三周“对于Azure来说是忙碌的三周。两周前,我们宣布与Docker合作, 在Linux, Windows service与Microsoft Azure上启动基于容器的高级开发经验。

上周我们举行了”Cloud Day”活动, 宣布了新的G系列虚拟机以及高端存储产品。, G系列的虚拟机提供了在当今的公共云中可用的虚拟机的最大规格(差不多是”AWS”提供的最大内存的2倍, Google提供的最大内存的4倍)。 而新的高级存储产品(同时能够和D系列与G系列虚拟机一起工作)将为每台虚拟机提供32TB的存储空间,多于50,000次的磁盘读写操作,并且能使每个用户的读延迟低于1ms。结合他们提供的超能力能够使你在云中运行更大更好的解决方案。

这周早些时候,我们正式开放了新的澳大利亚地区的Azure平台——它是我们在全球开业的第18个和第19个地区性Azure平台。之后在欧洲微软技术大会上,我们会宣布另一些新的功能,包括新Azure Marketplace,一些很好的网络优化,新的批处理计算服务Azure自动化的一般可用性等等。

今天,我很高兴的发布了一篇关于本周Azure Data space中公布的更多新服务的博客。它们包括:

·事件中心: 这是一个可扩展的服务用来从网站,客户端应用程序和物联网传感器。

·流分析:是一个具有成本高效性的事件处理引擎, 有助于实时分析事件流。

·数据工厂: 能够通过编排和管理各种数据和数据移动获取更好的生产信息。

Azure事件中心现在可用于一般可用性,并且新的Azure流分析和数据工厂服务现在已有公共预览。

事件中心:每秒几乎实时地记录百万事件

Azure事件中心服务是高度可伸缩的遥测摄入服务,可每秒几乎实时地记录百万事件。您可以使用事件中心服务从任何物联网设备,任何应用程序(网络、移动或后端服务),或通过社交网络收集数据/事件。我们在微软内部使用它来监控我们的一些最大的在线系统。

一旦你使用事件中心收集事件,您可以使用任何实时分析系统分析数据(如Apache Storm或我们的新Azure流分析服务),并且可以存储/转换到任何数据存储系统中(包括HDInsight和基于Hadoop的解决方案)。

事件中心作为Azure的托管服务被交付(这意味着我们为你运行,缩放和打补丁,并且提供了一个企业级SLA)。它提供了:

·每秒几乎实时的记录百万事件的能力

·弹性扩展支持的能力,扩大/减小且没有中断

·支持多种协议包括支持HTTP和基于事件的AMQP

·灵活的授权和节流设备的策略

·基于时间的事件缓冲以及事件顺序预留

事件中心拥有非常灵活的定价模型——仅需11美元/月你便可以拥有一个基本事件中心,保证了性能容量使你每秒能捕获1 MB的发送到你的事件中心的事件。如果您的事件流量更高的话,还有更多的额外容量单元来满足您的需要。

开始使用捕获事件

您可以使用Azure门户或通过命令行来创建一个新的事件中心,你可以在门户网站中,选择NEW->APP SERVICES->SERVICE BUS->EVENTHUB

一旦创建,可以将事件发送到事件中心及强类型的API中(例如.NET或Java客户端库)或只是向服务发送原始HTTP或AMQP消息。下面是一个简单的例子记录了发送一个物联网事件到事件中心是多么容易的,仅使用了一个标准的HTTP post请求。注意HTTP post中的授权头 ——您可以使用它选择性的为您的设备启用灵活的认证/授权:

POST https://your-namespace.servicebus.windows.net/your-event-hub/messages?timeout=60\&api-version=2014-01 HTTP/1.1

Authorization: SharedAccessSignature sr=your-namespace.servicebus.windows.net&sig=tYu8qdH563Pc96Lky0SFs5PhbGnljF7mLYQwCZmk9M0%3d&se=1403736877&skn=RootManageSharedAccessKey

ContentType: application/atom+xml;type=entry;charset=utf-8

Host: your-namespace.servicebus.windows.net

Content-Length: 42

Expect: 100-continue

{ "DeviceId":"dev-01", "Temperature":"37.0" }

事件中心可以收集到每秒数百万消息,可以把它们存储成任何数据模式,事件中心服务将为您顺序的存储,方便你之后读入/取出。

底层事件处理

一旦你收集了事件,你毫无疑问想要用它做点什么。事件中心包括一个智能处理代理,可以用于管理自动分区和围绕阅读器的负载分布。您可以通过阅读器实现任何你想要的逻辑,并且你发送到阅读器的数据是以发送到事件中心的顺序被交付的。

除了支持编写用户事件阅读器外,我们还有两个简单的方法来使用预构建的流处理系统:包括我们新的Azure流分析服务和Apache Storm。我们的新Azure流分析服务支持直接从事件流处理中心处理, 微软还为使用Apache Storm集群创造了一个Event Hubs Storm Spout。

下面的图说明有很多方法可以使用事件中心收集数据,然后交接并处理事件/数据:

事件中心提供了一个超级灵活和成本高效的结构单元,您可以用它来收集和处理任何事件或数据流到云平台。这非常符合成本效益,提供了满足任何需求的可伸缩的需求服务。

更多的学习事件中心

关于Azure事件中心的更多信息,请查阅以下资源:

Azure流分析:分布式流处理服务

我很高兴宣布我们的新Azure流分析服务预览——一个完全的管理级实时分布式流计算服务,提供在云上的低延迟、可伸缩处理流数据的企业级SLA。新的Azure流分析服务可以很容易的从几KB /秒吞吐量的小型项目扩展到Gb /秒或更多的流数据消息/事件

我们流分析定价模型使您能够以低成本不间断的运行低吞吐量的流工作负载,并且当你的业务需求增加时,您只需要进行扩展即可。我们这样做的同时,还维护并保证了事件的交付和状态管理的恢复,保证了关键业务的连续性。

简化开发人员使用数据流处理的经验

流分析支持类SQL语言,大大降低了开发人员用于创建一个可伸缩的流处理的解决方案所需的专业知识。开发人员只需编写几行SQL来进行一些常用操作,包括基本过滤,时序分析操作,将多个实时流数据加入其他静态数据源,以及检测流模式(或者没有)。

这极大地减少了复杂性和在实时数据流上开发、维护和应用时间敏感的计算所用的时间。今天大多数其他流媒体解决方案需要您编写复杂的自定义代码,但使用Azure流分析只用编写简单的,声明式的和熟悉的SQL。

容易设置的全面的管理服务

使用流分析可以大大加快了获得有价值的见解和从设备、传感器、基础设施、或应用程序分析数据的速度。只需在Azure门户点击几次,您就可以创建一个流管道,配置其输入和输出,并提供类SQL查询语句来描述所需的流转换/你想对数据做什么分析。一旦运行,你可以监控整个流管道的规模/速度并做出调整,以达到所需的吞吐量和延迟。

您可以在Azure门户中创建一个新的流分析工作.选择 New->Data Services->Stream Analytics:

设置流数据输入

一旦创建,你的第一步是添加一个流数据输入,允许您指定你想执行流处理的数据的位置。从门户中你可以选择Inputs->Add An Input启动一个向导,允许您指定:

我们可以使用Azure事件中心服务交付我们的数据进行处理。如果你已经创建了一个事件中心,您可以从上面向导的列表中选择。你也会被要求使用指定的格式来序列化传入事件中心的事件(例如JSON,CSV或Avro格式)。

设置输出位置

开发流分析工作的下一步是添加一个流输出位置。用以配置我们流处理管道的输出结果。我们可以选择把结果输出到Blob存储器,另一个事件中心,或一个SQL数据库:

记住,使用另一个事件中心作为目标提供了一种强大的方法,只需几个步骤便可以连接多个流到整个管道上。

编写流查询

现在,我们有了自己的输入和输出源配置,我们现在可以编写SQL查询转换,聚合和/或关联传入的输入(或在多输入源的事件中的一组输入集)和输出到我们的输出目标。我们可以通过在门户中选择顶部的查询选项来做这些。

您可以编写许多有趣的查询来处理传入的数据流。例如,在前面的事件中心章节中提到的这篇博客,我展示了如何使用HTTP post命令提交基于JSON的温度数据从一个物联网设备到数据事件中心,JSON格式的数据如下所示:

{ "DeviceId":"dev-01", "Temperature":"37.0" }

当多个设备像这样同时流出事件到我们的事件中心,它会以数据事件流的形式类似于下面这样连续的流入我们的流分析工作中:

如果能够使用时间窗口的角度分析这个数据会不会很有趣呢?例如, 它能在过去的5秒内的多个读数中实时计算每个设备的平均温度,这会非常有用。

使用流分析服务,我们现在可以仅仅通过编写如下的SQL查询,来动态地计算我们传入的实时流数据:

SELECT DateAdd(second,-5,System.TimeStamp) as WinStartTime, system.TimeStamp as WinEndTime, DeviceId, Avg(Temperature) as AvgTemperature, Count(*) as EventCount

FROM input

GROUP BY TumblingWindow(second, 5), DeviceId

在我们流分析工作中运行该查询,将聚合/转换我们传入的数据事件流和输出数据进入我们配置的输出源中(例如blog存储文件或一个SQL数据库),就像下面这样:

这种方法最大的意义在于,数据被实时聚合/转换为事件流向我们,并且能处理更大规模的兆字节每秒的数据事件流。

扩展流分析的工作

一旦定义,您可以在Azure门户中轻松地监控流分析工作的活动。

你可以使用缩放选项来动态扩大或缩小流处理能力——只需要支付你需要的计算能力,并使您能够处理Gb/秒的流数据工作。

学习更多关于流分析服务

关于流分析的更多信息,请检查以下资源:

数据工厂:建立并管理信息输出管道的全面管理服务

组织者们越来越期待能充分利用业务范围内的所有可利用数据。正如他们所做的那样,数据处理变得前所未有的多样化——数据跨越地理分布,预先部署和云,跨越各种各样的数据类型和资源(SQL, 非SQL,分布式计算等等),需要处理的数据量以指数形式增长。现今的开发者们经常不得不编写大量的逻辑代码去实现一个信息生产系统,可以管理,协调所有数据和处理工作。

为使得这些进程简便些,我很高兴的发布了数据工厂服务的最新预览——它是一个全面管理服务,使得组合数据存储,加工和数据移动服务成为简单的流线操作,它是一个可扩展,可依赖的数据处理管道。一旦管道部署完成,数据工厂可以使得监察和管理数据变得更简单,大大降低数据处理的成本。

便捷启动

数据工厂云平台是一个全面管理服务。数据工厂启动简单易行.通过Azure预览门户网站的几步点击,或者通过命令行操作,一个开发者可以创建一个新的数据工厂并将它链接到数据和进程资源上.从Azure预览门户网站中的新版AzureMarketplace,通过选择Data + Analytics ->Data Factory在Azure中创建一个新的实体:通过多样的信息源组织信息输出管道

数据工厂使得协调和管理来自各种地方——包括来自云端和内部部署的数据更加简单。在本周发布预览版本中支持处理来自SQLServer,Azure Blob,Azure Table,HDInsight分布式文件系统和SQL数据库的各种数据。

访问内部部署的数据是由一个允许简单配置并用于管理与内部部署的SQLServer的安全连接的数据管理网关支持的。数据工厂可以平衡由云,分布式计算和非关系型平台提供的规模和敏捷性,并且可以管理和监控那些要求能够在混合环境下容纳信息产品的企业系统。

使用Hive,Pig和C#的自定义数据处理活动**

这周的预览版启动了使用Hive,Pig和自定义C#的数据处理活动。数据工厂活动可以用来清空数据,隐藏关键的数据域,用多种复杂的方式转变数据。

而Hive and Pig活动可以在你创造的HDinsight集群上运行,或者站在你的立场,你可以允许数据工厂代替你全权管理分布式计算集群的生命周期。只要编写你的活动,把它们合并成一个管道,设置执行计划,你的任务就完成了,无需手动执行分布式计算集群的设置和管理。

内置的生产信息监测和仪表板

数据工厂还提供了最新的监控仪表板,这意味着你可以部署你的数据管道,并且立刻把它们作为监控仪表板的一部分显示出来。一旦你为你的数据工厂创创建了部署管道,你可以快速评估端到端的数据管道的健康,查明问题,并根据所需采取矫正措施。

在Azure预览版门户网站,你可以得到所有管道以及数据输入,输出的可视化布局。你可以看到跨所有的资源的你的所有数据管道的所有关系和依赖,因此你总是可以在浏览版上了解数据的来源和去向。我们还在数据仪表盘上为你展示了工作执行的历史记录,数据产品状况和系统健康状况:

学习更多的服务分析流:

想得到更多的数据工厂的信息,你可以浏览下列资源:

其他重大的数据改进

今天发布的新版本使得顾客在云端流,加工和管理数据变得更简单。在过去的几个月中我们已经发布了一系列的优秀的数据更新,使Azure成为满足任何数据需求的一个很棒的平台。从八月起:

我们发布了一个SQL 服务的重大的更新,这是一个作为服务提供的关系型数据库。新的SQL数据库编辑器(基础性/标准型/优质型)支持99.9%的SLA,更大的数据库规格,专业的行为保证,时间点状覆盖,新的审计功能,和便捷设置积极地理灾难恢复支持的能力。

我们发布的预览产品中包含我们的文件库服务,这种服务是一种全面管理的,高可扩展性的,非SQL文本的数据服务,它还提供保存和查找基于JSON数据。它使你能够线性地扩展你的文本存储到任何应用程序的大小。微软MSN门户最近为了使用它进行了重写:在里面存储了大于20TB的数据。

我们发布了新的Redis缓存服务这是一种安全、专门的Redis缓存供应,被微软作为一种服务管理。Redis是一种流行的启用高性能数据类型的开源解决方案,我们的Redis缓存服务使你能够建立一个可以让任何应用程序性能更高的内存缓存。

我们发布了HDInsight分布式服务的主要更新,它是在云上的100%基于分布式的Apache服务。我们还为在在分布式系统中使用两种框架而添加了内置支持:Apache HBaseApache Storm

我们发布了新的搜索即服务供应的预览版,它提供了基于ElasticSearch的托管搜索服务,你可以轻松地集成到任何网页和移动应用中。它可以让你对应用所使用的全部数据建立搜索体验(包括SQL数据库,文本数据库,分布式计算及更多)。

我们已经发布了机器学习服务预览版,它提供了强大的基于云的预测分析服务。它是为新老数据科学家设计的,包括来自开源世界和微软研究的100个算法以及支持使用流行的R开源语言的编写ML解决方案。

在未来的几个月你将陆续看到主要的数据更新——我们有一个令人振奋的改进蓝图。

总结

今天微软发布的版本能够兼容更多的新数据情景,使得与数据一起在云中构建应用程序变得更轻松。

如果你还没有Azure账号,你可以注册一个免费试用版并从今天开始使用以上所有的功能,然后访问Microsoft Azure开发者中心学习更多关于如何用它来构建应用程序

希望这些有帮助

Scott