相信很多小伙伴发现在某个App上用自己账号搜索出的商品价格和用爸妈的账号搜索出的商品价格不一样,有的时候价格相差得还很大,这是什么原因呢?是app出现了bug,还是自己眼花了?两者都不是,实际上这个现象就是大数据杀熟。不止是购物方面,线上的很多订单都存在杀熟的影子。
互联网的兴起已经有很多年了,这些年来沉淀下很多用户数据,商品信息数据,用户行为数据等等,这些数据对于商业营销是非常宝贵的资产,如何研究这些数据,并从中挖掘出其中的价值已经是互联网商业发展的必备技能。
如果说,互联网底层技术是互联商业发展的第一梯队,大数据分析就是互联网商业发展的第二梯队。当然,随着以后的发展,互联网商业也会遇到其他的发展挑战。大数据分析不止适用于线上商业,实体商业也同样需要大数据的分析结果作为运营基础。
大数据乍听起来好像是深不可测的样子,感觉离自己很遥远,实际上接触了之后会发现大数据离自己还是很近的。举个简单的例子,十一假期你准备出去玩,但是不知道去哪里好,作为一个互联网时代的人,我们的第一反映就是去网上搜索"十一旅游圣地",然后再查评价,查攻略,查注意事项等等,然后再根据经验啊、直觉啊、喜好啊等等判断搜索出的信息的可靠程度,最后决定十一假期去哪里完。这一套下来就是整个数据分析的雏形。
小伙伴们理解了吗?当然大数据分析可不是上面说的那么简单,里面涉及了很多技术上和算法上难点。这段时间接触了一些大数据方面的需求,简单来讲大数据只有几个步骤:数据提取、数据清洗、数据存储、数据展示、数据分析。对于测试来讲,大数据方面方面主要涉及的环节是数据提取、数据清洗、数据存储、数据展示四个阶段,数据分析也有涉及但主要是协助,数据分析需要机器学习和数学的知识。
说到数据提取不得不说的就是数据来源。赵本山的小品里有一句话:"我不想知道我是怎么来的,我只想知道我是怎么没的。"但是,在数据提取里我们一定要知道数据是怎么来的。
数据是怎么来的一般需要知道几个问题:
1、数据是从哪里来的?
2、数据是通过什么方式来的?
3、数据提取的类别是什么?
这几个方面直接影响数据提取的准确性和数据提取的效率。
数据是从哪里来的?
1)数据由公司系统采集提取;
2)数据由合作公司处理后传输
数据是通过什么方式来的?
1)由业务人员管理平台手动输入到数据库中;
2)通过插码或者其他技术方式存储入库;
3)接口传输数据入库;
4)通过文件传输数据,解析文件内容入库
数据提取的类别是什么?
1)增量提取
2)全量提取
这些数据被称为源数据,提取成功后会存储到指定的数据库中。在提取的过程中,如果数据不符合规范或者数据量级超出系统能够承受的阙值,数据提取将会有误或者失败。
数据清洗就是把脏数据清洗掉,提高数据质量。?在数据提取的过程中会应为某种原因导致存如数据库中的数据质量存在问题。这些数据在后续的分析中没有任何实际的意义,甚至会导致数据无法进行分析。
数据清洗一般包括数据分析,定义和执行清洗规则,清洗结果验证等步骤。数据清洗一般会检查拼写错误、去掉重复的(duplicate)记录、补上不完全的(incomplete)记录、解决不一致的(inconsistent)记录。确认数据不存在数据内容和数据属性的问题后,会根据业务规则或者数据分析人员的要求重新整合数据。
整合完毕的数据需要存储到目标数据库中,在数据存储过程中有些数据的格式、长度不符合数据库表的规范,这些数据便会入库失败。
截止到2012年,数据量已经从TB(1024GB=1TB)级别跃升到PB(1024TB=1PB)、EB(1024PB=1EB)乃至ZB(1024EB=1ZB)级别。由于大数据的量级如此庞大,因此在数据存储时不仅仅要考虑数据存储的准确性,还需要考虑数据存储的效率以及数据存储发生异常时数据的回滚问题。
大数据的量级决定了数据库表的结构会比较复杂。一般会根据业务按照月份、省份建表。也就是说同一个业务报表中的数据会从不同的表中读取。因为数据的来源不同,页面的展示就会有很多意外的"惊喜"。比如数据展示不正确,或者数据根本就不展示。常见原因有以下几点:
1)页面报表的横向和纵向内容与数据库的表结构不符
2)数据库表中没有数据
3)页面调度数据脚本没有执行
4)前端定义错误,页面报错
数据经过以上的处理之后就会发送给大数据分析工程师,对用户的分析("杀熟")就开始了。很多人对于大数据"杀熟"都很不喜欢,但是这是一种商业的运营模式,只不过是由之前的线下"杀熟"变成的现在的线上"杀熟"。这也是人们生活习惯的变化,也体现了技术的进步,习惯就好。对于大数据测试来说,测试的对象变得更加抽象,对于技术的要求则更高。但是这也不代表着大数据测试时高不可攀的,大数据测试的根本还是测试,基本功扎实,再补充大数据方面的知识,这些问题都不是事。