文章目录

  • 数据仓库
    • 什么是数据仓库?
    • 数据库与数据仓库的区别?
    • 事实表和维度表
    • 数据仓库的数据模型:
    • 为什么数据仓库要分层?
    • 数据仓库模式:Kimball (金箔)和 Inmon(恩门)
    • 数据库架构——Lambda架构和Kappa架构
    • 数据仓库五步法的流程
    • ETL、ELT
  • 业务方面
    • 1. 在处理大数据过程中,如何保证得到期望值
    • 2. 你感觉数仓建设中最重要的是什么
    • 3. 数据仓库建模怎么做的
    • 4. 数据质量怎么监控
    • 5. 数据分析方法论了解过哪些?
      • 手写 WordCount
  • 大数据量数据库的性能优化方案
    • 读写分离
    • 分库分表
    • 实践

数据仓库

什么是数据仓库?

数据仓库,英文名称为Data Warehouse,可简写为DWDWH。用于数据存储,数据分析和数据决策的系统。 【重点是分析数据,为了企业提供决策支持 Decision Support

数据仓库描述是⼀个⾯向主题的、集成的、随时间变化的、⾮易失的数据集合,⽤于⽀持管理者的决策过程。

  • 面向主题:数据仓库中的数据是按照一定的主题域进行组织的,每一个主题对应一个宏观的分析领域。数据仓库排除对于决策无用的数据,提供特定主题的简明视图。
  • 集成的:企业内不同业务部门数据的完整集成。 对于企业内所有数据的集成要注意一致性(假设财务系统中对于性别使用 F/M,而 OA 系统对性别使用 A/B,这就是数据不一致,如果想搭建企业级的数据仓库,需要数据具有一 致性)。
  • 随时间变化的:数仓里会完整的记录某个对象在一段时期内的变化情况。
  • 非易失:⼀旦进⼊到数据仓库中,数据就不应该再有改变

数据库与数据仓库的区别?

  • OLTP是Online Transaction Processing的简称;联机事务处理也就是我们常见的关心型数据库,MySQL
  • OLAP是OnLine Analytical Processing的简称;联机分析处理 也就是我们的数据仓库,数据仓库也分为离线和实时数据仓库

  • 可以但是没必要,因为读的压力比写的压力大 通常事务处理的优先级⽐分析系统⾼,所以如果分析系统和事务 处理运⾏在同⼀硬件之上,分析系统往往性能很差。
  • OLTP 存储的时间短,只有月、周
  • 数据格式,字段不统一;例如不同的RDBMS 关系数据库管理系统(Relational Database Management System:RDBMS
  • 某些业务数据由于安全或其他因素不能直接访问。

所以,衍生出OLAP 联机分析处理 Online Analytical Processing


区别 OLTP OLAP
数据源 当前的运行的业务 多个数据来源
目的 面向应用,面向业务
捕获数据
面向主题,面向分析
分析数据
焦点 当下 历史过去。当时目前的实时仓库也支持当下分析
任务 读和写 读多写少。
响应时间 毫秒 小时 分钟 秒 天等
数据量 小 MB,GB 大 TB,PB;这里的大是处理的数据规模大;
设计 三范式 :最大的精确的和最小的冗余度;
便于数据的插入、更新
星形、等等

事实表和维度表

  • 维度表:观察事物的的角度;
    维度表(Dimension Table);它保存了维度的属性值,可以跟事实表做关联;相当于将事实表上经常重复出现的属性抽取、规范出来用一张表进行管理。常见的维度表有:日期表(存储与日期对应的周、月、季度等的属性)、地点表(包含国家、省/州、城市等属性)等。

  • 事实表:关注事物的内容;
    事实表(Fact Table)是指存储有事实记录的表,如系统日志、销售记录等;事实表的记录在不断地动态增长,所以它的体积通常远大于其他表。

数据仓库的数据模型:

星型模型

  • 星型模是一种多维的数据关系,它由一个事实表和一组维表组成。每个维表都有一个维作为主键,所有这些维的主键组合成事实表的主键。强调的是对维度进行预处理,将多个维度集合到一个事实表,形成一个宽表

  • 提升了查找效率;主要的数据在事实表里面,只要对事实表扫描就可以进行大量的查询,不必进行大量的join,或者就算join,维度的数据一般少,可以直接放到内存里面也可以提高效率;
  • 可读性好,维护简单,不用关联多个表就可以获取大部分的核心内容;

雪花模型

  • 当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 "层次 " 区域,这些被分解的表都连接到主维度表而不是事实表。

  • 雪花模型更加符合数据库范式,减少数据冗余,
  • 但是在分析数据的时候,操作和后期的比较复杂,需要join的表比较多所以其性能并不一定比星型模型高。

星座模型

  • 有多个事实表,会督标是公共的,可以共享

为什么数据仓库要分层?

空间换时间,通过大量的预处理来提升应用系统的用户体验(效率),因此数据仓库会存在大量冗余的数据。

  • 如果不分层的话,如果源业务系统的业务规则发生变化将会影响整个数据清洗过程,分散工作量
  • 通过数据分层管理可以简化数据清洗的过程,因为把原来一步的工作分到了多个步骤去完成,相当于把一个复杂的工作拆成了多个简单的工作,把一个大的黑盒变成了一个白盒,每一层的处理逻辑都相对简单和容易理解,这样我们比较容易保证每一个步骤的正确性,当数据发生错误的时候,往往我们只需要局部调整某个步骤即可。

分层的主要原因是在管理数据的时候,能对数据有一个更加清晰的掌控,详细来讲,主要有下面几个原因:

  • 清晰数据结构:每一个数据分层都有它的作用域,在使用表的时候能更方便地定位和理解。
  • 数据血缘追踪:简单来说,我们最终给业务呈现的是-个能直接使用业务表,但是它的来源有很多,如果有- -张来源表出问题了 ,我们希望能够快速准确地定位到问题,并清楚它的危害范围。
  • 减少重复开发:规范数据分层, 开发一些通用的中间层数据 ,能够减少极大的重复计算。
  • 把复杂问题简单化:将一个复杂的任务分解成多个步骤来完成,每一-层只处理单-的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
  • 屏蔽原始数据的异常:屏蔽业务的影响,不必改- -次业务就需要重新接入数据

  • ODS:操作型数据(Operational Data Store),指结构与源系统基本保持一致的增量或者全量数据。作为DW数据的一个数据准备区,同时又承担基础数据记录历史变化,之所以保留原始数据和线上原始数据保持一致,方便后期数据核对需要。
  • CDM:通用数据模型,又称为数据中间层(Common Data Model),包含DWD、DWS、DIM层。
    • DWD:数据仓库明细层数据(Data Warehouse Detail)。对ODS层数据进行清洗转化,以业务过程作为建模驱动,基于每个具体的业务过程特点,构建最细粒度的明细事实表。可以结合企业的数据使用特点,基于维度建模思想,将明细事实表的某些重要属性字段做适当冗余,也即宽表化处理,构建明细宽表。
    • DWS:数据仓库汇总层数据(Data Warehouse Summary),基于指标需求,构建初步汇总事实表,一般是宽表。基于上层的应用和产品的指标需求,构建公共粒度的汇总指标表。以宽表化手段物理化模型,构建命名规范、口径一致的统计指标,为上层提供公共指标。
    • DIM:建立一致数据分析维表,可以降低数据计算口径不统一的风险,同时可以方便进行交叉探查。以维度作为建模驱动,基于每个维度的业务含义,通过添加维度属性、关联维度等定义计算逻辑,完成属性定义的过程并建立一致的数据分析维表。
  • ADS:面向应用的数据服务层(Application Data Service)。整合汇总成分析某一个主题域的服务数据,面向应用逻辑的数据加工。该层主要存放数据产品个性化的统计指标数据,这一层的数据直接对接数据的消费者,是产品、运营等角色可以直接感知理解的一层,大多数这一层的表都可以直接在BI上通过图表的形式直接透出。

数据仓库模式:Kimball (金箔)和 Inmon(恩门)

Inmon 的模型从流程上看是自顶向下的,即从分散异构的数据源 -> 数据仓库 -> 数据集市。

1)操作型系统的数据和体系外数据需要经过ETL过程,加载到企业数据仓库中
2)企业数据仓库是企业信息化工厂的枢纽,是原子数据的集成仓库,其目的是将附加的数据存储用于各类分析型系统;在数据仓库中会对数据进行清洗,并抽取实体-关系。
3)数据集市是针对不同主题的聚集区域

Kimball 的模型是自底向上的,即从数据集市-> 数据仓库 -> 分散异构的数据源。

1)Kimball 的模型的数据源往往是给定的若干个数据库表,数据较为稳定但是数据之间的关联关系比较复杂,需要从这些OLTP中产生的事务型数据结构抽取出分析型数据结构。Kimball 是以最终任务为导向,将数据按照目标拆分出不同的表需求,通过ETL导入数据集市层

2)Kimball模型将分散异构的数据源经ETL转化为事实表和维度表导入数据集市,数据集市由若干个事实表和维度表组成

3)在数据集市将事实表和维度表根据分析主题组合后导入数据仓库中,用于数据分析

两大派系对优缺点总结

  • Inmon 架构:核心是要求规范化表,需要用大量的时间来梳理和设计数据表结构,但如果规范化数据仓库一旦建立好了,则以后数据就更易于管理。而且由于开发人员不能直接使用其中心数据库,更加确保了数据质量,中心数据库是采用规范化设计的,冗余情况也会更少。

  • kimball 架构:对数据表结构没有强规范型要求,数据仓库的建设相对较快,适用于业务变化比较频繁的情况,对开发人员的要求也不是很高。

数据库架构——Lambda架构和Kappa架构

你可以看到,大数据平台由上到下,可分为三个部分:数据采集、数据处理、数据输出与展示。

数据采集

  • 将应用程序产生的数据和日志等同步到大数据系统中,由于数据源不同,这里的数据同步系统实际上是多个相关系统的组合。数据库同步通常用 Sqoop,日志同步可以选择 Flume,打点采集的数据经过格式化转换后通过 Kafka 等消息队列进行传递。

  • 不同的数据源产生的数据质量可能差别很大,数据库中的数据也许可以直接导入大数据系统就可以使用了,而日志和爬虫产生的数据就需要进行大量的清洗、转化处理才能有效使用。

数据处理

  • 这部分是大数据存储与计算的核心,数据同步系统导入的数据存储在 HDFS。MapReduce、Hive、Spark 等计算任务读取 HDFS 上的数据进行计算,再将计算结果写入 HDFS。

  • MapReduce、Hive、Spark 等进行的计算处理被称作是离线计算,HDFS 存储的数据被称为离线数据。在大数据系统上进行的离线计算通常针对(某一方面的)全体数据,比如针对历史上所有订单进行商品的关联性挖掘,这时候数据规模非常大,需要较长的运行时间,这类计算就是离线计算。

  • 除了离线计算,还有一些场景,数据规模也比较大,但是要求处理的时间却比较短。比如淘宝要统计每秒产生的订单数,以便进行监控和宣传。这种场景被称为大数据流式计算,通常用 Storm、Spark Steaming 等流式大数据引擎来完成,可以在秒级甚至毫秒级时间内完成计算。

数据输出与展示

  • 大数据计算产生的数据还是写入到 HDFS 中,但应用程序不可能到 HDFS 中读取数据,所以必须要将 HDFS 中的数据导出到数据库中。数据同步导出相对比较容易,计算产生的数据都比较规范,稍作处理就可以用 Sqoop 之类的系统导出到数据库。
  • 这时,应用程序就可以直接访问数据库中的数据,实时展示给用户,比如展示给用户关联推荐的商品。

Lambda 架构总共由三层系统组成:批处理层(Batch Layer),速度处理层(Speed Layer),以及用于响应查询的服务层(Serving Layer)。


批处理层存储管理主数据集(不可变的数据集)和预先批处理计算好的视图。

速度处理层会实时处理新来的大数据。

本质上,速度层弥补了批处理层所导致的数据视图滞后。比如说,批处理层的每个任务都需要 1 个小时才能完成,而在这 1 个小时里,我们是无法获取批处理层中最新任务给出的数据视图的。而速度层因为能够实时处理数据给出结果,就弥补了这 1 个小时的滞后。

虽然 Lambda 架构使用起来十分灵活,并且可以适用于很多的应用场景,但在实际应用的时候,Lambda 架构也存在着一些不足,主要表现在它的维护很复杂。

使用 Lambda 架构时,架构师需要维护两个复杂的分布式系统,并且保证他们逻辑上产生相同的结果输出到服务层中。

维护 Lambda 架构的复杂性在于我们要同时维护两套系统架构:批处理层和速度层。我们已经说过了,在架构中加入批处理层是因为从批处理层得到的结果具有高准确性,而加入速度层是因为它在处理大规模数据时具有低延时性。

与 Lambda 架构不同的是,Kappa 架构去掉了批处理层这一体系结构,而只保留了速度层。你只需要在业务逻辑改变又或者是代码更改的时候进行数据的重新处理。

第一步,部署 Apache Kafka,并设置数据日志的保留期(Retention Period)。这里的保留期指的是你希望能够重新处理的历史数据的时间区间。

例如,如果你希望重新处理最多一年的历史数据,那就可以把 Apache Kafka 中的保留期设置为 365 天。如果你希望能够处理所有的历史数据,那就可以把 Apache Kafka 中的保留期设置为“永久(Forever)”。

第二步,如果我们需要改进现有的逻辑算法,那就表示我们需要对历史数据进行重新处理。

我们需要做的就是重新启动一个 Apache Kafka 作业实例(Instance)。这个作业实例将从头开始,重新计算保留好的历史数据,并将结果输出到一个新的数据视图中。我们知道 Apache Kafka 的底层是使用 Log Offset 来判断现在已经处理到哪个数据块了,所以只需要将 Log Offset 设置为 0,新的作业实例就会从头开始处理历史数据。

第三步,当这个新的数据视图处理过的数据进度赶上了旧的数据视图时,我们的应用便可以切换到从新的数据视图中读取。

第四步,停止旧版本的作业实例,并删除旧的数据视图。

数据仓库五步法的流程

1.数据仓库 1 <==>n确定主题(主题如我们分析某年某月某一地区的啤酒销售情况)【对应集群中的某一个数据库,由多个维度表组成】

2.主题1<==>n 确定量度【对应维度表的某个统计字段】(量度如:年销售额,月销售额,日销售额)

3.量度n<==>1确定事实数据粒度【是最小量度下的数据粒度,是一条记录中的关于量度的数值(精确到小时)或描述性字符串(精确到某个区)】(事实数据粒度:如果相邻两条数据的时间差是1天,则最小事实数据粒度为天,如果相邻两条数据的时间差是1小时,则最小事实数据粒度为小时)采用“最小粒度原则”,可以统计该量度的汇总情况和其他不同维度下量度的聚合情况

4.事实数据粒度1<==>n确定维度【包括单个或多个维度(需要统计的字段)的表,表中有维度代理键】(维度:如我们希望按照时间,或者按照地区,或者按照产品进行分析,那么这里的时间、地区、产品就是相应的维度。基于不同的维度我们可以看到各量度的汇总情况,我们可以基于所有的维度进行交叉分析。) 考虑到维度表要包含尽量多的信息,所以建立维度时要符合“矮胖原则”,即维度表要尽量宽,尽量包含所有的描述性信息,而不只是统计性的数据信息。(维度表是由分析人员分析而得,字段对应的数据(如省市区)都应是人工生成的,或者从原始数据抽取然后去重而来的)维度又包含:层次和级别,如 地区维度,在省-市-区这一层次上有3个级别分别为省、市、区。在省-市这一层次上有2个级别分别为省、市。

原始数据记录表(存储了关于某一主题的原始数据(如机器刚刚产生的数据)的表,包含大量的数据信息:包含了错误数据,非法数据,不全数据…需要做数据清洗。)对数据清洗后的表(事实数据表),要符合“瘦高原则”,即要求表数据条数尽量多(粒度最小),而描述性信息要尽量少。

如果考虑到扩展,可以将事实表加一唯一标识列,以为了以后扩展将该事实作为雪花型维度,不过不需要时一般建议不用这样做。
事实数据表是数据仓库的核心,需要精心维护,在多个表(如空调的内机表外机表系统表)JOIN后将得到事实数据表,一般记录条数都比较大,我们需要为其设置复合主键和索引,以为了数据的完整性和 基于数据仓库的查询性能优化,事实数据表与维度表一起放于数据仓库中,如果前端需要连接数据仓库进行查询,我们还需要建立一些相关的中间汇总表或物化视 图,以方便查询。

5.维度1…n<==>1事实数据表(事实表与(多个)维度表分别单独进行关联,生成不同的结果表(带维度的事实表))

注意在关联时有为空的数据时(数据源脏),需要使用外连接(事实数据表在左,数据清洗后,可忽略此步骤),连接后我们将 各维度的代理键取出放于结果表中,结果表除了各维度代理键外,还有各量度数据,这将来自事实数据表(最小粒度数据聚合而成,如月销售额),还有来自于维度表的描述性信息。

ETL、ELT

  • 数据仓库从各数据源获取数据及 在数据仓库内的数据转换和流动都可以认为是ETL (抽取Extra,转化Transfer, 装载Load )的过程。
  • 但是在实际操作中将数据加载到仓库却产生 了两种不同做法: ETL和ELT。

业务方面

1. 在处理大数据过程中,如何保证得到期望值

  1. 保证在数据采集的时候不丢失数据,这个尤为重要,如果在数据采集的时候就已经不准确,后面很难达到期望值
  2. 在数据处理的时候不丢失数据,例如 sparkstreaming 处理 kafka 数据的时候,要保证数据不丢失,这个尤为重要
  3. 前两步中,如果无法保证数据的完整性,那么就要通过离线计算进行数据的校对,这样才能保证我们能够得到期望值

2. 你感觉数仓建设中最重要的是什么

数仓建设中,最重要的是数据准确性,数据的真正价值在于数据驱动决策,通过数据指导运营,在一个不准确的数据驱动下,得到的一定是错误的数据分析,影响的是公司的业务发展决策,最终导致公司的策略调控失败。

3. 数据仓库建模怎么做的

数仓建设中最常用模型–Kimball 维度建模详解

4. 数据质量怎么监控

单表数据量监控

一张表的记录数在一个已知的范围内,或者上下浮动不会超过某个阈值

  1. SQL 结果:var 数据量 = select count(*)from 表 where 时间等过滤条件
  2. 报警触发条件设置:如果数据量不在 [数值下限, 数值上限], 则触发报警
  3. 同比增加:如果 ((本周的数据量 - 上周的数据量)/ 上周的数据量 * 100) 不在 [比例下线,比例上限],则触发报警
  4. 环比增加:如果 ((今天的数据量 - 昨天的数据量)/ 昨天的数据量 * 100) 不在 [比例下线,比例上限],则触发报警
  5. 报警触发条件设置一定要有。如果没有配置的阈值,不能做监控
    日活、周活、月活、留存(日周月)、转化率(日、周、月)GMV(日、周、月)
    复购率(日周月)

单表空值检测

某个字段为空的记录数在一个范围内,或者占总量的百分比在某个阈值范围内

  1. 目标字段:选择要监控的字段,不能选 “无”
  2. SQL 结果:var 异常数据量 = select count(*) from 表 where 目标字段 is null
  3. 单次检测:如果 (异常数据量) 不在[数值下限, 数值上限],则触发报警

单表重复值检测

一个或多个字段是否满足某些规则

  1. 目标字段:第一步先正常统计条数;select count(*) form 表;
  2. 第二步,去重统计;select count(*) from 表 group by 某个字段
  3. 第一步的值和第二步不的值做减法,看是否在上下线阀值之内
  4. 单次检测:如果 (异常数据量) 不在[数值下限, 数值上限], 则触发报警

跨表数据量对比

主要针对同步流程,监控两张表的数据量是否一致

  1. SQL 结果:count(本表) - count(关联表)
  2. 阈值配置与 “空值检测” 相同

5. 数据分析方法论了解过哪些?

数据商业分析的目标是利用大数据为所有职场人员做出迅捷,高质,高效的决策提供可规模化的解决方案。商业分析是创造价值的数据科学。

数据商业分析中会存在很多判断:

  1. 观察数据当前发生了什么?

比如想知道线上渠道 A、B 各自带来了多少流量,新上线的产品有多少用户喜欢,新注册流中注册的人数有多少。这些都需要通过数据来展示结果。

  1. 理解为什么发生?

我们需要知道渠道 A 为什么比渠道 B 好,这些是要通过数据去发现的。也许某个关键字带来的流量转化率比其他都要低,这时可以通过信息、知识、数据沉淀出发生的原因是什么。

  1. 预测未来会发生什么?

在对渠道 A、B 有了判断之后,根据以往的知识预测未来会发生什么。在投放渠道 C、D 的时候,猜测渠道 C 比渠道 D 好,当上线新的注册流、新的优化,可以知道哪一个节点比较容易出问题,这些都是通过数据进行预测的过程。

  1. 商业决策

所有工作中最有意义的还是商业决策,通过数据来判断应该做什么。这是商业分析最终的目的。

手写 WordCount

我面试中,就曾经被面试官要求过手写一段 WordCount,别看好像很简单,实际上如果常年在做 Spark 内核的开发,而不是业务开发,也许你就想不起来了。

sc.textFile("/path/to/spark/README.md").flatMap(_.split(" ")).map(x => (x, 1)).reduceByKey(_ + _).map(x => (x._2, x._1)).sortByKey(false).map(x => (x._2, x._1)).take(10)# 结果
Array[(String, Int)] = Array(("",71), (the,24), (to,17), (Spark,16), (for,12), (##,9), (and,9), (a,8), (can,7), (run,7))

大数据量数据库的性能优化方案

文章目录

  • 数据仓库
    • 什么是数据仓库?
    • 数据库与数据仓库的区别?
    • 事实表和维度表
    • 数据仓库的数据模型:
    • 为什么数据仓库要分层?
    • 数据仓库模式:Kimball (金箔)和 Inmon(恩门)
    • 数据库架构——Lambda架构和Kappa架构
    • 数据仓库五步法的流程
    • ETL、ELT
  • 业务方面
    • 1. 在处理大数据过程中,如何保证得到期望值
    • 2. 你感觉数仓建设中最重要的是什么
    • 3. 数据仓库建模怎么做的
    • 4. 数据质量怎么监控
    • 5. 数据分析方法论了解过哪些?
      • 手写 WordCount
  • 大数据量数据库的性能优化方案
    • 读写分离
    • 分库分表
    • 实践

目录:

  • 读写分离
  • 分库分表
  • 实践

读写分离

区别读、写多数据源方式进行数据的存储和加载。
数据的存储(增删改)一般指定写数据源,数据的读取查询指定;读数据源(读写分离会基于主从复制)

有时候出现一种情况: 一个业务的表对应的时候会出现三个表结构restore、parse;

出现这种情况主要是因为,在对数据抽取的时候,我们需要这种结构

  • ods_xxx_work_restore – 整合总表的数据json数据
  • ods_xxx_work_parse – 新增的数据的暂时存放json 数据
  • ods_xxx_work – 整合好的数据

所以整个流程就是先parse → restore → 原表

selectcount(*)
from
ods_xxx_work_restore
wherepdate = '2021-06-16'
-- 3035510
-- joson 未解析
selectcount(*)
from
ods_xxx_work_parse
wherepdate = '2021-06-16'
-- 3815
-- 新增数据
selectcount(*)
fromods_xxx_work
wherepdate = '2021-06-16'
-- 3035510
-- 已解析

从上面的数据里面可以查出来的就可以知道了,我们ods_xxx_workods_xxx_work_restore 数据量是一样的,只是里面的数据格式是不一样的,json 与否。

分库分表

  • 垂直拆分

    单库按照业务规则进行拆分。

  • 水平拆分
    单表的数据量很大的时候,按照一定的规则进行拆分; 例如可以按照分区字段将其进行水平切分。

实践

因为班级报告表所关联的表数据量太大,导致每次跑数据,要花很长时间;所以我们就需要对数据进行模型——设计成月表增量数据,用来优化数据。步骤如下

大数据面试题——数据仓库相关推荐

  1. 大数据面试题及答案 100道 (2021最新版)

    大数据面试题及答案[最新版]大数据高级面试题大全(2021版),发现网上很多大数据面试题都没有答案,所以花了很长时间搜集,本套大数据面试题大全 最近由于要准备面试就开始提早看些面试.笔试题.以下是自己 ...

  2. 大数据面试题及答案 汇总版

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/albg_boy/article/det ...

  3. 大数据知识面试题-Flink(2022版)

    序列号 内容 链接 1 大数据知识面试题-通用(2022版) https://blog.csdn.net/qq_43061290/article/details/124819089 2 大数据知识面试 ...

  4. 2020哔哩哔哩大数据面试题整理

    网上能搜到的B站的大数据面试题太少了,博主有点找不到了,而且最近B站的校招的效率似乎不是很高,简历投进去一个多星期了,一点反应都没有,别问,问就是在池子里.jpg 1.数仓与关系数据库区别     1 ...

  5. 大数据面试题_Hive篇

    文章目录 一.大数据面试题_Hive篇 (一)Hive表与性能优化 1.hive 内部表和外部表的区别 2. hive 有索引吗 3.sort by 和 order by 的区别 4.如何使用过 Hi ...

  6. 5W字讲解最新大数据面试题

    此套面试题来自于各大厂的真实面试题及常问的知识点,如果能理解吃透这些问题,你的大数据能力将会大大提升,进入大厂指日可待 复习大数据面试题,看这一套就够了! 本文目录: 一.Hadoop 二.Hive ...

  7. 2021最全大数据面试题汇总---hadoop篇,附答案!

    大数据面试题来了! 本篇文章搜集了常见的大数据面试题以及答案,包含了Hadoop,Flume,Hbase,Hive,kafka,spark,zookeeper等方面的内容,助同学们收到心仪的Offer ...

  8. 常见大数据面试题汇总带答案

    大数据面试题汇总 **牛客网刷sql题** redis flume flink(大部分知识点写过的帖子里都有) mr,java ,集群 算法题 kafka 维度建模分为哪几种? SQL高频面试题 hb ...

  9. 大数据知识面试题-Hive (2022版)

    序列号 内容 链接 1 大数据知识面试题-通用(2022版) https://blog.csdn.net/qq_43061290/article/details/124819089 2 大数据知识面试 ...

最新文章

  1. python读取文件第n行-Python读取文件后n行的代码示例
  2. 《JavaScript设计模式与开发实践》模式篇(5)—— 观察者模式
  3. webpack.config.js 参数详解
  4. Android入门教程:ConstraintLayout约束布局
  5. 利用swap()函数来收缩内存
  6. 前端地图之色斑图渲染(直接canvas叠加渲染)(三)——以leaflet为例
  7. mongodb java 教程_MongoDB Java | 菜鸟教程
  8. Windows如何查看局域网内所有设备的ip
  9. 思科CCNA认证视频 CCNA视频 ccna最新题库 专题 复习资料
  10. tf 单个文字识别 data 数据输入
  11. 【C语言练习——打印空心下三角及其变形】
  12. SVN冲突 One or more files are in a conflicted state
  13. 记忆尤深的博贺港海鲜
  14. the find which you should kown that how to use it
  15. CSS3 Web工程师工作场景动画
  16. java 获取 ip mac_Java获取客户端ip mac地址
  17. python缺省值_python函数缺省值
  18. 快充伤电池?我来帮何同学做个假设检验
  19. 可怕,任天堂找到了一种新的赚钱方式……​
  20. 在ipad任意界面都可以写字_用iPad (含pencil)作医学生的学习工具使用技巧分享第三集...

热门文章

  1. 坚果云和亿方云哪个好用?
  2. python ndimage.gaussian_Python ndimage.gaussian_gradient_magnitude方法代碼示例
  3. JAVASE基础模块二十四(泛型)
  4. Windows Update无法检查更新
  5. 梁宁产品思维30讲:模块一同理心
  6. 集成学习-Stacking算法
  7. Java中基本数据类型的位数及存储最值
  8. 开水果店怎么进货,开水果店进货有哪些技巧
  9. oracle查询表唯一索引,oracle查询索引(oracle查看表索引)
  10. java分布式面试题之消息队列ActiveMQ部分