本文档所描述的内容属于神策分析的高级使用功能,涉及较多技术细节,适用于对相关功能有经验的用户参考。如果对文档内容有疑惑,请咨询您的数据咨询顾问获取一对一的协助。
神策分析 数据接入一般使用各语言的 SDK 或我们提供的批量或流式数据导入工具来完成。
在一些特殊情况下,如果用户希望实现自己的接入工具,可以参考本文档。
若无特殊需求,建议使用我们的 SDK 或工具来进行数据接入,以避免未知的问题,并方便以后新功能的使用。例如当使用的编程语言没有对应的 SDK 时,可以考虑使用 LogAgent 或其他批量导入工具。
外部数据接入神策分析分为几个步骤:
在神策分析数据接入过程中,每条数据(包括任何事件行为和用户属性数据)都是一个符合数据格式的 Json。
例如:
当希望一次发送多条数据时,可以构造一个 Json 数组,每个元素是一个完整的 Json。
- 建议一次最多不超过 50 条数据;
- 仅发送一条可以使用长度为 1 的 Json 数组。
例如:
本步骤主要是将 中的 或 进行编码。其下几个子步骤需要顺次执行。
- 请使用 UTF-8 编码;
为了优化数据传输,可以先对数据进行 Gzip 压缩。
- 此为可选步骤,可以不压缩。
为了更好的兼容各种传输方式,需要对数据进行 base64 编码。若进行了 ,则将压缩后的数据进行 base64 编码;否则直接将要传输的 或 进行 base64 编码。
由于需要兼容数据作为 URL 参数传输,故需要对 得到的结果进行 UrlEncode,这个步骤可能是由浏览器或数据发送框架完成的。
2.4.1 一条 Json 数据
如果处理的是一条 Json 数据,request 格式如下:
- data:即为 得到的编码结果;
- gzip:是否进行了 Gzip 压缩;
2.4.2 多条 Json 构成的数组
如果是一次发送多条 Json 构成的数组,request 格式如下:
- data_list:即为 得到的编码结果;
- gzip:是否进行了 Gzip 压缩;
本节演示对样例数据进行编码,假设数据已经写入到了 文件中:
先对数据进行 Gzip 并进行 base64 编码,在 Linux 下可使用如下命令:
得到结果:
再对数据进行 UrlEncode 编码,如使用在线工具(http://tool.chinaz.com/tools/urlencode.aspx)。
样例数据 UrlEncode 编码得到:
拼装 request:
即将编码后的数据发送到神策分析接收数据的 API。
API 地址:
如果使用神策分析 Cloud 服务,则:
- 数据接收地址,建议使用不带端口号的: http://{$service_name}.datasink.sensorsdata.cn/sa?project={$project_name}&token={$project_token}
- 数据接收地址,带端口号的: http://{$service_name}.cloud.sensorsdata.cn:8106/sa?project={$project_name}&token={$project_token}
如果用户使用单机版私有部署的神策分析,默认的配置信息为:
- 数据接收地址: http://{$host_name}:8106/sa?project={$project_name} (注:神策分析 1.7 及之前的版本,单机版私有部署默认端口号为 8006)
如果用户使用集群版私有部署的神策分析,默认的配置信息为:
- 数据接收地址: http://{$host_name}:8106/sa?project={$project_name}
其中 可以是集群中任意一台机器。
如果私有部署的过程中修改了 Nginx 的默认配置,或通过 CDN 等访问神策分析,则请咨询相关人员获得配置信息。
例如,以 Cloud 服务为例,使用 curl 发送:
- 如果没有特殊情况,不建议自己实现上面的接入流程,而是使用 SDK 或工具的方式接入数据。
- 神策分析是异步处理接收的数据,所以发送完成后需要等待片刻才能查询到。
本地反编码一条数据查看内容可以通过: