- 博客(39)
- 收藏
- 关注
原创 【博学谷学习记录】超强总结,用心分享|大数据之Doris
过多的物化视图,会影响导入数据的效率,比如有20张物化视图,则相当于导入20张表,但不影响查询性能,在有物化索引或物化视图的情况下,性能会更好;目前的查询分析非常多,并且还在不断的涌现出来,引擎层出不穷,各有优势也有其缺点,比如ADB、Hologres、Presto、Kylin、Hbase、Doris,这些产品本质上都是用资源换时间,或者空间换时间,本质上就是计算机制重构(比如MPP)、硬件提速(比如SSD磁盘)、索引提速(比如位图)、空间转换(比如预计算)等维度是提升性能。元数据的读写满足顺序一致性。
2023-05-22 20:34:16
281
原创 【博学谷学习记录】超强总结,用心分享|大数据之spark优化
在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。在美团•大众点评,已经有很多同学在各种项目中尝试使用Spark。大多数同学(包括笔者在内),最初开始尝试使用Spark的原因很简单,主要就是为了让大数据计算作业的执行速度更快、性能更高。然而,通过Spark开发出高性能的大数据计算作业,并不是那么简单的。如果没有对Spark作业进行合理的调
2023-05-15 16:44:22
189
原创 【博学谷学习记录】超强总结,用心分享|大数据之hive优化
原因是在Join操作的Reduce阶段,位于Join操作符左边的表的内容会被加载进内存,将条目少的表放在左边,可以有效减少发生OOM错误的几率。出现数据倾斜时,可能就是你的代码中使用了这些算子中的某一个所导致的。因为COUNT DISTINCT操作需要用一个Reduce Task来完成,这一个Reduce需要处理的数据量太大,就会导致整个Job很难完成,一般COUNT DISTINCT使用先GROUP BY再COUNT的方式替换,虽然会多用一个Job来完成,但在数据量大的情况下,这个绝对是值得的。
2023-05-10 14:38:43
147
原创 【博学谷学习记录】超强总结,用心分享|大数据之Hudi
对于 Merge-On-Read Table,整体的结构有点像 LSM-Tree,用户的写入先写入到 delta data 中,这部分数据使用行存,这部分 delta data 可以手动 merge 到存量文件中,整理为 parquet 的列存结构。更新update:在更新记录时,Hudi会先找到包含更新数据的文件,然后再使用更新值(最新的数据)重写该文件,包含其他记录的文件保持不变。简称COW,顾名思义,它是在数据写入的时候,复制一份原来的拷贝,在其基础上添加新数据。
2023-05-04 09:36:16
186
原创 【博学谷学习记录】超强总结,用心分享|大数据之flinkCDC
Flink CDC 基于数据库日志的 Change Data Caputre 技术,实现了全量和增量的一体化读取能力,并借助 Flink 优秀的管道能力和丰富的上下游生态,支持捕获多种数据库的变更,并将这些变更实时同步到下游存储。官网链接:https://ververica.github.io/flink-cdc-connectors/github链接:https://github.com/ververica/flink-cdc-connectors。
2023-04-23 15:53:06
3465
原创 【博学谷学习记录】超强总结,用心分享|大数据之Watermark
推迟窗口触发的时间,实现方式:通过当前窗口中最大的eventTime-延迟时间所得到的Watermark与窗口原始触发时间进行对比,当Watermark大于窗口原始触发时间时则触发窗口执行!上图中,我们设置的允许最大延迟到达时间为2s,所以时间戳为5s的事件对应的Watermark是3s,时间戳为9s的事件的Watermark是7s,如果我们的窗口1是1s-3s,窗口2是4s-6s,那么时间戳为5s的事件到达时的Watermarker恰好触发窗口1,时间戳为9s的事件到达时的Watermark触发窗口2。
2023-04-10 17:39:40
62
原创 【博学谷学习记录】超强总结,用心分享|大数据之Flink与Spark的区别
如果有多个流,则需要进行对齐,比如说多个源数据流达到第一个操作符,其中有些流的Barrier n先到达操作符,那么操作符会等待其它流的Barrier n到达,其它流的Barrier n全都到达之后,该操作符便发出Barrier n给下游操作符。不用对齐,也就是说,在快照时,Barrier n内的记录快照也将包含Barrier n+1的部分记录,而包含的这部分Barrier n+1的数据,会在Barrier n+1的checkpoint中被重放,也就是是说,这部分数据将是重复的。适合对实时性要求严格的需求。
2023-04-03 14:42:10
406
原创 【博学谷学习记录】超强总结,用心分享|大数据之Spark MLlib
转换器是一种进行DF转换的算法。一个模型就是一个Transformer,它可以把一个不包含预测标签的测试集DF打上标签,转化成另一个包含预测标签的DF。文件频率DF(t,D)是包含词语的文档的个数。是一个Estimator,在一个数据集上,调用其fit(),产生一个IDFModel,该模型接收HashingTF产生的特征向量,然后计算每一个词在文档中出现的频次。HashingTF 是一个Transformer,接收词条的集合,然后把这些集合转化成固定长度的特征向量,该算法在哈希的同时会统计各个词条的词频。
2023-03-19 20:03:04
219
原创 【博学谷学习记录】超强总结,用心分享|大数据之Spark 特征工程相关API
SparkMLlib 要求, 在训练模型的时候, 所有模型的API接受的传入特征的参数, 只能传一列, 如果我们有多列数据要作为特征输入给模型对象, 需要先通过VectorAssembler 拼成一列向量, 才能做后续的计算. 这里也是SparkMLlib 和其它机器学习框架有区别的地方。, 比大小 , 聚类中心点求和比较大的类别, 就是高价值, 聚类中心点求和比较小的, 就是相对低价值。K取不同的值, 计算轮廓系数, 选择轮廓系数比较大的聚类结果对应的K值。性别 男性, 女性, 未知 0,1,2。
2023-03-13 20:18:05
269
原创 【博学谷学习记录】超强总结,用心分享|大数据之ES
在数据写入内存的同时, 数据还会复制一份到磁盘上, 写入到translog文件中, 如果在refresh期间出现了异常, 可以从Translog中把数据恢复回来。当数据写入到ES的分片时, 先会写入内存buffer中(缓冲区), 从buffer中读取数据, 生成segment, 这个过程就是在维护倒排索引。segments的合并 es做了更新/删除操作的时候, 不会修改原来的数据, 在merge的时候才会真正的修改。从内存中的buffer → 内存中的segment 这个过程叫。hive命令行中执行。
2023-03-06 20:11:11
364
原创 【博学谷学习记录】超强总结,用心分享|大数据之Spark streaming
结构化流是构建在Spark SQL处理引擎之上的一个流式的处理引擎, 主要是针对无界数据的处理操作. 对于结构化流同样也支持多种语言的操作API: Java Python Scala R …
2023-02-26 16:22:45
339
原创 【博学谷学习记录】超强总结,用心分享|大数据之Spark 函数
窗口函数格式:分析函数 over(partition by xxx order by xxx [asc|desc] [rows between xxx and xxx])学习的相关分析函数有那些?第一类: row_number() rank() dense_rank() ntile()第二类: 和聚合函数组合使用 sum() avg() max() min() count()第三类: lag() lead() first_value() last_value()如何在Spark SQL中使用呢?
2023-02-19 14:30:53
130
原创 【博学谷学习记录】超强总结,用心分享|大数据之SparkSql
Spark SQL是Spark多种组件中其中一个, 主要是用于处理大规模的结构化数据什么是结构化数据:一份数据集, 每一行都是有固定的列, 每一列的类型都是一致的, 我们将这种数据集称为结构化的数据例如: MySQL表数据1 张三 202 李四 183 王五 21为什么要学习Spark SQL呢?1- 会SQL的人, 一定比会大数据的人多2- Spark SQL既可以编写SQL语句, 也可以编写代码, 甚至支持混合使用。
2023-02-12 19:44:30
111
原创 【博学谷学习记录】超强总结,用心分享|大数据之Spark RDD数据结构
RDD: 弹性分布式数据集出现目的: 为了能够支持更加高效的迭代计算操作早期的计算模型: 单机计算模型例如: MySQL / Excel单机的计算模型仅适用于: 小量数据集的处理操作在计算操作的时候, 只有一个进程, 在一个进程中通过不断的迭代完成最终的计算操作随着不断的发展, 整个社会数据量都在不断的增大, 原有单机的计算模型无法应对未来的数据处理需要, 怎么办呢?分布式计算模型。
2023-02-05 16:07:56
124
原创 【博学谷学习记录】超强总结,用心分享|大数据之Spark
定义: Spark是一款用于大规模数据处理分布式的分析引擎MR: 是一款用于大规模的分布式的分析引擎MR存在的弊端:1- 计算效率慢: 大量的经过磁盘和内存之间的交互, 基于磁盘计算 IO比较大 (IO密集型框架)2- 使用API相对比较低级:大量的功能代码都需要程序员自己完成3- 迭代计算非常不方便什么是迭代计算:在计算过程中, 需要将计算划分为N个阶段, 每个阶段之间互相依赖, 后一个阶段必须等待前一个阶段执行完成, 然后才能执行后一个阶段。
2023-01-16 15:44:26
88
原创 【博学谷学习记录】超强总结,用心分享|大数据之Python函数
所谓的函数就是一个被命名的独立的、完成特定功能的代码段(一段连续的代码),并可能给调用它的程序一个返回值。被命名的:在Python中,函数大多数是有名函数(普通函数)。当然Python中也存在没有名字的函数叫做匿名函数。独立的、完成特定功能的代码段:在实际项目开发中,定义函数前一定要先思考一下,这个函数是为了完成某个操作或某个功能而定义的。(函数的功能一定要专一)返回值:很多函数在执行完毕后,会通过return关键字返回一个结果给调用它的位置。
2023-01-08 16:16:56
55
原创 【博学谷学习记录】超强总结,用心分享|大数据之Python
容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用各种内置方法对容器中的数据进行增删改查等操作。: 容器就是存储数据的东西, 同时Python为了方便我们对容器中的数据进行增加删除修改查询专门提供了相应的方法便于我们操作。 注意:如果定义的元组只有一个数据,那么这个数据后面也好添加逗号,否则数据类型为唯一的这个数据的数据类型。元组特点:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改。
2023-01-04 14:41:07
95
原创 【博学谷学习记录】超强总结,用心分享|大数据之Flume
flume目前是apache旗下的一款顶级开源项目, 最初是有cloudera公司开发的, 后期贡献给apache, flume是一款专门用于数据数据采集的工作, 主要的目的将数据从一端传输的另一端操作 flume也是使用java语言开发的 , flume一般部署在数据采集节点 在flume中提供多种数据源的组件和多种目的地组件, 主要的目的是为了能适应更多的数据采集场景。
2022-12-25 20:53:57
169
原创 【博学谷学习记录】超强总结,用心分享|大数据之Hbase核心原理
指的是当StoreFile不断的金西行合并操作, 这个大的HFile就会变得越来越大,当这个HFile达到一定阈值后, 就会触发Split分裂机制。思考: 请问多个Master启动后, 如何选定谁成为Active Master呢?思考: 请问 HBase的Master节点在进行数据读写的时候, 是否会参与呢?思考: 如果从一开始,就有大量的并发呢?思考: Master是如何分配Region的呢?思考: 为啥要分裂呢?那么Master宕机会影响什么呢?
2022-12-18 17:43:33
104
原创 【博学谷学习记录】超强总结,用心分享|大数据之Hbase介绍
对于市场来说, 其实就迫切需要一款能够支持大规模化的数据存储以及能够进行高效的随机读写操作, 而HBase其实就是在这样的背景下, 产生了, 但是主要的思想来源于google发布的一篇论文: BigTable。但是, 在实际生产环境中, 有时候的数据体量比较大, 但是希望能够对数据进行随机的读写操作, 而且不能太慢了, 那此时怎么办呢?6.3 稀疏性: 对于Null值, 在HBase中是不占用任何的存储空间的, 所以表可以搞的非常稀疏。6- HBase的存储的都是以字节类型存储的。
2022-12-11 21:38:19
230
原创 【博学谷学习记录】超强总结,用心分享|大数据之Kafka介绍
什么是消息队列呢?常见的消息队列的产品: Kafka是Apache旗下的一款开源免费的消息队列的中间件产品,最早是由领英公司开发的, 后期共享给Apache, 目前已经是Apache旗下的顶级开源的项目, 采用语言为Scala 官方网站: http://www.kafka.apache.org适用场景: 数据传递工作, 需要将数据从一端传递到另一端, 此时可以通过Kafka来实现, 不局限两端的程序 在实时领域中, 主要是用于流式的数据处理工作4. Kafka的安装操作参考Kaf
2022-12-04 10:56:06
130
原创 【博学谷学习记录】超强总结,用心分享|大数据之GROUPING
GROUPING是一个聚合函数,用在含有CUBE 或 ROLLUP 语句的SQL语句中,当结果集中的数据行是由CUBE 或 ROLLUP 运算产生的(添加的)则该函数返回1,否则返回0。在一个group by查询中,根据不同的维度组合进行聚合,等价于将不同维度的group by结果集进行union all。在一个GROUP BY查询中,根据不同的维度组合进行聚合,等价于将不同维度的GROUP BY结果集进行UNION ALL。rollup: 为cube的子集,以最左侧的维度为主,从该维度进行层级聚合。
2022-11-27 22:09:00
515
原创 【博学谷学习记录】超强总结,用心分享|大数据之 join数据倾斜
思路: 在创建这个表的时候,我们就可以预知到后续插入到这个表中, 那些key的值会产生倾斜, 在建表的时候, 将其提前配置设置好即可, 在后续运行的时候, 程序会自动将设置的k2的值数据单独找一个MR来进行单独的处理操作, 处理后, 再和原有MR进行union all的合并操作。说明: 不管是运行期, 还是编译期的join倾斜解决, 最终都会运行多个MR , 最终将多个MR的结果, 通过union all进行汇总, union all也是单独需要一个MR来运行的。在实际生产环境中, 应该使用那种方式呢?
2022-11-20 17:01:28
545
原创 【博学谷学习记录】超强总结,用心分享|大数据之数仓分层
数据仓库的数据反映的是一段相当长的时间内历史数据的内容,是不同时点的数据库快照的集合,以及基于这些快照进行统计、综合和重组的导出数据,而不是联机处理的数据。数据库中进行联机处理的数据经过集成输入到数据仓库中,一旦数据仓库存放的数据已经超过数据仓库的数据存储期限,这些数据将从当前的数据仓库中删去。2、进行数据综合和计算。数据仓库的每一个主题所对应的源数据在原有的各分散数据库中有许多重复和不一致的地方,且来源于不同的联机系统的数据都和不同的应用逻辑捆绑在一起;DW层的数据应该是一致的、准确的、干净的数据。
2022-11-06 15:07:26
632
原创 【博学谷学习记录】超强总结,用心分享|大数据之sqoop
sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具。导入数据:MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统;导出数据:从Hadoop的HDFS、HIVE中导出数据到关系数据库mysql等。
2022-10-31 20:43:33
320
原创 博学谷学习记录】超强总结,用心分享|大数据之Hive压缩与存储
TEXTFILE理论默认格式,数据不做压缩,磁盘开销大,数据解析开销大。可结合Gzip、Bzip2使用(系统自动检查,执行查询时自动解压),但使用这种方式,hive不会对数据进行切分,从而无法对数据进行并行操作。存储方式:行存储实例测试(ts STRING)理论二进制文件,以的形式序列化到文件中;SequenceFile是Hadoop API提供的一种二进制文件支持,其具有使用方便、可分割、可压缩的特点;
2022-10-23 16:55:23
158
原创 博学谷学习记录】超强总结,用心分享|大数据之Hive的复杂类型
hive复杂数据类型有三种,map,array,struct。map 是一种(key-value)键值对类型;array 是一种数组类型,array 中存放相同类型的数据;struct 是一种集合类型。
2022-10-16 17:59:20
226
原创 【博学谷学习记录】超强总结,用心分享|大数据之Hive表区分
内部表数据由hive自身管理,外部表数据由HDFS管理,内部表数据存储位置为hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己指定。对内部表的修改会将修改直接同步给元数据,而对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name),Hive创建内部表时,会将数据移动到数据仓库指向的路径;在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不会删除数据。
2022-10-08 17:24:28
124
原创 【博学谷学习记录】超强总结,用心分享|大数据之Hive
元数据:Metastore:本质上只是用来存储hive中有哪些数据库,哪些表,表的字段,,表所属数据库(默认是default) ,分区,表的数据所在目录等,元数据默认存储在自带的derby数据库中,推荐使用MySQL存储Metastore。数据库支持事务,可读可写;从hive的特点、架构及运行机制开始,并将hive与数据库做对比,简单介绍了hive,同时对hive的数据类型做一个简单的介绍。MetaStore:元数据,数据的数据,比如某个表的元数据,包括表名、表所属的数据库、表的类型、表的数据目录等;
2022-10-02 21:52:48
164
原创 【博学谷学习记录】超强总结,用心分享|大数据之ZooKeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,满足CAP理论中的CP,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
2022-09-07 16:53:05
337
原创 快速排序算法
快速排序每一轮排序选择一个基准点(pivot)进行分区1 让小于基准点的元素的进入一个分区,大于基准点的元素的进入另一个分区2. 当分区完成时,基准点元素的位置就是其最终位置在子分区内重复以上过程,直至子分区元素个数少于等于 1,这体现的是分而治之的思想 ([divide-and-conquer]从以上描述可以看出,一个关键在于分区算法,常见的有洛穆托分区方案、双边循环分区方案、霍尔分区方案单边循环快排(lomuto 洛穆托分区方案)选择最右元素作为基准点元素j 指针负责找到比基
2022-05-25 16:09:21
114
1
原创 冒泡与选择排序
冒泡实现方式一方式二 public static void main(String[] args) { //冒泡 int[] array = {5, 7, 2, 3, 9, 4, 8, 6, 1};// int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9}; bubble(array); } private static void bubble(int[] array) {
2022-05-24 16:54:23
56
原创 【博学谷学习记录】超强总结,用心分享|大数据之Hadoop
Hadoop学习过程Hadoop 是什么Hadoop是一个由Apache基金会所开发的分布式系统基础架构。主要是用来解决海量数据的存储和海量数据的分析计算问题。一般来说Hadoop通常是指——Hadoop生态圈。Hadoop优势高可靠性:地城维护多个数据副本,即使计算元素或者存储在运行中出现问题,也不会导致数据的丢失。高扩展性:在集群间分配任务数据,方便扩展新的任务节点。高效性:Hadoop中mapReduce的工作模式是并发进行,以加快任务处理的速度。高容错性:能够自动将失败的任务
2021-06-24 17:40:06
161
原创 mark一下 java 压缩流 zip格式
因为项目需要上传zip格式的压缩包,网上查询了一下,发现很都是对文件名和路径进行操作的,我的需求是是直接对MultipartFile file进行操作,因此记录一下;代码如下:`java@Autowiredprivate Environment env;@ApiOperation(value = "通过zip导入", notes = ")@RequestMapping(method ...
2019-05-16 19:30:10
95
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人