数据仓库的概念与设计 目录一、数据仓库概念二、数据仓库建模方法1.ER模型2.维度模型2.1事实表事实类型2.2维度表三、数据仓库设计一、数据仓库概念数据仓库是一个为数据分析而设计的企业级数据管理系统。数据仓库可集中、整合多个信息源的大量数据,借助数据仓库的分析能力,企业可从数据中获得宝贵的信息进而改进决策。同时,随着时间的推移,数据仓库中积累的大量历史数据对于数据科学家和业务分析师也是十分宝贵的。数据模型就是数据组织和存储方法,它强调从业务、数据存取和...
SQL之断点连续问题 1001 2022-04-021001 2022-04-041001 2022-04-051001 2022-04-071001 2022-04-111001 2022-04-121001 2022-04-141002 2022-04-031002 2022-04-051002 2022-04-071002 2022-04-091002 2022-04-111002 2022-04-151002 2...
Flink运行架构和提交流程 目录运行架构客户端JobManagerTaskManager与SlotsParallelism(并行度)Operator Chains(任务链)ExecutionGraph(执行图)提交流程运行架构客户端客户端不是运行和程序执行的一部分,而是用于准备和发送dataflow到JobManager. 然后客户端可以断开与JobManager的连接(detached mode),也可以继续保持与JobManager的连接(attached mo...
Flink的部署介绍 local-cluster模式Flink中的Local-cluster(本地集群)模式,主要用于测试, 学习。1.flink官网下载Apache Flink: Stateful Computations over Data Streams2.解压至工具目录,将其复制并改名为flink-local3.把上个文章中的无界流处理wordcount的API打包为jar包传入flink-local目录4.启动本地集群bin/start-cluster.sh5.在hadoop102中启动.
Flink简介和入门API 什么是FlinkFlink起源于Stratosphere项目,Stratosphere是在2010~2014年由3所地处柏林的大学和欧洲的一些其他的大学共同进行的研究项目,2014年4月Stratosphere的代码被复制并捐赠给了Apache软件基金会,参加这个孵化项目的初始成员是Stratosphere系统的核心开发人员,2014年12月,Flink一跃成为Apache软件基金会的顶级项目。在德语中,Flink一词表示快速和灵巧,项目采用一只松鼠的彩色图案作为lo...
Redis的主从复制机制 读写分离的好处性能优化:主服务器专注于写操作,可以用更适合写入数据的模式工作;同样,从服务器专注于读操作,可以用更适合读取数据的模式工作。强化数据安全,避免单点故障:由于数据同步机制的存在,各个服务器之间数据保持一致,所以其中某个服务器宕机不会导致数据丢失或无法访问。从这个角度说参与主从复制的Redis服务器构成了一个集群。搭建步骤1.思路Redis集群在运行时使用的是同一个可执行文件,只是对应的配置文件不同。daemonize yes...
Spark之Spark Streaming Spark Streaming是什么Spark Streaming用于流式数据处理DStream是什么Spark Streaming使用离散化流作为抽象表示,称作DStream,是随着时间的推移而得到的数据的序列。在DStream内部,每个时间区间收到的数据都作为RDD存在,DStream就是由这些RDD所组成的序列,DStream就是对RDD在实时处理场景中的一种封装。架构图DStream的创建 1.通过RDD队列 ...
Spark之SparkSQL 什么是SparkSQLSparkSQL是Spark用于结构化数据处理的模块SparkSQL的原理SparkSQL提供了两个编程抽象,DataFrame和DataSetDataFrame 1)DataFrame是一种类似RDD的分布式数据集,类似于传统数据库中的二维表格。2)DataFrame与RDD的主要区别在于,DataFrame带有schema元信息,即DataFrame所表示的二维表数据集的每一列都带有名称和类型。...
Spark之行动算子 因为转换算子都是懒加载,并不会立即执行,遇到行动算子才执行。目录1.reduce()2.collect()3.count()4.first()5.take()6.takeOrdered()7.aggregate()8.fold()9.countByKey()10.save11.foreach()1.reduce()聚合,f函数聚集RDD中的所有元素,先聚合分区内数据,再聚合分区间数据。 val listRDD: RDD[Int] ...
Spark之累加器 一、系统累加器累加器:分布式共享只写变量。(Executor和Executor之间不能读数据)累加器用来把Executor端变量信息聚合到Driver端。在Driver中定义的一个变量,在Executor端的每个task都会得到这个变量的一份新的副本,每个task更新这些副本的值后,传回Driver端进行合并计算。定义:SparkContext.accumulator(initialValue)方法object accumulator01_system ...
Spark之RDD转换算子 目录一.value类型1.map()2.mapPartitions()3.mapPartitionsWithIndex()4.flatMap()扁平化5.glom()6.groupBy()7.filter()8.sample()9. distinct()10.coalesce()11.repartition()12.sortBy()13. pipe()二、双value1.intersection()2.union()3.s...
Spark之RDD分区规则 1.RDD数据从集合中创建a.不指定分区 从集合创建rdd,如果不手动写分区数量的情况下,默认分区数跟本地模式的cpu核数有关local : 1个 local[*] : 笔记本所有核心数 local[K]:K个b.指定分区object fenqu { def main(args: Array[String]): Unit = { val conf: SparkConf = new SparkConf().setMaste...
Spark之RDD创建方式 在Spark中创建RDD的创建方式可以分为三种:从集合中创建RDD、从外部存储创建RDD、从其他RDD创建。创建时环境依赖<dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.12</artifactId> <version&g...
Spark之RDD概述 一、什么是RDDRDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。1.弹性:存储的弹性:内存与磁盘自动切换容错的弹性:数据丢失可以自动恢复计算的弹性:计算出错重试机制 分片的弹性:可根据需要重新分片2.分布式 数据...
Spark概述与使用 目录一、Spark概述1.1spark框架与hadoop框架1.2Spark的内置模块1.3Spark的特点二、Spark的使用2.1Spark的运行模式2.2Local模式2.3Spark集群中的角色介绍2.4Standalone模式2.5YARN模式三、WordCount案例一、Spark概述Spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。1.1spark框架与hadoop框架1.2Spark的内...
Scala之异常 java处理异常(1)Java语言按照try—catch—finally的方式来处理异常(2)不管有没有异常捕获,都会执行finally,因此通常可以在finally代码块中释放资源。(3)可以有多个catch,分别捕获对应的异常,这时需要把范围小的异常类写在前面,把范围大的异常类写在后面,否则编译错误。Scala处理异常(1)将代码封装在try块中。在try块之后使用了一个catch处理程序来捕获异常。如果发生任何异常,catch处理程序将处理它,程序将不会异常终止。(2)Scal
Scala之隐式转换与泛型 一、隐式转换隐式转换可以在不需改任何代码的情况下,扩展某个类的功能。实际的应用场景 是对于老旧的代码添加功能,如果直接修改源代码 很容易出现未知的bug,推荐使用隐式转换,自定义一个新的类 然后把需要添加功能的类隐式转换为新创建的类。 def main(args: Array[String]): Unit = { // 完成隐式转换 需要添加隐式函数 // 将当前作用域的所有int值 隐式转换为MyRichInt类 implicit def chang...
Scala之模式匹配 目录一、基本语法二、模式守卫三、匹配类型四、偏函数模式匹配一、基本语法模式匹配语法中,采用match关键字声明,每个分支采用case关键字进行声明,当需要匹配时,会从第一个case分支开始,如果匹配成功,那么执行对应的逻辑代码,如果匹配不成功,继续执行下一个分支进行判断。如果所有case都不匹配,那么会执行case _分支。// 模式匹配的基础语法 val a:Int = 10 val b:Int = 20 var c:Char = '+...
Scala之集合函数 目录一、基本操作二、衍生集合三、初级函数四、高级函数五、wordcount案例一、基本操作(1)获取集合长度(2)获取集合大小(3)循环遍历(4)迭代器(5)生成字符串(6)是否包含 def main(args: Array[String]): Unit = { val list: List[Int] = List(1, 2, 3, 4) val set: Set[Int] = Set(2, 4, 6, 8) //获取集合长度
Scala之集合 一、集合简介(1)Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展自Iterable特质。(2)对于几乎所有的集合类,Scala都同时提供了可变和不可变的版本,分别位于以下两个包。不可变集合:scala.collection.immutable可变集合: scala.collection.mutable(3)不可变集合,就是指该集合对象不可修改,每次修改就会返回一个新对象,而不会对原对象进行修改。类似于java中的String对象(4)可变集合,就是这个.