数据接入 API

最后更新于:2018-08-09 16:47:37

本文档所描述的内容属于神策分析的高级使用功能,涉及较多技术细节,适用于对相关功能有经验的用户参考。如果对文档内容有疑惑,请咨询您的数据咨询顾问获取一对一的协助。

神策分析 数据接入一般使用各语言的 SDK 或我们提供的批量或流式数据导入工具来完成。

在一些特殊情况下,如果用户希望实现自己的接入工具,可以参考本文档。

若无特殊需求,建议使用我们的 SDK 或工具来进行数据接入,以避免未知的问题,并方便以后新功能的使用。例如当使用的编程语言没有对应的 SDK 时,可以考虑使用 LogAgent 或其他批量导入工具。

外部数据接入神策分析分为几个步骤:

1. 生成数据

在神策分析数据接入过程中,每条数据(包括任何事件行为和用户属性数据)都是一个符合数据格式的 Json。

例如:

{

"distinct_id": "2b0a6f51a3cd6775",

"time": 1434556935000,

"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.0

}

}

当希望一次发送多条数据时,可以构造一个 Json 数组,每个元素是一个完整的 Json。

建议一次最多不超过 50 条数据;

仅发送一条可以使用长度为 1 的 Json 数组。

例如:

[

{

"distinct_id":"2b0a6f51a3cd6775",

"time":1434556935000,

"type":"track",

"event":"ViewProduct",

"properties":{

"product_name":"苹果",

"product_classify":"水果",

"product_price":14

}

},

{

"distinct_id":"12345",

"type":"profile_set",

"time":1435290195610,

"properties":{

"Age":33,

"IncomeLevel":"3000~5000"

}

}

]

2. 编码

本步骤主要是将 1.生成数据 中的 Json 或 Json 数组 进行编码。其下几个子步骤需要顺次执行。

请使用 UTF-8 编码;

2.1 进行 Gzip 压缩(可选)

为了优化数据传输,可以先对数据进行 Gzip 压缩。

此为可选步骤,可以不压缩。

2.2 进行 Base64 编码(必须)

为了更好的兼容各种传输方式,需要对数据进行 Base64 编码。若进行了 2.1 进行 Gzip 压缩,则将压缩后的数据进行 Base64 编码;否则直接将要传输的 Json 或 Json 数组 进行 Base64 编码。

2.3 进行 UrlEncode 编码(必须)

由于需要兼容数据作为 URL 参数传输,故需要对 2.2 进行 Base64 编码 得到的结果进行 UrlEncode,这个步骤可能是由浏览器或数据发送框架完成的。

2.4 拼装 request

2.4.1 一条 Json 数据

如果处理的是一条 Json 数据,request 格式如下:

data=xxxxx&gzip=1data:即为 2.3 进行 UrlEncode 得到的编码结果;

gzip:是否进行了 Gzip 压缩;

2.4.2 多条 Json 构成的数组

如果是一次发送多条 Json 构成的数组,request 格式如下:

data_list=xxxxx&gzip=1data_list:即为 2.3 进行 UrlEncode 得到的编码结果;

gzip:是否进行了 Gzip 压缩;

2.4 编码例子

本节演示对样例数据进行编码,假设数据已经写入到了 data.json 文件中:

[

{

"distinct_id":"2b0a6f51a3cd6775",

"time":1434556935000,

"type":"track",

"event":"ViewProduct",

"properties":{

"product_name":"苹果",

"product_classify":"水果",

"product_price":14

}

},

{

"distinct_id":"12345",

"type":"profile_set",

"time":1435290195610,

"properties":{

"Age":33,

"IncomeLevel":"3000~5000"

}

}

]

先对数据进行 Gzip 并进行 Base64 编码,在 Linux 下可使用如下命令:

cat data.json | gzip | base64 -w 0

得到结果:

H4sIAFsmElcAA4vmUgCCajAJAkopmcUlmXnJJfGZKUpWSkZJBolmaaaGicbJKWbm5qZKOgiVJZm5qUpWhibGJqamZpbGpgYGBsiylQVAWaWSosTkbGRdqWWpeSVAibDM1PKAovyU0uQSZOmCovyC1KKSzNRiJSuEq2BSINXxeYkge5VedO98Nm8Okl4URck5icXFmWmVQIXPNmzBo7CgKDMZ7A24dC2YVauDP2QMjYD+VsL0MNDctMyc1Pji1BKsgWVqZGlgaGlqZmhAnK8d04H6jI3RXO+Zl5yfm+oDDMwcoJ3GwKCvA4W/EronuGIBDY0g6OEBAAA=

样例数据 UrlEncode 编码得到:

H4sIAFsmElcAA4vmUgCCajAJAkopmcUlmXnJJfGZKUpWSkZJBolmaaaGicbJKWbm5qZKOgiVJZm5qUpWhibGJqamZpbGpgYGBsiylQVAWaWSosTkbGRdqWWpeSVAibDM1PKAovyU0uQSZOmCovyC1KKSzNRiJSuEq2BSINXxeYkge5VedO98Nm8Okl4URck5icXFmWmVQIXPNmzBo7CgKDMZ7A24dC2YVauDP2QMjYD%2bVsL0MNDctMyc1Pji1BKsgWVqZGlgaGlqZmhAnK8d04H6jI3RXO%2bZl5yfm%2boDDMwcoJ3GwKCvA4W%2fEronuGIBDY0g6OEBAAA%3d

拼装 request:

gzip=1&data_list=H4sIAFsmElcAA4vmUgCCajAJAkopmcUlmXnJJfGZKUpWSkZJBolmaaaGicbJKWbm5qZKOgiVJZm5qUpWhibGJqamZpbGpgYGBsiylQVAWaWSosTkbGRdqWWpeSVAibDM1PKAovyU0uQSZOmCovyC1KKSzNRiJSuEq2BSINXxeYkge5VedO98Nm8Okl4URck5icXFmWmVQIXPNmzBo7CgKDMZ7A24dC2YVauDP2QMjYD%2bVsL0MNDctMyc1Pji1BKsgWVqZGlgaGlqZmhAnK8d04H6jI3RXO%2bZl5yfm%2boDDMwcoJ3GwKCvA4W%2fEronuGIBDY0g6OEBAAA%3d

3. 发送数据

即将编码后的数据发送到神策分析接收数据的 API。

API 地址:

如果使用神策分析 Cloud 服务,则:

如果用户使用单机版私有部署的神策分析,则:

如果用户使用集群版私有部署的神策分析,则:

其中 {$host_name} 可以是集群中任意一台机器。

如果私有部署的过程中修改了 Nginx 的默认配置,或通过 CDN 等访问神策分析,则请咨询相关人员获得配置信息。

例如,以 Cloud 服务为例,使用 curl 发送:

curl -v \

--data 'gzip=1&data_list=H4sIAFsmElcAA4vmUgCCajAJAkopmcUlmXnJJfGZKUpWSkZJBolmaaaGicbJKWbm5qZKOgiVJZm5qUpWhibGJqamZpbGpgYGBsiylQVAWaWSosTkbGRdqWWpeSVAibDM1PKAovyU0uQSZOmCovyC1KKSzNRiJSuEq2BSINXxeYkge5VedO98Nm8Okl4URck5icXFmWmVQIXPNmzBo7CgKDMZ7A24dC2YVauDP2QMjYD%2bVsL0MNDctMyc1Pji1BKsgWVqZGlgaGlqZmhAnK8d04H6jI3RXO%2bZl5yfm%2boDDMwcoJ3GwKCvA4W%2fEronuGIBDY0g6OEBAAA%3d' \

http://{$service_name}.cloud.sensorsdata.cn:8106/sa?project={$project_name}&token={$project_token}

4. 其他

如果没有特殊情况,不建议自己实现上面的接入流程,而是使用 SDK 或工具的方式接入数据。

神策分析是异步处理接收的数据,所以发送完成后需要等待片刻才能查询到。

本地反编码一条数据查看内容可以通过:

UrlDecode > data # 将数据 UrlDecode(这步没有好用的 bash 命令,可以使用在线工具)

cat data | base64 -d | gzip -d

okl4 linux,数据接入 API相关推荐

  1. 10-11月数据接口-京东商品信息api,金碟Api对接,京东商智监控商品request采集后指数还原,聚水潭第三方接入api,拼多多上架辅助非第三方SKU核对上传,拼多多销量无限修改更新

    茶壶煮饺子: 1.京东商品信息api: http://app.miiow.com.cn:8181/ajaxApi.ashx/@/dontlogin/sycm/getJDItemBaseInfo?ite ...

  2. GitHub 4K+Star!SpaceX火箭数据开放API接口,可用Python进行抓取分析

    (推荐搜索) 梅宁航 发自 凹非寺 量子位 报道 | 公众号 QbitAI 马斯克用火箭把人送上天,SpaceX粉丝把火箭有关信息贴到GitHub. 4k+ Star,GitHub热榜,SpaceX粉 ...

  3. 阿里云 EMR Delta Lake 在流利说数据接入中的架构和实践

    简介: 为了消灭数据孤岛,企业往往会把各个组织的数据都接入到数据湖以提供统一的查询或分析.本文将介绍流利说当前数据接入的整个过程,期间遇到的挑战,以及delta在数据接入中产生的价值. 背景 流利说目 ...

  4. Linux系统接口ioc,Linux下SCSI API研究及应用

    Linux下SCSI API研究及应用 Linux SCSI体系结构及API数据结构的操作原理和相关的系统调用,运用SCSI API实现了有关的数据存储. 关键词: SCSI通用驱动器  SCSI接口 ...

  5. GMSL高带宽数据接入的方法

    1.GMSL简介 GMSL:Gigabit Multimedia Serial Link是Maxim公司推出的一种高速串行接口,适用于视频.音频和控制信号的传输,使用50Ω同轴电缆或100Ω屏蔽双绞线 ...

  6. GMSL高带宽视频数据接入的方法

    随着汽车智能化的不断提升,特别是高级辅助驾驶系统(ADAS)的普及, 越来越多的车载摄像头和传感器需要与汽车电子控制单元(ECU)进行数据通信, 对车内数据传输的带宽.实时性和稳定性的要求也越来越高, ...

  7. Linux内核scatterlist API介绍 DMA SG搬移

    Linux内核scatterlist API介绍 1. 前言 我们在那些需要和用户空间交互大量数据的子系统(例如MMC[1].Video.Audio等)中,经常看到scatterlist的影子.对我们 ...

  8. 政府大数据平台标准规范-数据接入

    搞政府大数据平台的,标准规范是一个绕不过去的内容,而且政府项目对标准规范貌似都特别看重,这是与做企业项目很大的不同.政府大数据平台的标准规范可以从以下几个方面制订: 数据接入,包括结构化.非结构化数据 ...

  9. 顺丰快递业务接入API总览-快递鸟

    顺丰业务接入API,为使用顺丰服务的商家使用.自研工具,三方ERP等需使用顺丰的下单,面单打印,轨迹查询等服务,可选择此类接入. 1.零担快递类 适用于顺丰0~3000KG产品的物流服务,适用于B2C ...

最新文章

  1. HTML DOM appendChild() 方法
  2. pcie 设备号多少位_怎么读取PCIe设备的VPD信息?
  3. 我常用的python函数(part2)--executemany方法
  4. Integer源码解析
  5. 实验四——多分支结构及本章总结
  6. 【OpenCV】OpenCV函数精讲之 -- 教你如何使用离散傅里叶变换
  7. Android Jetpack 之 ViewModel
  8. T-SQL: Batches
  9. 《疯狂Java讲义》(三十)---- Annotation
  10. 2022芒果TV算法赛_用户下一个观看视频预测_baseline_CF召回YoutubeDNN
  11. 什么是验收测试?一份详细向导
  12. Mac中Caps Lock(大写锁定键)为Control键(Emacs解放小拇指.)
  13. 全站仪外业测绘数据导入CAD图中技巧
  14. Numpy中数据的常用的保存与读取方法
  15. 23_ElsaticSearch 搜索推荐ngram分词机制实现index-time
  16. 时间戳服务器作用,时间戳服务器
  17. 符号“|=”是什么意思?
  18. 218 扑克牌(数学期望)
  19. 977. 有序数组的平方
  20. 源码迁移:Porting Advisor

热门文章

  1. 2021年高压电工考试报名及高压电工试题及解析
  2. CodeForces 891E Lust(生成函数)
  3. 项目经理:Redis缓存都会用,那使用后的效益和成本怎么估算?
  4. 我6个月的学习编程经历:从”大齿怪“到“狂欢者”
  5. 【Linux】第二篇:Linux环境及开发工具
  6. 几种生态廊道构建概念、方法和工具的本质比较
  7. Qgis 使用QuickOSM插件导入开源地图
  8. MATLAB入门教程(4):矩阵的生成
  9. SpringBoot+Vue+Element-UI实现人事管理系统
  10. 软件设计文档国家标准