学习笔记(1)

目录

1.大数据测试

1.1 ISO9126软件质量模型的六大特性

1.2大数据特性

2.大数据相关

2.1Hadoop数据仓库

2.2.Spark RDD


1.大数据测试

1.1 ISO9126软件质量模型的六大特性

功能性、可靠性、易用性、效率性、可维护性、可移植性

1)功能性:适合性、准确性、互操作性、保密安全性、功能的依从性

1.2大数据特性

1)功能性

数据全面性:质疑下拿到的爬虫数据对应的友商是否全面,即:除了友商A的数据应该获取,友商B、C、D的数据是否有考虑;通常在需求评审阶段提出

数据完整性:质疑拿到的数据是否完整;通常在etl测试阶段考虑

  1. 数据确保指定时间范围内每天有数据,排除被风控了的情况
  2. 数据是否重复,例:同1条URL对应2条结果数据
  3. 数据预期与结果总条数一致

数据合理性:质疑拿到的数据是否符合数据库规定类型、以及是否出现出现异常值;在etl测试阶段 或者 数据应用层测试考虑

  1. 字段类型check,如对重要字段类型check,例:int型下出现其他字符类型情况
  2. 字段异常值check,例:null、空、或者另外一些约定异常值
  3. 字段默认值一致性验证check,例: 从A表同步到B表后,某字段枚举值含义相同

数据准确性:质疑拿到数据的结果表与数据源头表是否一致,可能源表经过A -> B -> C处理后得到结果表,所以需要验证整个过程数据是否失真,确保数据的准确与一致;在etl测试阶段 或者 数据应用层测试考虑

  1. 基于总数的验证,即 A -> B -> C后总数一致,可能到C后有聚合的数据,视情况而定,即在A时有10万条数据,到C阶段理论也有10万。
  2. 基于总数额的验证,即 A -> B -> C后总额一致,这里的总额可能是:金额、销量等。

安全性验证:对于某些敏感的数据往往需要考虑其安全性,可以是从获取数据的方式,也可以是数据本身安全性上;在需求评审阶段考虑

  1. 账号的隔离,测评是否有必要采用账号隔离访问数据
  2. 基于对某些数据字段,测评是否有必要对某些字段进行加密考虑,例:身份证、家庭住址、金钱等方面的加密

2)易用性

确保数据获取的过程顺畅,如果数据需要通过很多命令执行并且连接多个环境才能获取到,这样的数据易用性则不强,以及每个指定的一定能被人所理解;在需求评审阶段研发设计阶段考虑

  1. 数据获取的交互是否过于复杂
  2. 数据对应的指标能被人所理解,例:MAU-月活人数、DAU-日活人数

3)数据恢复性

当平台出现异常时,可以有一些重试机制进行重试,确保系统短时间内能恢复。

4)数据容错性

即便通过重试机制不能恢复时,需保证上游数据不能影响到下游的数据,可以有一些默认数据的预置,确保下游总能获取到数据。

5)效率性

时间与资源,当平台运算资源紧张任务繁重的时候,可能会出现长时间的等待,这时候除了需要跟研发一起优化SQL线程,还需要设计一些交互展示一些页面给用户,减少等待带来的用户体检差的问题

6)可维护性

数据可用且及时被维护,维护库表之间关系,维护单表字段含义

7)可移植性

数据的迁入/迁出,确保迁入/迁出字段不丢失以及数据完整性

2.大数据相关

2.1Hadoop数据仓库

1)数据仓库:面向主题、集成、随时间变化、非易失、粒度

数据仓库目的:能够让用户方便地访问大量数据,允许用户查询和分析其中的业务信息。

数据仓库要求:安全性、可访问性、自动化

数据需求:准确性、时效性、历史可追溯性

2)事务:工作于数据库管理系统(或类似系统)中的一个逻辑单元,该逻辑单元中的操作被以一种独立于其他事务的可靠方式所处理。

事务一般代表着数据改变,它提供“all-or-nothing”操作,就是说事务中的一系列操作要么完全执行,要么完全不执行

事务特点:原子性、一致性、隔离性、持久性

3)数据库隔离级别:读非提交、读提交、可重复读、串行化

4)操作系统要求:高可用、高速度、高并发、可恢复和保证数据一致性

2.2.Spark RDD

1)Spark 的核心是建立在统一的抽象弹性分布式数据集(Resiliennt Distributed Datasets,RDD)之上的,这使得 Spark 的各个组件可以无缝地进行集成,能够在同一个应用程序中完成大数据处理

2)RDD:一种有容错机制的特殊数据集合,可以分布在集群的结点上,以函数式操作集合的方式进行各种并行操作。

  • 只读:不能修改,只能通过转换操作生成新的 RDD。
  • 分布式:可以分布在多台机器上进行并行处理。
  • 弹性:计算过程中内存不够时它会和磁盘进行数据交换。
  • 基于内存:可以全部或部分缓存在内存中,在多次计算间重用。

3)RDD 操作:分为转化(Transformation)操作和行动(Action)操作。

转化操作就是从一个 RDD 产生一个新的 RDD,而行动操作就是进行实际的计算。

RDD 的操作是惰性的,当 RDD 执行转化操作的时候,实际计算并没有被执行,只有当 RDD 执行行动操作时才会促发计算任务提交,从而执行相应的计算操作。

4)Spark 里的计算都是通过操作 RDD 完成的,学习 RDD 的第一个问题就是如何构建 RDD,构建 RDD 的方式从数据来源角度分为以下两类。

  • 从内存里直接读取数据。
  • 从文件系统里读取数据,文件系统的种类很多,常见的就是 HDFS 及本地文件系统。

5)RDD 的最重要的特性之一就是血缘关系(Lineage ),它描述了一个 RDD 是如何从父 RDD 计算得来的。如果某个 RDD 丢失了,则可以根据血缘关系,从父 RDD 计算得来。Spark 记录了 RDD 之间的生成和依赖关系。

6)RDD依赖类型:根据不同的转换操作,RDD 血缘关系的依赖分为窄依赖和宽依赖。

窄依赖是指父 RDD 的每个分区都只被子 RDD 的一个分区所使用。

宽依赖是指父 RDD 的每个分区都被多个子 RDD 的分区所依赖。

7)RDD缓存

Spark RDD 是惰性求值的,Spark 可以使用 persist 和 cache 方法将任意 RDD 缓存到内存、磁盘文件系统中。缓存是容错的,如果一个 RDD 分片丢失,则可以通过构建它的转换来自动重构。被缓存的 RDD 被使用时,存取速度会被大大加速。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值