帮助中心 > 技术文档 > 基础知识 > 接入流程

海纳嗨数平台提供了全端数据接入方案:

  • 客户端 SDK
  • 服务端 SDK
  • 数据导入

1. 总体接入流程

当您需要数据接入,实现数据采集及分析时,一般需要以下三个步骤:
第一步:首先租户对接我们的数据分析师,根据实际业务需求一起整理并梳理出精准的数据采集方案;
第二步:根据数据采集方案和相关需求,按需要进行具体的接入工作,可使用SDK埋点或者数据导入方式,由租户的研发人员根据数据采集方案完成数据接入;
第三步:通过海纳嗨数平台,进行数据测试和验证,完成验证后即可上线到正式环境。

2. 全端接入方案

客户端 SDK:可以采集到设备信息,不给租户服务器增加压力,接入简单易用。
服务端 SDK:适合采集核心业务数据,采集内容更加精准,方便租户升级迭代。
数据导入工具:通常用于历史数据导入。

2.1 标识用户

标识用户,是指选择一个合适的标识符(例如设备 ID 或者注册 ID)作为 distinct_id 来发送数据到海纳嗨数云。选择合适的 distinct_id 对数据分析的准确性会有很大影响,因此,在进行任何数据接入之前,都应当先确认您的用户识别方式。海纳嗨数提供了灵活、强大的用户识别能力,您可以根据自己的需求来选择合适的方案,具体请阅读文档 用户识别。如果您依然不确定如何进行用户识别,请联系及时联系海纳嗨数的数据分析师。

2.2 客户端埋点

方案一:直接使用海纳嗨数客户端 SDK。这个方案相对简单、易用,并且海纳嗨数 SDK 提供了可靠性保证(例如网络不好的情况下延迟发送)。一般情况下,我们建议采用此方案。
方案二:使用已有的业务 API,把埋点需要的数据同步传到业务服务器,然后在服务端再使用海纳嗨数的服务端 SDK(Java SDK) 进行接入。这个方案本质上其实是服务端埋点,优点是对于业务统计可能会更加准确(因为和业务调用是同步的),安全性比较高(可以进行一定的客户端加密来增大伪造数据的难度),缺点是实施难度较大。我们一般建议对于关键的业务事件(例如购买、支付等)采用这种方案。

2.3 服务端埋点

不管是客户端的埋点数据通过 API 发送给服务端之后,还是直接在服务端的已有业务逻辑里直接埋点,都属于服务端接入。服务端接入可以使用 服务端 SDK,且在一般情况下,我们都建议在服务的入口处(例如 MVC 的 Controller 层)进行埋点,这样既能获取到大部分埋点所需要的数据,又方便统一管理,每个 SDK 均有不同类型的发送方案(即 Consumer)可以选择,有两大类方案:

方案一:使用直接发送数据的 Consumer(例如 Java 的 AsyncBatchConsumer),实时的发数据给海纳嗨数的服务。优点是方便简单,缺点是在机器故障或者超大流量的极端情况下可能会丢失一小部分数据,并且可能对业务造成一定影响。如果数据量不大可以使用此方案。
方案二:使用写入本地日志的 Consumer(例如 Java 的 LoggingConsumer),配合 LogAgent 进行导入。优点是因为有本地持久化,可靠性会更高,缺点是代码会稍微复杂,同时还需要自己负责本地日志的存储和删除等运维操作。建议在大数据量或者对数据准确性有高要求的时候使用此方案。

2.4 数据导入

如果客户您不需要对历史数据分析或不存在历史数据,则可忽略。
对于已存在的历史数据,我们则可以通过海纳数嗨导入工具(DataX 、dataimporter、Logstash + Filebeat)进行导入。其中dataimporter针对是小数据量,DataX大数据量针对不同形式的导入。

作者:曹诗语  创建时间:2023-02-28 14:43
最后编辑:刘建雄  更新时间:2024-07-26 10:00