Azure的活动中心

Azure的活动中心是一个hyper-scale遥测摄入服务,收集、转换和存储数以百万计的事件。作为分布式流媒体平台,它给你保留低延迟和可配置的时间,bob体育客户端下载使你进入大量的遥测到云,读取数据从多个应用程序使用发布-订阅语义。

这篇文章解释了如何使用结构化流Azure的事件中心和砖集群。

需求

当前版本支持,看到“最新版本”Azure事件中心火花连接器项目自述文件

  1. 创建一个库在你的砖工作区使用Maven的坐标com.microsoft.azure: azure-eventhubs-spark_2.11:2.3.17

    请注意

    这个连接器是定期更新,最近的一个版本可用:我们建议您把最新的连接器Maven存储库

  2. 安装创建库到您的集群。

模式

记录的模式是:

类型

身体

二进制

分区

字符串

抵消

字符串

sequenceNumber

enqueuedTime

时间戳

出版商

字符串

partitionKey

字符串

属性

地图(字符串,json)

身体总是提供一个字节数组。使用铸造(“字符串”)显式地反序列化的身体列。

快速启动

让我们先从一个简单的例子:WordCount。以下的笔记本都是需要运行WordCount使用结构化流Azure的活动中心。

Azure事件中心WordCount结构化流笔记本

在新标签页打开笔记本

配置

本节讨论的配置设置需要处理事件中心。

详细指导配置结构与Azure事件流中心,看到结构化流和Azure事件中心集成指南由微软开发的。

对于使用结构化流的详细指导,明白了流媒体在砖

连接字符串

一个事件中心连接字符串必须连接到事件中心服务。你可以得到你的活动中心的连接字符串的实例Azure门户或通过使用ConnectionStringBuilder在图书馆。

Azure门户

当你从Azure门户获取连接字符串,它可能有也可能没有EntityPath关键。考虑:

/ /没有一个实体的路径瓦尔没有=“端点= <端点>;SharedAccessKeyName = <键名>;SharedAccessKey = <键>”/ /用一个实体的路径瓦尔=“端点=某人:/ / <样本>;SharedAccessKeyName = <键名>;SharedAccessKey = <键>;EntityPath = < eventhub-name >”

一个连接到EventHubsEntityPath必须存在。如果你的连接字符串没有,别担心。这将会照顾它:

进口orgapache火花eventhubsConnectionStringBuilder瓦尔connectionString=ConnectionStringBuilder(没有)/ /定义在前面的代码块setEventHubName(“< eventhub-name >”)构建

ConnectionStringBuilder

或者,您可以使用ConnectionStringBuilder让你的连接字符串。

进口orgapache火花eventhubsConnectionStringBuilder瓦尔connectionString=ConnectionStringBuilder()setNamespaceName(“<名称空间名称>”)setEventHubName(“< eventhub-name >”)setSasKeyName(“<键名>”)setSasKey(“<键>”)构建

EventHubsConf

所有配置相关的事件发生在你的中心EventHubsConf。创建一个EventHubsConf,你必须通过一个连接字符串:

瓦尔connectionString=“< event-hub-connection-string >”瓦尔eventHubsConf=EventHubsConf(connectionString)

看到连接字符串更多信息获取一个有效的连接字符串。

配置的完整列表,请参阅EventHubsConf。这是一个配置的子集你开始:

选项

价值

默认的

查询类型

描述

consumerGroup

字符串

“默认”美元

流和批处理

消费群体是整个事件的中心。消费者团体支持多个消费应用程序都有一个单独的事件流,独立和读取流按照自己的节奏和自己的补偿。更多的信息是可用的微软文档

startingPosition

EventPosition

开始流

流和批处理

结构化流的起始位置工作。看到startingPositions信息选项的顺序阅读。

maxEventsPerTrigger

partitionCount

  • 1000年

流媒体查询

速度限制最大数量的事件处理每触发间隔。指定事件的总数将跨分区比例分割不同的体积。

对于每个选项,存在一个相应的设置EventHubsConf。例如:

进口orgapache火花eventhubs瓦尔cs=“<连接字符串>”瓦尔eventHubsConf=EventHubsConf(cs)setConsumerGroup(“sample-cg”)setMaxEventsPerTrigger(10000年)

EventPosition

EventHubsConf允许用户指定开始和结束的位置EventPosition类。EventPosition定义一个事件在一个事件的位置中心分区。的位置可以是一个队列的时间、抵消、序列号,流的开始或结束的流。

进口orgapache火花eventhubs_EventPositionfromOffset(“246812”)/ /指定偏移量246812EventPositionfromSequenceNumber(100升)/ /指定序号100EventPositionfromEnqueuedTime(即时现在)/ /当前时间后任何事件EventPositionfromStartOfStream/ /指定从开始流EventPositionfromEndOfStream/ /指定从流的结束

如果你想开始(或结束)在一个特定位置,简单地创建正确的EventPosition在你的EventHubsConf:

瓦尔connectionString=“< event-hub-connection-string >”瓦尔eventHubsConf=EventHubsConf(connectionString)setStartingPosition(EventPositionfromEndOfStream)

生产结构与Azure事件流中心

在生产运行流查询时,您可能想要更多的鲁棒性和正常运行时间保证比你当你简单地把一个笔记本一个集群和运行您的流交互查询。导入并运行以下笔记本演示如何配置和运行的结构性与Azure事件流在生产中心和砖。

有关更多信息,请参见生产注意事项结构化流

生产结构与Azure事件流中心笔记本

在新标签页打开笔记本