从外部 Kafka 接入数据的方案
最后更新于:2018-03-13 12:44:26
本文档所描述的内容属于神策分析 ( Sensors Analytics ) 的高级使用功能,涉及较多技术细节,适用于对相关功能有经验的用户参考。如果对文档内容有疑惑,请咨询您的数据咨询顾问获取一对一的协助。
1. 概述
Sensors Analytics 数据接入一般使用各语言的 SDK 或我们提供的批量或流式数据导入工具来完成。
在一些特殊情况下,我们提供从外部 Kafka 接入数据,若使用这种方式,请先确认以下几点:
- 从外部 Kafka 接入数据与使用数据接入 API 接入(直接使用 SDK 发送或使用 LogAgent)的方式冲突,只能选择一种;
- 对接的外部 Kafka 版本需要是 0.8.2.x;
- 接入数据的 topic 只能有 1 个 partition;
- 接入数据的 topic 中的数据需要符合我们提供的格式,具体格式在下面会介绍;
- 不支持接入多个 topic ,不支持更改 topic。
使用这种方式需要联系值班同学手工配置接入参数,需要提供的内容包括:
- 接入数据的 Kafka 的 zookeeper 地址和端口号;
- 接入数据的 Kafka 所有 broker 的地址和端口号;
- 接入数据的 topic 名称;
更改接入方式后,将从 topic 最新进度开始读取数据,之前的数据请使用其他方式导入如批量导入工具。
2. 数据格式
一条数据样例格式化后如下:
{
"content":{
"distinct_id":"2b0a6f51a3cd6775",
"time":1469421930554,
"type":"track",
"event":"ViewProduct",
"properties":{
"$manufacturer":"Apple",
"$model":"iPhone 5",
"$os":"iOS",
"$os_version":"7.0",
"$app_version":"1.3",
"$wifi":true,
"$ip":"180.79.35.65",
"$province":"湖南",
"$city":"长沙",
"$screen_width":320,
"$screen_height":640,
"product_id":12345,
"product_name":"苹果",
"product_classify":"水果",
"product_price":14
}
},
"nginx_time":1469421931554,
"project":"test_project"
}
各字段说明如下:
content
:必须字段,数据内容。该字段内容的格式请参考 数据格式;nginx_time
:必须字段,向 Kafka 中发送数据时的 Unix 时间戳,精确到毫秒;project
:可选字段,这条数据所导入的项目。若content
中也有project
字段,以content
中的为准。
注意:每条数据作为一条 Kafka Message;