首席数据官

Hi, 请登录

数据产品不得不知的技术知识

在数据分析领域下,总会被提及诸如SQL、Hive,甚至Hardoop、Druid、Spark等这些技术上的词汇。那么作为一名数据领域的产品经理,听着这些不是很常见的产品知识,又应该具备怎样的技术知识呢?这一章则主要从“用户行为数据“角度介绍一整套的技术架构以及相关的技术要点。

阅读指南

1、受众人群:数据型产品经理、数据运营等初级岗位;

2、阅读收获:

1 用户行为分析系统

本文将从数据采集、数据接入、数据分析、数据展示等4个重要地方,分别介绍相关涉及的技术知识。这一节主要介绍整体概念。

1.1 概念

用户行为分析系统其实是指用户使用产品过程中,把产生的行为数据通过分析而成的报表工具。此类数据区别于业务数据,大多为公开、有权限获取的,比如一些设备信息、埋点信息等。目前行业较为人熟知的有百度统计、友盟、神策等,而使用此类产品的主要是数据分析师、数据运营和产品经理等。目的是为了统计埋点、基础指标分析(如PV、UV)等,从而对产品进行体验优化或运营推广。

(样例:数据分析系统图)

1.2 数据系统框架

1、数据采集

一般用户使用产品的时候,所填写的信息会经由业务系统加密储存。而行为数据是不会经由这些系统收集,而由专门的采集工具进行采集,这就是SDK。

2、 数据接入因为SDK采集的数据是非结构化的,所以数据都是以原始数据的方式按批次定期或实时上传。服务端通过接口对这些数据进行解析、加工处理,初步形成结构化的日志数据,并在数据库按表进行存储。

3、数据分析当数据解析并存储之后,即可通过离线和实时两大方式进行分析。部分指标计算量大且实时要求不高,则会采取T+1、T+2(即第二天、第三天出结果)等离线计算方式。有些指标时效性要求高,如关键指标、日常运营活动(如双十一)等,就需要较高的实时计算方式,以便监测表现。两大方式采用的系统框架会有所差别,后面详解。

4、数据应用当使用结构化数据进行分析时,就需要可视化的图表进行展示,不管哪种方式,基本就是通过报表网站平台进行展示。比如折线图、表格、柱状图等,甚至还需要提供更多维的分析指标支持用户自主查询。

2 数据采集层(SDK)

2.1 何为SDK?

1、定义

SDK是指一种软件开发工具包,是数据采集的必备工具,英文为“Software Development Kit”。本质上它其实是一些接口API的文件集合,为某个应用程序提供服务。也可以理解为应用开发者通过接入这些文件,并调用里面的相关接口,即可采集相应数据。因为SDK的大小一定程度上会影响应用程序性能,所以尽量轻量处理,占内存大多在几百K和几兆之间。

2、作用

不同业务下,SDK的应用性质是不同的。常见的就有数据行为类SDK、功能服务类SDK以及广告营销类SDK等。其中功能服务类就是指应用通过接入SDK增加一些特殊的产品功能服务,而广告营销类则指专门做消息推送、营销推广等业务的SDK。而本文仅介绍数据行为类SDK。

2.2 SDK类型

主要分为客户端SDK和服务端SDK,客户端SDK是指这类SDK接入在应用的前端,比如iOS、安卓等。而服务端SDK是指接入在后端,更多的在后台底层。

1、客户端SDK

2、服务端SDK

3、小结:不同的用户有不同的业务诉求,客户端和服务端各有优缺点,主要取决于业务诉求。整体而言,大多数产品应用使用客户端SDK居多。

2.3 作用

SDK最大的任务就在于采集数据、识别数据和上报数据。

1、采集数据由于SDK采集的数据较广,涉及种类较多,主要分几类:

2、识别数据

由于采集的数据属于原始数据,且SDK层基于原始数据的真实性和唯一性,基本是不会做结构化的逻辑处理,即不会做数据加工。所以SDK在这里最多会进行识别数据的处理。

3、上报数据

由于SDK在嵌入应用程序前,就已经打通与服务端的接口并进行上报。所以此时SDK是已经界定了一系列的上报逻辑,以及需要传什么数据。

3 数据接入存储层

从这一环节开始,就进入服务端运作的流程。这个环境涉及数据接入、解析和存储等3方面。前面提到,SDK只会采集原始数据(就好比绿色无污染的食品),而这些非结构化数据其实不利于管理和使用的。这时候就需要在接入后进行数据解析、清洗加工再扔进数据库。

3.1 接入层

这一层是服务端与SDK端之间联系的一层,所有的日志数据就是通过这个接入层进行获取,但获取成功后是需要返回“成功”的信号给到SDK,证明是畅通的没有报错。但大多数情况下,由于上报的数据较多,尽管是按批次上报,也是会出现类似“排队”的情况,一个一个去等完成再返回数据效率十分之低。所以这时候就会借用“redis”手段。

3.2 逻辑层

这一层的作用实际是指对数据进行解析、清洗加工处理,即日志数据,因为数据的存储是要按照明确的数据库和表的结构来存储。

3.3 数据存储

提到数据存储,就必须接触到数据库,那么对于这样的用户行为数据,又会使用什么样的数据库呢?目前关于数据库,主要分为关系型和非关系型数据库。

1、关系型数据库

平常所接触到诸如Oracle、Hive、PG等,其实这些都属于关系型数据库,本质上都是建立在SQL(结构化查询语言)的基础上,所以最大的特征就是结构化。这些适合大量的数据查询,统一提供增、删、改、查、排序等多种查询。数据库类型有很多,以下仅列举常遇见的3种:

2、非关系型数据库(NoSQL)

此类数据库的存在是出于性能、速度等方面考虑,主要是因为关系型数据库涉及数据较大、结构复杂,一些简单、体量小的存储和查询不适合在这样的数据库进行运作,所以才有这样的数据库。上面也提到,其中redis就是这么一种,以及MongoD、Memcache。

3、数据库表在使用SQL查询的时候,一个关键地方就是需要知道表结构。所谓的表结构就是数据表与表之间的关系,以及具体表字段的含义。所以数据库表的设计十分重要,对后续SQL查询计算、机器运行性能、任务执行等方面有很大的影响。

(样例:usertable_01)

4 数据分析层

大数据分析开发当中,有诸如Spark、Hive、Hbase这些数据库或计算引擎,但这些都基于一套核心的系统,就是Hadoop。要开发一套完整的大数据开发系统,大多数技术都是从Hadoop中获取能力。

4.1 核心框架Hadoop

1、定义Hadoop是大数据开发所使用的一个核心框架,是一个允许使用简单编程模型跨计算机集群分布式处理大型数据集的系统。很多关于大数据开发的技术模块都基于此基础上,覆盖了数据传输、数据存储管理、数据计算等诸多方面。

2、作用

使用Hadoop可以方便地管理分布式集群数据接入技术,将海量数据分布式地存储在集群中,并使用分布式并行程序来处理这些数据。

3、架构

一套完整的Hadoop框架涉及数据传输、存储到计算等环节,并在这些基础上提供种类较多的组件,为快速搭建大数据分析平台提供成熟的基础能力。

epon接入技术_数据接入技术_光伏电站接入电网技术规定

4.2 计算类型

1、离线计算

离线计算就是在计算开始前已知所有输入数据数据接入技术,输入数据不会产生变化,且在解决一个问题后就要立即得出结果的前提下进行的计算。时间上按天来算,就是T+1、T+2甚至T+7等,主要看指标的时效性优先级要求。

2、实时计算

实时计算是相对离线而言,就是指查询条件不固定、目标不明确,但又对数据需求的时效有较大要求,所以需要实时查询进行分析。优点是自定义条件多,能满足多维分析的数据需求,缺点是考验查询引擎,由于处理数据量大短时间输出结果会有所偏差,且等待时间长。

4.3 计算引擎

按照目前行业的发展,关于计算引擎已经发展到了第4代,第1代是MapReduce,而在这里重点介绍5种。

整体来说,不同的

试看结束,如继续查看请付费↓↓↓↓
打赏0.5元才能查看本内容,立即打赏

来源【首席数据官】,更多内容/合作请关注「辉声辉语」公众号,送10G营销资料!

版权声明:本文内容来源互联网整理,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 jkhui22@126.com举报,一经查实,本站将立刻删除。

相关推荐

二维码
评论