本发明涉及数据分析,具体涉及一种基于低代码平台的数据采集方法。
背景技术:
1、当前互联网飞速发展的背景下,大量用户数据产生,大数据计算能力也随之快速发展。对于数据分析、营销、数据挖掘、推荐算法等数据应用场景,实时数据存储和分析能力需求与日俱增。传统关系型数据库对于海量数据处理已捉襟见肘,因此,海量数据分析的系统应运而生,其中基于hadoop和hive构建出的大数据平台应用最为广泛。
2、使用hive作为计算引擎,其基于磁盘计算的特性决定了只能用于离线数据分析,动辄几分钟甚至几小时的计算时间让其很难应用在实时查询的场景上,而且基于hdfs的数据存储也无法做数据的实时接入。apache spark可以很好地集成hadoop和hive,解决了磁盘性能瓶颈,但是其仍然摆脱不了基于hdfs存储数据无法实时入库的缺陷,即使使用数据湖解决方案,也无法实现数据的实时入库。
3、基于impala和kudu的方案,缺陷也十分明显,kudu随着数据量越来越大,其服务启动速度、数据加载速度会急剧下降。虽然其可以通过将冷热数据分开存储,将不经常使用的冷数据迁移至hdfs中存储,kudu中只保留热数据,但是同时维护两种存储方式以及查询数据时同时使用两种存储结构的数据,在维护成本和使用成本都是不小的开销。
技术实现思路
1、本发明的目的在于提供一种基于低代码平台的数据采集方法,解决以下技术问题:
2、现有的数据分析方案维护成本和使用成本较高,且存在性能瓶颈。
3、本发明的目的可以通过以下技术方案实现:
4、一种基于低代码平台的数据采集方法,包括以下步骤:
5、获取用户n天内的行为数据,n为正整数,筛选出符合设定标签的用户id,提取同时符合所有标签的用户标记为目标用户,通过group by聚合函数和bitmapbuild函数将目标用户id压缩为bitmap集合;
6、通过低代码平台查询在n天内进行若干设定点击事件的目标用户,按照日期对点击事件进行分类汇总统计;
7、获取目标用户任一天内触发的浏览事件和点击事件,统计当天目标用户的漏斗转化率,以日期顺序输出n天内的用户行为数据;
8、根据所述用户行为数据计算出待归因事件的总点击次数、有效点击数、有效用户数和目标转化次数;
9、将设定点击事件按时间顺序生成事件序列,将事件序列分割成多个子链,将每个子链按照时间顺序分割成多个session,并统计每个session中点击事件的出现次数;
10、筛选符合设定属性和标签的用户集合,统计用户集合中属性和标签的出现次数,按照出现次数进行排序分为两类,统计每一类中属性和标签值的出现次数和出现比例;
11、将所述事件序列拼接成一个新的事件序列,从新事件序列中提取出转化时长信息,计算出n天内每个日期的转化数据。
12、作为本发明进一步的方案:所述漏斗分析具体包括:
13、查询在n天内进行若干设定点击事件的用户,所述点击事件之间依次为递进关系,每个点击事件均有对应的分层标签,计算每一分层标签对应的用户数量,统计n天内所有进行设定点击时间的用户总数,进行漏斗分析,得到每个用户的每个点击事件的转化漏斗情况,编制成level_index数组,按照用户id和事件日期分组,对level_index数组的各项进行求和,将所有用户id所获得的统计结果再取一次sum聚合函数生成漏斗分析总计数据。
14、作为本发明进一步的方案:所述留存分析具体包括:
15、使用窗口函数和分组操作来统计目标用户在某一天内触发了浏览事件和相应点击事件的时间和次数,计算浏览事件与点击事件之间的时间差,并计算出目标用户在漏斗转化路径中所处的位置,根据返回结果再次聚合,统计在某一天内特定用户群体的漏斗转化率,包括从某个状态到另一状态的转化次数,最后按照事件日期、事件剩余日期、日期差值将结果进行分组并计算出每组内的总次数。
16、作为本发明进一步的方案:所述归因分析具体包括:
17、通过查询命令返回设定点击事件以及总点击次数、有效点击数、有效用户数和目标转化次数;
18、通过语法with as对用户行为数据中的点击事件进行排序和整理,按时间顺序排列并形成了一个有序的事件序列;
19、查询命令使用array join操作将每个用户的不同行为重新组合成新的事件序列,并进行过滤;
20、利用group by操作将所有行为按照每个用户进行分组,算出每个用户在待归因事件中的指标:待归因事件总数、有效点击数、转化次数以及有效用户数;
21、最后通过select查询命令返回每个用户的指标总和,构成所有用户行为的汇总数据。
22、作为本发明进一步的方案:所述用户路径分析具体包括:
23、设定点击事件按时间顺序生成事件序列,并按照用户id分组,从事件序列中筛选出包含设定点击事件的子链;
24、将子链中相邻的事件组成元组,得到一个新的数组;将元组根据首个元素的大小进行排序,并筛选出第一个元素大于等于设定点击事件时间点的元素,去除数组中的null元素,并标记出分割点;
25、将子链按照分割点分割成多个session;统计每个session中点击事件的出现次数,返回分割后的子链、session和设定点击事件出现次数。
26、作为本发明进一步的方案:所述属性分析具体包括:
27、获取用户的属性和标签,并进行去重,筛选符合设定属性和标签的用户集合,统计每个属性和标签值的出现次数;
28、按照出现次数进行排序,得到每个属性和标签值的出现次数;
29、将出现次数排名前m名的属性和标签值作为一类,m为正整数,剩下的属性和标签值作为另一类;
30、统计每一类中每个属性和标签值在所有用户中出现的比例;
31、返回统计结果,包括属性和标签值、出现次数和出现比例。
32、作为本发明进一步的方案:所述间隔分析具体包括:
33、使用array split把每条记录按照事件类型分离成不同的数组元素,并按照事件发生时间进行排序,然后通过array join操作把所有用户的数据链接成一个大的关系型表格,所述记录为某个用户在某个日期内完成的所有事件;
34、使用array reversesplit和arraymap操作把每个用户的行为序列重新排列配对,将配对后的事件用arrayjoin连接起来并按照事件发生时间进行排序生成新的事件序列。
35、作为本发明进一步的方案:从所述用户行为数据和新的事件序列中对每个用户在n天内的转化时间进行了统计计算;按照日期顺序对转化时间进行了分组聚合,获得每个日期的转化用户数、人均转化时间、最小值、最大值、四分之一点、中位数和四分之三点。
36、本发明的有益效果:
37、本发明利用低代码平台特性,通过构建bitmap对用户数据做快速聚合、交并集、总数计算等,相对于传统的计算方式,在节省计算资源的同时,大幅提升计算效率;本发明通过巧妙地结合数组函数、窗口函数等,避免了通过传统的先join匹配再过滤筛选计算的方式,实现了对用户行为序列分析、有时间窗口需求的分析模型;本发明基于低代码平台实现了多种分析模型,如事件分析、漏斗分析、留存分析、归因分析、分布分析、用户路径、属性分析、间隔分析等,满足了对用户行为数据的多维度分析需求。
1.一种基于低代码平台的数据采集方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于低代码平台的数据采集方法,其特征在于,所述漏斗分析具体包括:
3.根据权利要求1所述的一种基于低代码平台的数据采集方法,其特征在于,所述留存分析具体包括:
4.根据权利要求1所述的一种基于低代码平台的数据采集方法,其特征在于,所述归因分析具体包括:
5.根据权利要求1所述的一种基于低代码平台的数据采集方法,其特征在于,所述用户路径分析具体包括:
6.根据权利要求1所述的一种基于低代码平台的数据采集方法,其特征在于,所述属性分析具体包括:
7.根据权利要求1所述的一种基于低代码平台的数据采集方法,其特征在于,所述间隔分析具体包括:
8.根据权利要求7所述的一种基于低代码平台的数据采集方法,其特征在于,从所述用户行为数据和新的事件序列中对每个用户在n天内的转化时间进行了统计计算;按照日期顺序对转化时间进行了分组聚合,获得每个日期的转化用户数、人均转化时间、最小值、最大值、四分之一点、中位数和四分之三点。