BigData大数据Big-Data

数据技术篇

2021-08-25  本文已影响0人  ZYvette

大数据阶段

阿里巴巴大数据

一. 日志收集

二、数据同步

1.同步基础

(1)直连同步


image.png

(2)数据文件同步


image.png

(3)数据库日志解析同步


image.png

2. 阿里数据仓库的同步万式

特点:a. 数据源种类多 b. 数据量大

(1)批量数据同步:
DataX:支持异构数据或文件系统之间高速数据交换。


image.png

(2)实时数据同步
TimeTunnel:


image.png

Time Tunnel 支持主动、被动等多种数据订阅机制,订阅端自动负载均衡,消费者自己把握消费策略。对于读写比例很高的 Topic ,能够做到读写分离,使消费不影响发送。同时支持订阅历史数据,可以随意设置订阅位置,方便用户回补数据。

3.数据同步遇到的问题与解决方案

(1)分库分表的处理

image.png image.png

(2)高效同步和批量同步
(3)增量与全量同步的合并

(4)同步性能的处理

(5)数据漂移的处理

常用数据字段:
modified time:数据库表中标识数据记录更新时间的时间戳字段
log_time:数据库日志中用来标识数据记录更新时间的时间戳字段
proc_time:记录具体业务过程发生时间的时间戳字段
extract time:标识数据记录被抽取到时间的时间戳字段

处理方法主要有以下两种:
( l )多获取后一天的数据

(2 )通过多个时间戳字段限制时间来获取相对准确的数据
首先根据 log_time 分别冗余前一天最后 15 分钟的数据和后一天凌晨开始 15 分钟的数据,并用 modified time 过滤非当天数据,确保数据不会因为系统问题而遗漏。然后根据 log_time 获取后一天 15 分钟的数据 针对此数据,按照主键根据 log_time 做升序排列去重。因为我们需要获取的是最接近当天记录变化的数据(数据库日志将保留所有变化的数据,但是落地到 DS 表的是根据主键去重获取最后状态变化的数据)。最后将前两步的结果数据做全外连接,通过限制业务时间proc_time 来获取我们所需要的数据。

TODO 没懂

三、离线数据开发

了解需求→模型设计→ETL 开发→测试→发布上线→日常运维→任务下线。

image.png
image.png

SQLSCAN 主要有如下三类规则校验:
代码规范类规则,如表命名规范、生命周期设置、表注释等。
代码质量类规则,如调度参数使用检查、分母为 提醒、 NULL
值参与计算影响结果提醒、插入字段顺序错误等。
代码性能类规则,如分区裁剪失效、扫描大表提醒、重复计算检
测等。

image.png
image.png
image.png
image.png

四、实时数据开发

常见问题:

1. 去重指标:

(1)精确去重:需要记录之前的所有明细
(2)模糊去重:

2.数据倾斜

( 1 )去重指标分桶
通过对去重值进行分桶 Hash ,相同 值一定会被放在同一个桶去重,最后再把每个桶里面的值进行加和就得到总值,这里利用了每个桶的 CPU 和内存资源。
(2 )非去重指标分桶
数据随机分发到每个桶中,最后再把每个桶的值汇总,主要利用的是各个桶的能力。

3.事务处理

的几个流计算系统几乎都提供了数据自动 ACK 、失败重发以及事务信息等机制。

为了保证数据的幕等性。

4.数据存储

(1)表名设计
设计规则:汇总层标识+数据域+主维度+时间维度
(2)rowkey 设计
设计规则: MD5 +主维度+维度标识+子维度1 +时间维度+子维度2

5.数据服务

实时数据落地到存储系统中后,使用方就可以通过统一的数据服务
获取到实时数据。

6.流式数据模型

五层( DS DWD DWS ADS DIM )
下面通过简单的例子来说明每一层存储的数据。

7.多流关联

image.png

左右表都要缓存。
双流关联流程,在实际处理时,考虑到查找数据的性能,实时关联这个步骤一般会把数据按照关联主键进行分桶处理,并且在故障恢复时也根据分桶来进行,以降低查找数据量和提高吞吐量。

8.维表使用

在实时计算中,关联维表一般
会使用当前的实时数据( T)去关联 T-2 的维表数据,相当于在 的数
据到达之前需要把维表数据准备好,并且一般是 份静态的数据。

采用维表关联的原因:

1 数据无法及时准备好
0点时前一天的数据没有准备好

  1. 无法准确获取全量的最新数据
    需要当天获取实时的最新数据。
  2. 数据无序性

维表关联: 全量加载和增量加载

如何进行实时任务优化

六、数据服务

image.png

DWSOA

image.png

OpenApi

image.png

SmartDQ

image.png

OneService

image.png

1. 资源

系统的资源是有限的,如果能合理分配资源,使资源利用最大化,
那么系统的整体性能就会上一个台阶。下面讲述合理的资源分配是如何
提高性能的。
( 1 )剥离计算资源
调用者调用接口获取的数据,有些指标需要多天数据的聚合,比如
最近 天访客浏览量、最近 365 天商品最低价格等;有些指标还包含一
些复杂的计算逻辑,比如成交回头率,其定义为在统计时间周期内,有
两笔及以上成交父订单的买家数除以有成交父订单的买家数。
如此复杂的计算逻辑,如果放在每次调用接口时进行处理,其成本
是非常高 的。因此剥离复杂的计算统计逻辑,将其全部交由底层的数据
公共层进行处理,只保留核心的业务处理逻辑。详细内容请参见第 章。
(2 )查询资源分配
查询接口分为两种: Get 接口,只返回一条数据; Lis 接口,会返
回多条数据。一般来说, Get 查询基本都转换为 查询,响应时间比
较短,或者说查询代价比较小。而 List 查询的响应时间相对较长,且返
回记录数比较多,这就增加了序列化以及网络传输的成本,查询代价肯
定会更高一些。

image.png
image.png

(3 )执行计划优化
①查询拆分。


image.png

②查询优化。
查询优化是分析用户请求中的 SQL 语句,将符合条件的 List查询转换为 Get 查询,从而提高性能。

(4)缓存优化

(3 )结果缓存

image.png

3.查询能力
( 1 )合并查询
(2 )推送服务

  1. 稳定性
  2. 发布系统
    ( l )元数据隔离
    一般的应用都会有 个环境:日常环境、预发环境和线上环境。日常环境用于线下开发测试。预发环境隔离了外部用户的访问,用于在正式发布前校验即将上线的代码。


    image.png

(2 )隔离发布

隔离:机房隔离,分组隔离
安全限制:数据limit,字段限制,超时时间

监控:
( 1 )调用日志采集
如果要对调用做监控,首先要保证调用日志的完整性。对于每次调
用都进行了采集,采集的信息包括:

  1. 降级、限流
    ( 1)限流
    是应用内的 QPS保护
    如果某个调用者的调用量突增 ,或者对某个数据源的查询流量突增,超过了预设的QPS 阑值,则后续的请求立即失败返回,不再继续处理。通过快速失败,将超出系统处理能力的流量直接过滤掉,保障了系统的可用性。
    (2 )降级
    降级主要有两种做法:

五、数据挖掘

上一篇 下一篇

猜你喜欢

热点阅读