日志埋点 与 前台/中台/后台¶
一、日志埋点¶
日志埋点是一种在业务系统的程序中植入收集事件数据的SDK(工具代码)以进行各种事件收集的技术,这些数据是数据仓库的主要来源。
1.1 定义与类型¶
定义:日志埋点是指在代码中定义特定的事件点,当这些事件发生时,会自动记录相关的日志信息。这些事件点可以植入到业务系统的后端程序(如Java、PHP等)中,也可以植入到前端程序(如原生APP、页面JS、微信小程序)中。
类型: - 客户端埋点:监控APP当地发生的事件,如APP某页面曝光。一旦APP客户端加载了该页面,客户端埋点就会发送相应信息。 - 服务端埋点:通常较少使用,埋点方式也较为通用。 - H5埋点:可能是APP中跳转到的某个H5页面(如运营活动页)上的埋点,也可能是Web某页面上的埋点。
1.2 实现方式¶
手动埋点: - 步骤:产品经理提出埋点需求,确定页面和事件的编码命名(若事件数不多,页面编码命名可省略),并告知前端开发需要上传的参数。开发明确需求后,在关键事件触发点(如按钮点击、页面加载完成等)插入埋点代码。 - 优点:简单灵活,对埋点中需要上传信息的字段可进行个性化选择,满足复杂业务场景。 - 缺点:沟通成本高,埋点周期长。如果出现漏埋情况,必须依赖下一版本发版才能补上漏埋的埋点。
全自动埋点: - 优点:从根本上解决漏埋问题,缩短埋点周期。无需对页面、控件是否需要进行埋点做区分,需要数据时直接取数据。 - 缺点:一套SDK对应一套数据上传方式,个性化的数据采集无法满足。一般只能对页面曝光、关闭,控件点击这种通用事件进行全自动埋点。数据传输压力大,可能有很多上传的信息是不需要的。
半自动埋点:结合手动埋点和全自动埋点的优点,通过SDK自助进行埋点,但仍需要产品经理和开发沟通。
1.3 数据结构与解析¶
- 数据结构:埋点会生成统一格式的数据文件,通常为JSON格式。各终端渠道的埋点日志都由公共属性字段和事件属性字段组成。不同终端渠道,公共属性字段略有不同;事件属性则根据事件类型灵活多样。
- 数据解析:解析日志涉及两张表,分别记录文件状态和日志数据。通过定时调度进行解析,可以建立日志管理系统或利用第三方日志管理工具进行解析和分析。
1.4 应用场景与价值¶
应用场景: - 用户行为分析:通过记录用户的操作行为来分析用户的行为习惯和偏好。 - 性能监控:记录应用程序的性能数据,如响应时间、资源消耗等,帮助优化程序性能。 - 异常跟踪:记录异常信息,帮助快速定位和排除bug。
价值: - 作为监控工具,可以观察APP的长期表现。 - 作为基础原料,进行复杂的运算,用于用户标签、渠道转化分析、个性推荐等。
1.5 实施步骤¶
- 确定埋点需求:明确目标和需求,如追踪用户的点击行为、页面停留时间、错误日志等。
- 选择埋点工具:根据需求和预算选择合适的埋点工具,如Google Analytics、Mixpanel、Flurry等。
- 编写埋点代码:在应用程序的相关代码中插入埋点代码。
- 配置埋点参数:在埋点工具的后台管理界面中配置埋点参数,包括事件名称、事件属性、触发条件等。
- 验证和分析数据:验证埋点是否生效,并通过埋点工具的分析功能查看和分析收集到的数据。
综上所述,日志埋点是一种非常重要的数据收集方式,可以帮助企业更好地了解用户行为、优化产品性能和快速定位问题。在实施日志埋点时,需要根据具体需求选择合适的埋点方式和工具,并遵循实施步骤进行操作。
二、前台、中台、后台架构¶
在企业架构和软件开发中,"前台"、"中台"和"后台"分别指代不同层次的系统或组件,它们各自承担着不同的功能和角色,共同构成了企业的信息系统架构。
2.1 前台(Frontend)¶
前台通常指的是直接面向用户的应用程序或系统界面,它是用户与系统互动的第一接触点。前台的主要目标是提供良好的用户体验,让用户能够方便快捷地完成他们的任务。
- 用户界面:前台通常包括用户界面(UI),如网页、移动应用、桌面应用等。这些界面设计需要注重美观性和交互性,以吸引用户并提升用户满意度。
- 交互性:前台需要处理用户输入,并能快速响应用户操作。这要求前台系统具备高效的交互机制和实时响应能力。
- 技术栈:前台开发常用的技术栈包括前端框架(如React、Vue.js、Angular等)、CSS框架(如Bootstrap、Tailwind CSS等)、JavaScript库(如jQuery、Lodash等)以及HTML/CSS/JavaScript等基础技术。
2.2 中台¶
中台是指位于前台和后台之间的一层,它负责协调前后台之间的通信,并提供一系列共享服务和支持功能。中台的概念近年来在中国互联网企业中尤为流行,尤其是在阿里巴巴等公司的实践中得到了广泛的推广。
- 共享服务:中台提供一系列可复用的服务,如用户管理、支付处理、消息推送等。这些服务可以被前台系统直接调用,从而避免重复开发和资源浪费。
- 数据处理:中台负责数据的清洗、转换和存储等操作。它可以将来自不同来源的数据进行整合和标准化,为前台和后台提供统一的数据视图。
- 集成与协调:中台充当了前台与后台之间的桥梁,协调不同系统之间的交互。它可以通过微服务架构、API网关、消息队列等技术手段实现服务的解耦和灵活部署。
- 类型:中台包括业务中台、技术中台、数据中台、算法中台等。业务中台整合各个项目的共通业务成通用的服务平台,技术中台提供通用的底层框架,数据中台进行数据统计和分析,算法中台提供算法支持。
2.3 后台(Backend)¶
后台通常指的是处理业务逻辑、数据存储和系统管理等功能的部分。后台系统是支持前台和中台运作的基础,负责处理复杂的计算、数据存储和业务逻辑。
- 业务逻辑:后台负责处理复杂的业务逻辑,如订单处理、库存管理、用户认证等。这些逻辑是前台系统无法直接处理的,需要后台系统提供支持和保障。
- 数据存储:后台包含数据库管理系统(DBMS),用于数据的持久化存储。这些数据库可以存储用户信息、商品信息、订单信息等关键数据,为前台和中台提供数据支持。
- 系统管理:后台还包括系统管理功能,如用户认证、权限控制等。这些功能可以确保系统的安全性和稳定性,防止未经授权的访问和操作。
- 技术栈:后台开发常用的技术栈包括后端框架(如Spring Boot、Django、Ruby on Rails等)、数据库(如MySQL、PostgreSQL、MongoDB等)、服务器(如Apache、Nginx等)以及编程语言(如Java、Python、Ruby、Go等)。
2.4 三者的协同作用¶
在企业中,前台、中台和后台是相互依存、相互支持的。它们共同构成了企业的信息系统架构,并发挥着各自的作用。
- 前台:作为用户与系统互动的第一接触点,前台需要具备良好的用户体验和交互性。它可以通过调用中台提供的共享服务和后台处理的业务逻辑来响应用户的需求。
- 中台:作为前后台之间的桥梁和纽带,中台提供了一系列可复用的服务和支持功能。它可以将前台的需求转化为后台可以处理的业务逻辑,并将后台处理的结果返回给前台进行展示。
- 后台:作为支持前台和中台运作的基础,后台负责处理复杂的计算、数据存储和业务逻辑。它可以通过提供RESTful API或GraphQL等接口来供前台或中台调用,实现数据的交互和共享。
综上所述,前台、中台和后台在企业信息系统架构中扮演着不同的角色和承担着不同的功能。它们相互依存、相互支持,共同构成了企业的信息系统架构,并为企业的发展提供了有力的支持。
三、数据仓库、大数据平台与数据中台¶
3.1 什么是数据仓库¶
数据库的概念,大家应该都不陌生,而数据仓库其实就是数据库概念的升级版。
数据仓库是为了解决数据库负载有限、满足企业新增的分析需求而被设计出来的。如果数据想要从各个数据库迁移到统一数据仓库中,就需要经历抽取、转化、加载(ETL),最终变身成可以直接被业务人员分析的结构化/半结构化的数据。在数据仓库后面,企业常用BI分析数据,产生报表,辅助决策。
蔬菜储存的例子: - 如果我们把地里的蔬菜看作是数据,那么土地就是数据库 - 蔬菜成熟后,摘下来放在地窖,地窖就是数据仓库 - 拔菜、择菜、放菜这三个步骤,就是ETL过程 - 存放到地窖里的干净健康的蔬菜,就是结构化/半结构化的数据 - 一个地窖可以存放各种各样的蔬菜,所以数据仓库可以储存来自于多个数据源的数据 - 从地窖里拿蔬菜去做菜,就是用BI进行分析,做好的成品就是分析报表
总而言之,数据仓库就是一个"为企业实现数据模型构建"的产品。
3.2 什么是数据平台¶
前面讲了数据仓库存储的是结构化和半结构化的数据,那非结构化的数据该由谁来储存呢?对,就是数据平台。
数据平台是为了解决数据仓库不能处理非结构化数据和报表开发周期长的问题而产生的,它先是将企业所有格式的数据都抽取出来放到一起,形成一个大的数据集,再根据业务需求,单独提取其中的小数据集提供给数据应用。
3.3 什么是大数据平台¶
大数据平台是数据平台在大数据时代的概念衍生,其功能要远胜于数据平台。
大数据平台是一个以处理海量数据存储、计算以及流数据实时计算等场景为主的技术堆栈,包括数据采集、数据存储、数据计算、数据应用和任务调度,最典型的是基于Hadoop生态构建的大数据平台。在非结构数据、实时数据和海量数据的计算和存储压力下,企业才选择从数据仓库转向大数据平台。
汽车工厂的例子: - 如果我们把汽车工厂生产汽车的过程看作是企业利用数据决策的过程,那么各种原材料就是数据 - 工厂中的设备就是大数据平台 - 工厂设备运作所必须的水和电就是大数据平台的框架Hadoop - Hadoop提供大数据生产所必须的计算和存储资源,大数据平台使得数据开发人员具备对数据的加工和处理能力
总而言之,大数据平台就是一个"为企业解决海量、实时数据存储和计算问题"的技术平台。
3.4 什么是数据中台¶
要理解"数据中台",我们要先理解"中台"。
中台是相对于"前台和后台"来讲的: - 前台:直接和用户打交道,包括用户直接交互的界面(如手机app),还有服务端响应用户请求的业务逻辑(如商品查询) - 后台:用户看不见摸不着,但是不可或缺,包括面向内部运营人员的管理系统、配置系统,后台为前台提供配置
按照传统"前台-后台"架构,企业业务的增多会导致很多前台和很多后台产生。但实际上,在这么多的前台中,其实有很大一部分模块或功能是重复的。为了不重复造轮子,为了提高开发效率,就需要一个统一的平台来承接共性的功能模块,作为众多前台和众多后台的桥梁,于是中台就出现了。
中台这个概念最先起始于"鼻祖"阿里的"大中台、小前台"概念,随后业界又衍生出业务中台、技术中台、数据中台、安全中台、算法中台等等。这其中,最通用、最热门、最具行业共性的就是"数据中台"。
数据中台的出现很好地解决了企业数据后台开发无法快速跟上前台业务需求变化、业务系统数据孤岛且数据繁杂这两大难题,帮助企业打通各业务系统的数据,让数据真正变成资产并服务于业务。
制作菜品的例子: - 如果我们把成品饭菜看作是前台,那么做饭的厨房就是后台,各种蔬菜和调料就是数据 - 一家饭店专门卖凉面、凉皮、凉粉等,这些菜用的调味汁是同样的调味料按照同样的比例调制而成的 - 为了更快出餐,饭店决定用一大桶调制好的调味汁代替一餐一次调味 - 这里调制一桶调味汁的过程就相当于构建了一个数据中台 - 一桶调料汁的完成,饭菜从厨房原材料到成品给到客户的速度加快了,这说明数据中台可以加速企业从数据到业务价值的过程,为业务提供速度更快的服务
总而言之,数据中台就是一套可持续的"让企业的数据用起来"的机制。
3.5 小结¶
最后,给大家做个总结: - 数据仓库 = 产品 - 大数据平台 = 平台 - 数据中台 = 机制
相比数据仓库和大数据平台,数据中台离业务更近。数据中台的开发和建设既可以建立在数据仓库基础上,也可以建立在大数据平台基础上,区别就在于企业的数据应用场景是否多元化。