# 大数据埋点采集 **Repository Path**: chengxianggit/big-data-acquisition ## Basic Information - **Project Name**: 大数据埋点采集 - **Description**: 大数据埋点采集,方便0起点大数据开发 - **Primary Language**: Lua - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2024-05-17 - **Last Updated**: 2024-05-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 大数据埋点采集 #### 介绍 在大数据开发从业人员中相信很多涉及的工作内容以离线计算居多,对数据是怎么采集的,如何采集,数据结构该设计没有清晰的了解 在查阅相关数据产品后发现了某开源的SDK,数据模型设计非常的巧妙,支持全量埋点和自定义埋点数据采集,本接口经过相关测试,已可兼容该SDK采集数据 后续可接入Flume、Flink、Spark、Hive等相关大数据进行数据分析,希望能帮助企业快速搭建大数据分析平台 本接口项目基于openresty开发 该代码进行了初略的性能测试,在400QPS下,8C32G服务器CPU占用仅10%左右,消息数据采用异步提交,在单机压力在4000QPS情况下不需要通过日志轮转的形式去采集数据 #### 资料链接 kafka客户端项目链接 https://github.com/doujiang24/lua-resty-kafka SDK 开源项目地址 https://github.com/sensorsdata SDK使用说明请参考 https://manual.sensorsdata.cn/sa/latest/sdk-1573786.html OpenResty https://www.nginx.com/resources/wiki/modules/lua/ #### 使用说明 添加以下nginx配置 #kafka采用异步提交记得开启code cache 不然会频繁创建定时器导致接口异常 lua_code_cache on; location =/sa { default_type application/json; content_by_lua_file /xxx/sa.lua; } location =/sa.gif { default_type application/json; content_by_lua_file /xxx/sa.gif.lua; } #android、IOS SDK需要调取接口获取sdk相关状态 location =/config/iOS.conf { default_type application/json; echo '{"v":"v2","configs":{"disableSDK":false,"disableDebugMode":false}}'; } location =/config/Android.conf { default_type application/json; echo '{"v":"v3","configs":{"disableSDK":false,"disableDebugMode":false}}'; } #### 遇到过的问题 在kafka客户使用过程中发现提交数据没有消息创建时间,参考了以下的解决办法调整了kafka的源代码和调用代码 https://github.com/doujiang24/lua-resty-kafka/issues/135 调整后代码已有注释体现 --指定版本,不然消息没时间 producer.assign_api_version = 2 如有侵权请联系处理 vx:ishenglx