订阅实时数据
|
收藏
本文档所描述的内容属于神策分析的高级使用功能,涉及较多技术细节,适用于对相关功能有经验的用户参考。
当您的环境安装了 SDF 后,会根据数据类型分发到不同的 topic,当有订阅需求时,请咨询您的数据咨询顾问获取一对一的协助。
神策分析设计为开放的架构,让用户可以订阅实时数据来满足更多使用场景。服务端接到一条 SDK 发来的数据后,会对数据做一些预处理并将数据写入到消息队列 Kafka 供下游各类计算模块使用。本文将介绍订阅 Kafka 数据的方法。
一些要求
订阅数据需要满足以下要求:
- 启动订阅的机器需与部署神策分析的机器在同一个内网,且必须可以解析神策分析服务器的 host;
- 请选用兼容的 Kafka 客户端版本,高版本服务端兼容低版本客户端,反之则可能存在兼容性问题。神策 Kafka 服务端版本一部分早期用户为 0.8.2.x,后期新用户为 0.10.x,具体情况可在服务器上查看;
- 仅私有部署版支持通过 Kafka 订阅数据;
- 如果在自己的机器上订阅数据,需要先在自己机器上 hosts 中配上神策的服务器,订阅的时候 zookeeper 填写所有机器的 hostname,例如:hostname1:2181,hostname2:2181,hostname3:2181;
订阅参数
参数名称 | 参数值 |
---|---|
topic | event_topic |
partition | 单机 3 个/集群 10 个 |
zookeeper | hostname1:2181,hostname2:2181,hostname3:2181 |
broker | hostname1:9092,hostname2:9092,hostname3:9092 |
注:在神策高版本数据流作为组件被独立出来,对事件和用户数据的 topic 进行了拆分,如果需要使用此功能,需和神策技术支持确认具体需要订阅的 topic 有哪些。
订阅数据
订阅有多种方式,可以选择一种适合使用场景的方式。
下面给出两种 Shell 方式启动订阅的示例,使用 Shell 方式可以通过重定向标准输出将数据写入文件后处理或直接用管道作为其他进程的输入,可以对接各种编程语言实现的处理程序。当然也可以使用原生 API 实现订阅,参数与 Shell 方式的一样,这里不再介绍。
使用 Kafka Console Consumer
可以使用 Kafka 自带的 Kafka Console Consumer 通过命令行方式订阅,例如从最新数据开始订阅:
bin/kafka-console-consumer.sh --zookeeper hostname:2181 --topic event_topic
# 若 SP 大于 1.18 (上述命令提示没有 zookeeper 参数) 可使用下面的命令
bin/kafka-console-consumer.sh --bootstrap-server <bootstrap-server>:9092 --topic event_topic
BASH
可以将 stdout 输出到文件或作为其他数据处理进程的输入数据。
Kafka 订阅样例
请参考下面的 github 链接中的样例实现
数据格式
订阅的数据的格式请参考数据格式。
注:本文档内容为神策产品使用和技术细节说明文档,不包含适销类条款;具体企业采购产品和技术服务内容,以商业采购合同为准。