dex0423 的博客

记录工作学习的点点滴滴。

数据埋点:埋点治理面对的技术问题

埋点方案选择 全埋点 or 分模块埋点,直接影响数据存储成本 如果数据结构优化不做好,每年浪费的存储成本可能会是百万级的消耗,随着周期的增加、成本浪费会更严重。 技术层面问题 事件上报机制 例如:APP,需要做延时上报,将数据预先存储在手机上,等到有 WIFI 环境时再上报; 业务兼容的问题 前期规范执行之后,后续随着业务的拓展,已有数据字段满足不了业务的...

数据埋点:AOP 编程思想及其在 Android 埋点中的应用

ASM & AspectJ

什么是 AOP OOP vs AOP OOP 的局限: OOP 的精髓是把功能或问题模块化,每个模块处理自己的事情,但在现实世界中,并不是所有问题都能完美得划分到模块中。 举个最简单而又常见的例子,现在想为每个模块加上日志功能,要求模块运行时候能输出日志。一般的处理都是: - 先设计一个日志输出模块,这个模块提供日志输出 API,比如 An...

数仓运维:数据倾斜问题解决思路

1. 什么是数据倾斜 数据倾斜,一般是指 mapreduce 程序执行时,reduce 节点大部分执行完毕,但是有一个或者几个 reduce 节点运行很慢,导致整个程序的处理时间很长; MapReduce 过程中,Reduce 阶段输入 ReduceTask 的数据流是<key, {value list}>形式,用户可以自定义 reduce()方法进行逻辑处理,...

数仓运维:小文件问题解决思路

小文件过多问题产生原因 源头的数据文件数目本身就很多 一般使用动态分区会产生很多小文件(动态分区是根据某个key进行划分分区) reduce 个数越多,小文件数目越多。 小文件过多造成的后果 从 Hive 的角度看,小文件会开很多 map,一个 map 开一个 JVM 去执行,所以这些任务的初始化、启动、执行会浪费大量的资源,严重影响性能; HDFS 存储太多...

OLAP:行式存储 & 列式存储

行式存储 传统的关系型数据库,如 Oracle、DB2、MySQL、SQL SERVER 等采用行式存储法(Row-based); 在基于行式存储的数据库中,数据是按照行数据为基础逻辑存储单元进行存储的,一行中的数据在存储介质中以连续存储形式存在。 行式存储缺陷 行式数据库在读取数据的时候,所选择查询的目标即使只涉及少数几项属性,但由于这些目标数据埋藏在各行数据单元中...

Hive:Hive 简介及工作原理

1. Hive 简介 Hive 是一款建立在 Hadoop 之上的开源数据仓库系统,可以将存储在 Hadoop 文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一种类似 SQL 的查询模型,称为 Hive 查询语言(HQL),用于访问和分析存储在 Hadoop 文件中的大型数据集。 1.1. Hive & Hadoop Hive 利用 HDFS 存...

Hive:Hive 安装部署示例

1. 环境准备 由于 Apache Hive 是一款基于 Hadoop 的数据仓库软件,通常部署运行在 Linux 系统之上。因此不管使用何种方式配置 Hive Metastore,必须要先保证服务器的基础环境正常,Hadoop 集群健康可用。 服务器基础环境 集群时间同步、防火墙关闭、主机Host映射、免密登录、JDK安装 Hadoop...

Hive:Hive 复杂数据类型使用方法

1. Hive 复杂数据类型 Hive 复杂数据类型包括数组(ARRAY)、映射(MAP)和结构体(STRUCT),具体如下所示: ARRAY ARRAY 类型是由一系列相同数据类型的元素组成,这些元素可以通过下标来访问。 比如:有一个 ARRAY 类型的变量 fruits,它是由 [‘apple’,‘orange’,...

Hive:Hive SQL 常用优化方法

1. 影响 Hive 效率的因素 1.1. 数据倾斜 1.2. 数据冗余 1.3. JOB / IO 过多 1.4. MapReduce 分配不合理 2. 优化思路 2.1. 对 Hive SQL 语句的优化 2.2. Hive 配置项优化 2.3. MapReduce 配置优化 3. 优化方法 3.1. 列裁剪 & 分区裁剪 列裁剪,就是在查询时只读取需...

Hive:Hive SQL DML 基本操作

1. Hive 数据加载 1.1. hadoop fs -put 上传数据 上传文件至 master 服务器 点击下载站内资源:team_ace_player.txt put 文件至 hdfs hadoop fs -put ./archer.txt /user/hive/warehouse/test.db/team_ace_pl...