自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据仓库为什么要分层

数据仓库分层架构是数据仓库设计中的一个重要概念,其主要目的是为了更好地组织和管理数据,提高数据仓库的可维护性、可扩展性和性能。分层架构将数据仓库划分为多个层次,每个层次都有其特定的职责和功能。

2025-03-04 19:57:16 854

原创 数据仓库的特点

数据仓库的特点数据仓库的主要特点可以概括为:面向主题、集成性、非易失性、时变性、高性能和可扩展性、支持复杂查询和分析、分层架构以及数据质量管理。

2025-03-04 19:51:19 837

原创 关系建模和维度建模的区别?

概念含义 关系建模 关系建模是基于关系数据库理论的一种数据建模方法。它主要以规范化理论为基础,通过将数据分解为多个相互关联的关系(表)来减少数据冗余。例如,在一个企业资源规划(ERP)系统中,对于客户、订单和产品这三个实体,会分别建立 “客户表”“订单表” 和 “产品表”。“订单表” 中会包含客户 ID 和产品 ID 作为外键,用于关联 “客户表” 和 “产品表”,以此来确保数据的完整性和一致性。 关系模型强调的是数据的一致性和完整性,严格遵循数据库设计的范式规则,如第一范式(1NF)、第二范式

2025-01-12 21:20:49 459 1

原创 增量导入和全量导入的区别是什么?

定义 全量导入:是指将数据源中的所有数据一次性全部导入到目标系统中。例如,一个电商公司要将其旧数据库中的所有商品信息(包括商品名称、价格、库存等)全部迁移到新的数据库系统中,这个过程就是全量导入。这种方式会覆盖目标系统中已有的相关数据,以确保目标系统中的数据和数据源中的数据完全一致。 增量导入:只导入自上次导入(全量导入或增量导入)之后数据源中新增、修改或删除的数据。继续以电商公司为例,如果每天都有新商品上架、商品价格调整或者商品下架等情况,增量导入就只会把这些变化的商品信息更新到目标系统中,而不是重

2025-01-12 21:19:32 473

原创 hive在大数据体系里面起到什么作用

数据存储与管理方面数据查询与分析方面数据 ETL(抽取、转换、加载)方面

2025-01-07 20:59:26 856

原创 RDD的相关算子

特点:转换算子只是定义数据的处理规则,并不会立刻执行,是lazy(惰性)的。说明:在map算子的基础上,加入一个压扁的操作, 主要适用于一行中包含多个内容的操作,实现一转多的操作。说明:根据用户传入的自定义函数对数据进行过滤操作。格式: rdd1.union(rdd2) rdd1.intersection(rdd2)说明: 主要根据传入的函数,对数据进行一对一的转换操作,传入一行,返回一行。说明: 根据用户传入的自定义函数,对数据进行分组操作。格式:rdd.map(fn)格式:filter(fn)

2025-01-07 20:56:14 480

原创 如何理解RDD,以及RDD的五大特性和五大特点。

RDD:英文全称Resilient Distributed Dataset,叫做弹性分布式数据集,代表一个不可变、可分区、里面的元素可并行计算的分布式的抽象的数据集合。Resilient弹性:RDD的数据可以存储在内存或者磁盘当中,RDD的数据可以分区Distributed分布式:RDD的数据可以分布式存储,可以进行并行计算Dataset数据集:一个用于存放数据的集合。

2025-01-05 21:02:39 721

原创 Hadoop解决数据倾斜方法

数据倾斜是指在分布式数据处理过程中,数据在某些节点上的分布不均匀,导致这些节点的处理负载过重,而其他节点的资源闲置,从而影响整个系统的性能。

2025-01-03 21:04:11 704

原创 Spark基本介绍

在 Spark 的基础上,Spark 还提供了包括Spark SQL、Spark Streaming、MLlib 及GraphX在内的。当内存不足的时候,可以放置到磁盘上。1.定义:Aache Spark是用于大规模数据处理的统一分析引擎。(Python,SQL,Java,Scala,R),降低了学习难度。提供了一个全新的数据结构RDD(弹性分布式数据集)。,我们可以在一个应用中无缝地使用这些工具库。standalone(spark自带的)一,Spark是什么。二,Spark的发展。三,Spark的特点。

2025-01-02 21:11:18 965

原创 Spark和Mapreduce对比

1.MapReduce是基于进程进行数据处理,进程相对线程来说,在创建和销毁的过程比较消耗资源,并且速度较慢。2.MapReduce运行的时候,中间有大量的磁盘io过程。也就是磁盘数据到内存,内存到磁盘反复的读写过程。3.MapReduce只提供了较为底层的编程API,如果想要开发比较复杂的程序,那么就需要编写大量的代码。

2025-01-02 20:23:57 1166

原创 delete,drop,truncate的区别

【代码】delete,drop,truncate的区别。

2024-12-29 10:56:40 755

原创 Hive的功能,Hive创建表的⽅式,Hive的表有⼏种

【代码】Hive的功能,Hive创建表的⽅式,Hive的表有⼏种。

2024-12-29 10:55:07 1727

原创 datax与sqoop的优缺点?

DataX 的优缺点 优点 多种数据源支持:DataX 是一个开源的数据同步工具,它支持多种数据源之间的数据传输,包括关系型数据库(如 MySQL、Oracle、SQL Server 等)、非关系型数据库(如 HBase、Hive、Elasticsearch 等)以及文件系统(如本地文件、HDFS 等)。例如,它可以方便地将 MySQL 中的数据抽取出来并导入到 Hive 数据仓库中,用于后续的数据分析。 高性能数据同步:DataX 采用了多线程和内存队列等技术,能够实现高效的数据同步。在数据量

2024-12-28 20:24:46 797

原创 什么是事实表,什么是维表?

事实表(Fact Table)维表(Dimension Table)

2024-12-28 20:22:13 293

原创 拉链表,流⽔表以及快照表的含义和特点

拉链表 含义 拉链表主要用于记录数据的历史变化情况。从数据结构角度看,它的每条记录都包含了一个实体(如客户、产品等)的关键信息以及两个时间戳字段,即起始日期(Start_Date)和结束日期(End_Date)。起始日期表示这条记录开始生效的时间,结束日期表示这条记录失效的时间。当数据初次录入时,起始日期为数据产生的日期,结束日期通常会被设定为一个极大值(如 '9999 - 12 - 31'),代表当前记录处于有效状态。 以客户信息为例,假设初始有客户 A 的记录,姓名为张三,地址为北京

2024-12-27 21:49:47 1027

原创 Flink 中的 Time 有哪⼏种?

事件时间(Event Time) 概念: 事件时间是事件在其产生设备(如传感器、服务器等)上发生的时间。这个时间通常是嵌入在事件数据本身中的一个时间戳字段。例如,在一个物联网应用中,每个传感器采集数据时会记录下采集时刻的时间戳,这个时间戳代表的就是事件时间。 特点与应用场景: 处理乱序数据:在实际的大数据处理场景中,数据可能会因为网络延迟、分布式系统的异步传输等因素导致数据乱序到达。事件时间能够很好地处理这种情况。比如,在一个日志分析系统中,来自不同服务器的日志可能会因为网络状况不同而以

2024-12-26 18:30:56 1069

原创 Flink 集群有哪些⻆⾊?各⾃有什么作⽤?

在 Flink 集群中有以下几个重要角色:JobManager(作业管理器)TaskManager(任务管理器)Client(客户端)

2024-12-26 18:22:43 1621

原创 Kafka 数据传输的事务类型

Kafka 数据传输的事务类型(一)最多一次(At - Most - Once)含义 这意味着消息可能会丢失,但不会被重复处理。在这种事务模式下,生产者发送消息后,不会关心消息是否真正到达了 Kafka 集群或者是否被消费者成功消费。 例如,生产者发送一条消息后,在消息还没有完全写入 Kafka 的存储(比如还在网络传输过程中或者还在缓冲阶段),如果发生了网络故障或者生产者进程崩溃,这条消息就会丢失,并且生产者不会有任何重试机制。 适用场景 适用于对数据准确性要求不高,但对性能和

2024-12-25 21:02:21 614

原创 Kafka 监控都有哪些?

【代码】Kafka 监控都有哪些?

2024-12-25 21:01:49 1232 1

原创 Kafka 都有哪些特点?

Kafka 有一个活跃的社区和丰富的生态系统,与许多其他系统和工具(如 Hadoop、Spark、Flink 等)集成。:Kafka 提供了 Kafka Streams API,允许用户在 Kafka 集群上直接进行流处理。:Kafka 支持多租户,可以通过不同的主题(Topics)来隔离不同的数据流。:除了流处理,Kafka 也支持批处理和微批处理,以满足不同的数据处理需求。:Kafka 将消息持久化到磁盘,并支持数据副本,确保数据的可靠性。:Kafka 能够处理大量的数据,每秒可以处理数十万条消息。

2024-12-24 21:43:55 848

原创 SparkSQL与Hive语法差异

SparkSQL 是 Apache Spark 的一个模块,它提供了对结构化数据处理的支持。Hive 是基于 Hadoop 的一个数据仓库工具,它将 SQL 查询转换为 MapReduce 任务来执行。选择使用 SparkSQL 还是 Hive 取决于具体的业务需求、数据规模、性能要求以及与现有系统的兼容性。在某些情况下,两者可以结合使用,例如,使用 SparkSQL 来加速 Hive 查询。

2024-12-24 21:41:20 741

原创 Spark任务的执⾏流程

【代码】Spark任务的执⾏流程。

2024-12-23 21:24:36 718

原创 sqoop的参数有哪些?

【代码】sqoop的参数有哪些?

2024-12-23 21:22:43 699

原创 hive常用函数有哪些

• `dense_rank()`:类似于`rank()`,但是相同值会有相同的排名。• `get_json_object()`:从JSON字符串中提取值。• `unix_timestamp()`:返回日期的UNIX时间戳。• `date_format()`:按照指定的格式格式化日期。• `length()`或`len()`:返回字符串的长度。• `log10()`:返回数值的以10为底的对数值。• `date_add()`:给日期加上指定的天数。• `date_sub()`:从日期减去指定的天数。

2024-12-22 23:38:49 724

原创 数据倾斜的原因以及解决方法

数据倾斜是大数据处理中常见的问题,特别是在使用Hadoop这类分布式计算框架时。数据倾斜指的是在数据处理过程中,某些数据块或节点承担了比其他节点更多的工作负载,导致整体处理效率降低。

2024-12-21 21:39:07 829

原创 HDFS的常用命令

`hdfs dfs -chown [-R] [owner][:[group]] ... [path]`:更改文件/目录的所有者。- `hdfs dfs -get [hdfs_path] [local_path]`:从HDFS下载文件到本地。- `hdfs dfs -chmod [-R] [mode] ... [path]`:更改文件/目录的权限。- `hdfs dfs -chgrp [-R] [group] ... [path]`:更改文件/目录的组。

2024-12-21 21:36:32 358

原创 HDFS读流程和写流程

1)客户端向namenode请求下载⽂件,namenode通过查询元数据,找到⽂件块所在的datanode地址。7)客户端开始往dn1上传第⼀个block(先从磁盘读取数据放到⼀个本地内存缓存),以packet为单位。5)客户端请求dn1上传数据,dn1收到请求会继续调⽤dn2,然后dn2调⽤dn3,将这个通信管道建⽴完。1)客户端向namenode请求上传⽂件,namenode检查⽬标⽂件是否已存在,⽗⽬录是否存在。2)挑选⼀台datanode(就近原则,然后随机)服务器,请求读取数据。

2024-12-20 20:26:19 589

原创 数据仓库和数据库的区别

数据仓库(Data Warehouse)是一种专门设计用于报告和分析的数据库系统,它允许将来自一个或多个数据源的数据集成、存储和分析。数据仓库的主要目的是支持决策制定,通过提供快速访问历史数据和进行复杂查询的能力。以下是数据仓库的一些关键特性和概念:1. 主题导向:数据仓库围绕特定的业务主题构建,如销售、客户或财务,而不是围绕应用程序的功能。2. 集成性:数据仓库集成了来自不同源系统的数据,这些数据可能包括事务系统、应用程序和其他企业数据源。

2024-12-20 20:22:25 900

原创 MySQL 索引使⽤有哪些注意事项呢

【代码】.MySQL 索引使⽤有哪些注意事项呢。

2024-12-19 20:59:34 649

原创 shell常用工具与脚本

【代码】shell常用工具与脚本。

2024-12-19 20:58:25 2173

原创 简单介绍一下Linux的常用命令

功能:用于列出目录的内容,包括文件和子目录的名称、权限、所有者、大小、修改时间等信息。

2024-12-18 20:03:45 596

原创 简单介绍一下缓慢渐变维

SCD2(缓慢渐变类型2)一,什么是渐变维维度可以根据变化剧烈程度主要分为无变化维度、缓慢变化维度和剧烈变化维度。例如一个人的相关信息,身份证号、姓名和性别等信息数据属于不变的部分,政治面貌和婚姻状态属于缓慢变化部分, 而工作经历、工作单位和培训经历等在某种程度上属于急剧变化字段。大多数维度表随时间的迁移是缓慢变化的。比如增加了新的产品,或者产品的ID号码修改了,或者 产品增加了一个新的属性,此时,维度表就会被修改或者增加新的记录行。这样,在设计维度和使用维度的过程中,就要考虑到缓慢变化维度的处理。

2024-12-18 19:56:00 942

原创 维度表设计时常采用的模型

维度属性随时间变化的处理方式,通常有三种类型:TYPE1(直接覆盖原值)、TYPE2(拉链表,记录历史变化)、TYPE3(增加属性列)。- 星型模型由一个中心的事实表和多个维度表组成,维度表直接与事实表通过外键关联,形成星型结构。- 雪花模型是星型模型的扩展,维度表被进一步规范化为多个维度表,形成多层次的结构。- 宽表是将事实表和维度表合并形成的大表,它包含了所有相关的维度信息。在设计维度表时,需要考虑业务需求、数据的使用方式、查询性能和维护成本等因素,以选择最合适的模型。

2024-12-16 23:43:15 308

原创 常见的hive调优手段

1. 调整Map和Reduce任务的数量**:通过设置`mapred.reduce.tasks`参数来指定Reduce任务的数量,或者通过`hive.exec.reducers.bytes.per.reducer`和`hive.exec.reducers.max`来控制每个任务处理的数据量和最大Reduce任务数。8. 调整JVM重用:通过设置`mapreduce.map.java.opts`和`mapreduce.reduce.java.opts`来优化JVM的使用,可以提高任务的执行效率。

2024-12-16 23:40:59 871

原创 常见的开窗函数

DENSE_RANK():为每个分区内的行分配一个排名,如果有相同的值,排名不会跳过。RANK():为每个分区内的行分配一个排名,如果有相同的值,排名会跳过。函数的使用场景非常广泛,统计记录总数,统计非空记录数,分组统计,使用场景:当需要连续的排名,且不希望有排名跳跃时使用。使用场景:在时间序列数据中,获取时间段的开始/结束值。使用场景:在时间序列数据中,获取时间段的开始/结束值。使用场景:查看下一条记录的值,如下一个学生的分数。使用场景:查看下一条记录的值,如下一个学生的分数。

2024-12-15 21:33:23 687

原创 1050.合作过至少三次的演员和导演

了解索引的概念和作用,以及如何通过创建索引来提高查询性能。子句的作用,即按照一个或多个列对结果集进行分组。子句的使用,它用于对聚合后的结果进行条件过滤,与。理解SQL语言的基本结构和语法,包括。掌握聚合函数的使用方法,如。,用于计算分组内的记录数。是在分组和聚合之后应用的。

2024-12-15 21:23:19 452

原创 sqoop的工作原理

它旨在简化数据的导入(import)和导出(export)过程,使得在Hadoop的分布式文件系统(HDFS)和关系型数据库之间迁移数据变得更加容易。对于数据导入,它创建一个 Map 任务,该任务将数据库中的数据读取到 HDFS 中。)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导出到关系型数据库中。:Sqoop 可以处理导入过程中的错误,例如,通过将错误记录到一个单独的文件中。

2024-12-14 22:39:48 562

原创 力扣1121.查询结果的质量和占比

https://leetcode.cn/problems/queries-quality-and-percentage/三,解题思路如下 理解查询目标:首先,需要理解查询的目的,即计算每个查询的平均质量()和低质量查询的百分比()。分析表结构:了解表的结构,特别是、和字段的含义和数据类型。处理NULL值:确定是否需要处理值,以及如何处理。在本例中,子句已经排除了为的记录。计算平均质量:计算每个查询的平均质量,即评分()与位置()的比值。这需要使用函数来计算平均值,并使用函数来限制小数点后的位数。

2024-12-14 22:20:16 381

原创 力扣1407.排名靠前的旅行者

这部分选择了学生ID(st.student_id)、学生姓名(st.student_name)、科目名称(su.subject_name)和该学生参加该科目考试的次数(count(e.subject_name))。这部分表示按照学生ID、学生姓名和科目名称进行分组。由于使用了cross join,每个学生和每个科目都会形成一个组合,然后左连接Examinations表,计算每个学生对于每个科目的考试次数。cross join subjects su`:表示与subjects表进行笛卡尔积连接,别名为su。

2024-12-13 21:14:36 276

原创 力扣1280.学生参加各科测试的次数

left join Examinations e on e.student_id=st.student_id and e.subject_name=su.subject_name`:表示左连接`Examinations`表,别名为`e`。这部分选择了学生ID(`st.student_id`)、学生姓名(`st.student_name`)、科目名称(`su.subject_name`)和参加考试的次数(`count(e.subject_name)`)。这部分表示按照学生ID、学生姓名和科目名称进行分组。

2024-12-12 21:28:57 639

空空如也

空空如也

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

TA关注的人

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