自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 离线数仓(总结)

四:维度建模理论之维度表事实表紧紧围绕业务过程进行设计,而维度表则围绕业务过程所处的环境进行设计。维度表主要包含一个主键和各种维度字段,维度字段称为维度属性。规范化与反规范化:规范化是指使用一系列范式设计数据库的过程,其目的是减少数据冗余,增强数据的一致性。通常情况下,规范化之后,一张表的字段会拆分到多张表。反规范化是指将多张表的数据冗余到一张表,其目的是减少join操作,提高查询性能。在设计维度表时,如果对其进行规范化,得到的维度模型称为雪花模型,如果对其进行反规范化,.

2022-02-28 08:49:30 3422 2

原创 Spark详细总结

flatmapmapmapValues一:Spark简介 park和Hadoop的根本差异是多个作业之间的数据通信问题 : Spark多个作业之间数据通信是基于内存,而Hadoop是基于磁盘。 Spark的缓存机制比HDFS的缓存机制高效。二:wordCount()分析 (flatmap() 与 map())flatmap与map我的理解:读取数据是一行一行读的,(如果每一行的数据源是 (Hello World Hell...

2022-02-11 19:45:12 9355

原创 HIVE总结

一:hive作用Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。Hive本质:将HQL转化成MapReduce程序(1)Hive处理的数据存储在HDFS(2)Hive分析数据底层的实现是MapReduce(3)执行程序运行在Yarn上1.1:Hive优缺点1>Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数;缺点:1)Hive的HQL表达能力有限(1)迭代式算法无法表达(2)数

2022-02-04 16:37:29 5953

原创 Spark算子

一:RDD转换算子RDD根据数据处理方式的不同将算子整体上分为Value类型、双Value类型和Key-Value类型1、map (def map[U: ClassTag](f: T => U): RDD[U])TODO 算子 - 转换所谓的转换算子,其实就是通过调用RDD对象的方法,将旧的RDD转换为新的RDD通过转换,将多个功能组合在一起.将处理的数据逐条进行映射转换,这里的转换可以是类型的转换,也可以是值的转换。object Spark01_RDD_OperTr.

2022-01-16 20:56:07 4646

原创 Spark第一天和第二天总结

一:分布式基础架构二:Spark大数据分析计算引擎Spark在传统的MapReduce 计算框架的基础上,对计算过程的优化,从而大大加快了数据分析、挖掘的运行和读写速度,并将计算单元缩小到更适合并行计算和重复使用的RDD计算模型。软件是完整的,框架是不全的,我们自己写的代码逻辑,需要部署到环境中才能够运行;val spakConf = new SparkConf().setMaster("local").setAppName("WordCount").set...

2022-01-14 07:16:46 1268

原创 Spark 第三天总结

一: RDDRDD是一个数据结构,是一个对象,是一个抽象类RDD是一个数据模型,封装了计算逻辑RDD内部使用了分区Hbase中的Range为了解决高表查询效率慢 宽表(列组)Kafka中的Range为了提高消费者组的消费效率RDD中的分区适合并行计算(封装了最小功能,便于重复使用)RDD实现方式采用了装饰者设计模式RDD(Dataset)不保留数据,类似于管道,转移数据,但是不保留数据1.1:既然有分区数据应该放到哪里kafka中有个partitione

2022-01-12 21:40:04 1438

原创 Spark总结(第一天和第二天)

资源不足

2022-01-11 23:29:49 98

原创 Scala总结

1>Java是面向对象的语言. Scala是完全面向对象的语言.2>object : 因为Scala是完全面向对象的语言,因此很多不是...

2022-01-11 18:23:53 670

原创 HDFS-windows下测试hdfs命令

public class HdfsClient1 { private FileSystem fs; //初始化一个FileSystem @Before public void init() throws URISyntaxException, IOException, InterruptedException { //1:获取文件系统 URI uri = new URI("hdfs://myhadoop105:9820"); .

2021-12-09 11:19:16 1432

原创 Hadoop中的压缩

压缩主要关注点:压缩率,压缩速度,解压速度,是否可切片一:压缩的作用压缩技术能够减少底层HDFS读写字节数,减少磁盘IO,提升网络传输效率,因为磁盘IO和网络带宽是Hadoop的宝贵资源;特别是在运行MR程序时,I/O,网络数据传输,shuffle及Merge都要花大量的时间,因此压缩非常重要;压缩是提升Hadoop运行效率的一种优化策略,使用得当可以提升效率,但是使用不当也可能降低效率1.1:压缩的原则:1、计算(运算)密集型任务:大量使用CPU去做数学运算,此时少用压缩..

2021-12-01 19:17:44 993

原创 Shell语法详解

一:shell概述shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核。shell还是一个功能强大的编程语言,易编写、易调试、灵活性强1.1:linux提供的解释器/bin/sh/bin/bash/sbin/nologin/usr/bin/sh/usr/bin/bash/usr/sbin/nologin1.2:bash和sh的关系可知sh是bash的一个软链-rwxr-xr-x. 1 root root 964544 4月

2021-11-29 09:40:53 3484

原创 Hadoop中常见的概念

一:Hadoop概念:分布式系统基础架构:海量数据存储和分析计算.1.1:Hadoop组成MaReduceYarnHDFS :存储文件的元数据,文件名,目录结构等等,快列表及块所在的DataNode等等;Common :1.2:Yarn架构名词概念:1>ResourceManager 集群的管理者2> NodeManager 单台服务器的资源管理者3>ApplicationMater 单个应用程序的管理者...

2021-11-28 23:17:10 492

原创 大数据概论

一:大数据的概念:指无法在一定时间内使用常规软件工具进行捕捉、管理和处理的数据集合,需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的管理数据技术。1.1:主要解决的问题:海量数据的存储和海量数据的分析计算海量的理解:TB PB EB 及以上 ZB YB BB NB DB等等1.2:大数据的特点:(4v)1>volume TB PB EB2>velocity 处理速度 双十一3>variet...

2021-11-22 21:05:15 1487

原创 JAVA中的反射(Reflect)

一:类加载类在内存中的生命周期:加载-->使用-->卸载1.1:类的加载过程(1)加载:load指将类型的clas字节码数据读入内存。通过类的全名,获取类的二进制数据流。解析类的二进制数据流为方法区内的数据结构创建java.lang.Class类的实例,表示该类型。作为方法区这个类的各种数据的访问入口(2)连接:link 准备:准备对应的内存准备对应的内存(方法区),创建Class对象,为类变量赋默认值,为静态常量赋初始值。解析:将类、...

2021-11-19 18:14:39 607

原创 正则表达式最基本应用

正则表达式概述:正则表达式也是一门语言,作用主要用于文本校验查找。正则表达式使用:String类型中有一个方法matches()在文档上可以查找对应的文档。测试一:@Test public void test03(){ String s = "12"; //匹配0-9// boolean matches = s.matches("[\\d]"); //匹配0-9// boolean m...

2021-11-19 18:14:10 720

原创 Maven详细总结

一:为什么要使用Maven1.1:大量的jar包JavaEE开发领域,需要使用大量的第三方框架和工具jar包,如果每次都进行复制到WEB-INF目录下的lib目录中会导致每次创建一个新的工程就需要将jar包再次复制到lib目录下,从而造成工作区中存在大量重复的文件。另外,大量的jar包避免不了版本的冲突。Maven拥有一套完全统一规范的jar包管理体系。可以将每个jar包只在本地仓库中保存一份,项目只需要需要维护一个文本形式的jar包的引用(规范,完整,准确)——我们称之为“坐标”,不

2021-11-15 22:05:55 2129

原创 Day05—JDBC操作事务与数据库连接池

一:JDBC操作事务1.1:事务异常回滚事务控制连接.setAutoCommit(false); 开启事务连接.rollback();连接.commit();connection.setAutoCommit(false);connection.setAutoCommit(true); @Test public void test01() throws SQLException, IOException, ClassNotFoundException {...

2021-11-14 22:23:09 945

原创 Day04—详细总结JDBC

一:固定的步骤//1:注册驱动(需要有驱动包)//2:获取连接//3:准备sql//4:创建sql发送器 即 操作sql的对象//5:sql执行//6:获取数据并展示//7:关闭资源注意使用jdbc 主要是进行 DML 操作 对数据的增删改查演示的表:二:statement 语句2.1:增删改@Test public void test01() throws SQLException { //1:注册驱动(需要有驱..

2021-11-13 23:42:14 1125

原创 Day04—MySQL事务与三大范式

一:事务概述事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。 在一个事务中执行多个操作时,要么所有的事务都被提交(commit),那么这些修改就永久地保存下来;要么数据库管理系统将放弃所作的所有修改,整个事务回滚(rollback)到最初状态。例如转账操作:A账户要转账给B账户,那么A账户上减少的钱数和B账户上增加的钱数必须一致,也就是说A账户的转出操作和B账户的转入操作要么全部执行,要么全不执行;如果其中一个操作出现异常而没有执行的话,就会导致账户A和账户B的转入转出金

2021-11-13 19:41:02 1649

原创 MySql—前三天重点知识点总结

总结前:不会的语法内容一定要学会如何查找mysql文档一 : MySql的安装以及注意事项不要安装到中文路径下1.1配置环境变量1.找到mysql安装目录的server 下的bin 2.将此目录添加到 环境变量的系统变量的path内 C:\install\mysql\server\bin1.2 MySql的登录cmd 打开dos窗口 mysql -u用户名 -p密码 mysql -uroot -p12...

2021-11-12 20:27:11 3562

原创 (day03):MySQL函数及多表查询

注意:开发中函数可以到MySql文档中查找,是函数都需要加().一:练习1.新建 教室表 教室id 主键自增 课程 非空2.新建表 person id 主键自增 名字 非空 邮箱 唯一 性别 默认男 房间编号 关联 教室表 教室id 级联策略 删除父表数据 子表对应数据设置为null 修改父表数据 子表数据一同修改 3.分别插入三条数据 4.删除父表数据 修改父表数据create t...

2021-11-11 12:27:52 820

原创 day00—MySQL三张基础表

/*SQLyog Ultimate v11.25 (64 bit)MySQL - 5.5.27 : Database - mysqldb**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UN.

2021-11-09 21:24:15 195

原创 day01 —Mysql复习

练习题一--新建一个库 onecreate database one;--在库中新建一张表 studentuser one;create table student( id int , name varchar(20), score double)--字段 id 整型--字段 name 字符串--字段 score 浮点型select * from student;--添加三条数据insert into student values(1,"李白"...

2021-11-09 18:38:53 232

原创 MySQL —(Day01)DDL与DML基础

一:链接MySQL连接mysql 1.开启服务 1.1 打开 我的电脑 右键 服务和应用程序 服务 运行 1.2 管理员身份 运行 cmd net start 服务名 net stop 服务名 2.连接mysql 2.1 dos命令连接 2.1.1 cmd 打开dos窗口 ...

2021-11-08 21:55:07 893

原创 011—JAVA新特性Option类

Optional实际上是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。如何创建Optional对象?或者说如何用Optional来装值对象或null值(1)static <T> Optional<T> empty() :用来创建一个空的Optional(2)static <T> Optional<T> of(T value) :用来创建一个非空的Optional(3.

2021-11-07 22:25:50 873

原创 011—JAVA新特性StreamAPI

创建 Stream方式一:通过集合Java8 中的 Collection 接口被扩展,提供了两个获取流的方法: public default Stream<E> stream() : 返回一个顺序流 public default Stream<E> parallelStream() : 返回一个并行流 创建 Stream方式二:通过数组Java8 中的 Arrays 的静态方法 stream() 可以获取数组流: public static

2021-11-07 20:25:47 116

原创 011—JAVA新特性方法引用与构造器引用(lambda)

Lambda表达式是可以简化函数式接口的变量与形参赋值的语法。而方法引用和构造器引用是为了简化Lambda表达式的。当Lambda表达式满足一些特殊的情况时,还可以再简化:情况:1)Lambda体只有一句语句,并且是通过调用一个对象的/类现有的方法来完成的例如:System.out对象,调用println()方法来完成Lambda体Math类,调用random()静态方法来完成Lambda体 ()(2)并且Lambda表达式的形参正好是给该方法的实参例如:t->Syste.

2021-11-07 09:37:36 147

原创 012—JAVA8新特性(lambda表达式)

函数式编程(lambda表达式 @FunctionalInterface) 思想:(函数式编程VS面向对象)函数就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。编程中的函数,也有类似的概念,你调用我的时候,给我实参为形参赋值,然后通过运行方法体,给你返回一个结果。对于调用者来做,关注这个方法具备什么样的功能。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法——强调做什么,而不是以什么形式做。面向对象的思想:...

2021-11-06 23:52:58 217

原创 011—JAVA中的Collections

Collections:操作集合的工具类Collection:集合的顶级接口@Test public void test01(){ ArrayList<String> list = new ArrayList<>(); //批量新增 Collections.addAll(list,"A","B","C","D","C"); System.out.println("list = " + list);...

2021-11-05 23:54:49 67

原创 011—HashMap的储值原理详解

HashMap 储值原理一.当创建HashMap对象时 成员变量的变化 this.loadFactor = DEFAULT_LOAD_FACTOR;( 加载因子) public HashMap() { this.loadFactor = DEFAULT_LOAD_FACTOR; // all other fields defaulted } //底层哈西表内顺序表默认长度 static final int DEFAULT_INI...

2021-11-04 23:56:47 295

原创 011——LinkedHashMap和TreeMap

LinkedHashMap 是 HashMap 的子类。此实现与 HashMap 的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映射中的顺序(插入顺序)。底层代码 维护了前后指针保证了添加的顺序,可以按照添加的顺序进行遍历static class Entry<K,V> extends HashMap.Node<K,V> { Entry<K,V> before, af...

2021-11-04 20:05:16 322

原创 011—HashMap和Hashtable

HashMap和Hashtable中的方法大多都是map中的,可以参考map的HashMapHashtable 底层都是哈西表同: 1.底层都是哈西表不同: 1. Hashtable 第一次创建对象的时候就会给底层数组开辟空间 Entry[] 11 HashMap 创建对象时 没有给底层数组进行空间开辟 当添加数据时才进行空间开辟 2.Hashtable key value 都不能有null值 HashMap key v...

2021-11-04 19:50:14 57

原创 011—JAVA中的Map<k,v>集合详解

Map<k,v>集合的实现类的家谱图Map:顶级接口 存储键值对以HashMap实现类为例演示方法--- HashMap key:无序 唯一 value: 没有特殊要求 满足泛型即可 注意: 如果key重复了 新的value 会替换旧的valueMap中的常用方法增 : put()添加键值对 putAll()删:remove() 根据键删除值改:replace(K...

2021-11-02 23:38:19 1968

原创 011—JAVA中的集合 (set)

Set 相较于之前的Collection并没有新增方法,因此要研究的是它的实现类Set的特点 无序 唯一HashSet (无序唯一) LinkedHashSet (按添加顺序) TreeSet(自然顺序)HashSetHashSet 无序:数据展示 并不是添加顺序 (hash表内的顺序) 唯一:数据不重复 注意: 如果存储自定义类型数据 必须重写 hashCode() equals()...

2021-10-31 23:12:07 149

原创 011—JAVA中list的实现类

Arraylist与Vector的区别

2021-10-31 21:43:45 715 1

原创 011—JAVASE中最常用的部分集合之一(list)

与collection的继承图谱由图可知,集合vector,ArrayList ,LinkedList 都继承于父类AbstractList,并实现了list,间接实现了Collection,因此Collection中的方法所有的实现类都可以使用。回顾Collection中的方法...

2021-10-31 19:33:41 156

原创 011—JAVA SE中最重要的章节之一集合(Collection接口)

Collection属于最上层的几口其中包含了许多子接口共有的方法 因此主要学习Collection接口中的方法增:add() addAll()删:remove() removeAll()改: 没有查: contains(Object) containsAll(Object) 其它 size() isEmpty() iterator() toArray() (转成Object类型数组) ...

2021-10-29 00:02:22 241

原创 010—JAVA中枚举详解

枚举类型本质上也是一种类,只不过是这个类的对象是固定的几个,而不能随意让用户创建。jdk5.0之前实现枚举效果: 1.构造器私有(枚举类中的成员个数固定,防止对外造对象) 2.显示提供有限的值 (public static final修饰)public static final Season SPRING = new Season("春天", "春暖花开");jdk5.0之后jdk5之后的枚举 大大简化了...

2021-10-28 21:46:47 87

原创 010—包装类型的缓存区即注意事项

结论: Integer /Byte/Short/Long [-128,127] Float 没有缓存区 Double 没有缓存区 Boolean true/false Character [0,127] 使用缓存区的目的是:包装类型都是对象,(创建对象就需要在内存中开辟空间,由于内存很重要 )以Integer为例由于正常情况下对于较小的数值的应用比较频繁,因此就用一个字节8位,将这些数字缓存起来,避免使用的时候,重复的创建对象...

2021-10-28 21:23:22 116

原创 010—JAVA包装类型比基本数据类型多的功能

十进制转换成任意进制System.out.println(11);System.out.println(0B11);//0b/B 2进制System.out.println(011);//0开头 8进制System.out.println(0X11);//0x/X 16进制//将10进制转为 2进制 String toBinaryString = Integer.toBinaryString(5); System.out.println("toBinar

2021-10-28 20:35:06 90

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除