快手数开面经

数仓的星型模型和雪花模型是什么?

星型模型(Star Schema)和雪花模型(Snowflake Schema)都是数据仓库中的数据模型。这两种模型主要用于组织和管理大量数据,并能够快速、高效地处理用户的查询请求。

星型模型

星型模型是一种简单的数据模型,它由一个大的“事实表”(Fact Table)和多个“维度表”(Dimension Tables)组成。事实表位于模型的中心,包含了业务过程的量化数据,如销售金额、销售数量等。维度表围绕事实表排列,每个维度表包含了对事实数据的某种视角或分类,如时间、地点、产品等。星型模型的名字来源于它的形状:一个中心表和多个外围表形成了一个星形结构。

星型模型的优点包括简单易理解,查询效率高,因为它的结构简单,所以在查询时只需要进行少量的表连接操作。

雪花模型

雪花模型是星型模型的一个变种,它的主要区别在于维度表的复杂性。在雪花模型中,维度表被进一步细分为多个相关的表,形成一种层级或者树状结构。这种模型的名字来源于它的形状:像雪花一样有许多分支。

雪花模型的优点是可以更细致地组织数据,提供更丰富的查询维度。但是,由于维度表的复杂性,查询效率可能会降低,需要进行更多的表连接操作。

数仓分层怎么做?有什么好处?

数据仓库(Data Warehouse)的分层主要是将数据仓库分为不同的逻辑层,以便于数据管理和数据分析。常见的数据仓库分层模型包括以下三层:数据源层,数据集成层,以及数据访问层。

  1. 数据源层:这一层包含了所有原始的数据源,可以是关系数据库,也可以是非关系数据库,或者是其他类型的数据源如文件系统、Web服务等。
  2. 数据集成层:这一层的主要任务是提取、转换和加载(ETL)数据源层的数据。数据在这一层被清洗、转换和集成,以生成一个统一的、一致的数据视图。这一层通常包含一个或多个数据仓库和数据集市。
  3. 数据访问层:这一层为最终用户提供数据访问服务。用户可以通过各种工具(例如报表工具、数据挖掘工具、在线分析处理(OLAP)工具等)查询和分析数据。

数据仓库分层的好处主要有以下几点:

  • 提高数据管理的效率:分层可以帮助我们更好地组织和管理数据。每一层都有其特定的任务和责任,这样可以使数据管理工作更加清晰和高效。
  • 提升数据的质量和一致性:在数据集成层,数据被清洗和转换,从而提高了数据的质量。同时,由于数据被集成到一个统一的视图中,所以数据的一致性也得到了保证。
  • 优化数据访问性能:通过在数据访问层进行数据的聚合和索引,可以大大提高数据查询的性能。
  • 保护数据安全:分层模型也有助于数据的安全管理。例如,可以通过在数据访问层设置权限控制,限制用户只能访问他们被授权的数据。

MR和Spark的shuffle 过程?

MapReduce 中的 shuffle 过程主要发生在 Map 阶段和 Reduce 阶段之间。具体步骤如下:

  1. Map 阶段:在 Map 阶段,输入数据被分成很多小块,并被分配给不同的 Map 任务。每个 Map 任务处理一小块数据,并产生一些中间结果(键值对)。
  2. Shuffle 阶段:在 Shuffle 阶段,Map 任务产生的中间结果会被重新分配给不同的 Reduce 任务。具体来说,这个过程是基于键值对的键进行的。所有具有相同键的键值对都会被发送到同一个 Reduce 任务。
  3. Reduce 阶段:在 Reduce 阶段,每个 Reduce 任务会处理它收到的所有键值对,并生成最终的输出结果。

Spark 中的 shuffle 过程与 MapReduce 的类似,但也有一些区别。在 Spark 中,shuffle 主要发生在宽依赖(wide dependencies)的操作中,如 groupByKey,reduceByKey,join 等。

在 Spark 中,每个任务会生成一些数据,并将这些数据写入本地磁盘。然后,这些任务会告诉驱动程序(driver program)它们已经生成了哪些数据。当需要这些数据的其他任务运行时,它们会从需要的任务那里直接拉取数据。

Spark 的 shuffle 过程优化了数据的读取和写入,减少了网络传输的数据量。但由于 shuffle 过程需要大量的磁盘 I/O 和网络 I/O,因此通常会消耗很多资源,可能成为 Spark 应用的性能瓶颈。为了解决这个问题,Spark 提供了一些优化策略,如使用 reduceByKey 而不是 groupByKey,或者使用 broadcast 变量等。

Doris底层了解吗,和别的引擎对比?

Apache Doris 是一个 MPP(大规模并行处理)架构的开源分析型数据库,最初由百度开发,后来贡献给 Apache 基金会。它的目标是为在线分析(OLAP)提供高并发、低延迟的查询性能,并能处理大规模数据。

以下是 Doris 的一些主要特性:

  • 列式存储:Doris 采用列式存储模型,这对于分析型查询非常有效,因为它可以有效地减少 IO,提高查询性能。
  • 向量化执行引擎:Doris 的查询执行引擎采用向量化的设计,能够充分利用现代硬件的优势,如 SIMD 指令,提高数据处理的效率。
  • 多表连接优化:Doris 支持各种表连接算法,如 hash join,nested loop join 等,并能进行多表连接的优化。
  • MPP 架构:Doris 采用 MPP 架构,能够在多个节点上并行处理数据,提供高性能的查询能力。
  • 高可用与容错:Doris 支持数据冗余和自动故障恢复,提供高可用性。

与其他引擎对比,Doris 在处理大规模数据的在线分析查询方面具有优势。例如,与 Hadoop 的 MapReduce 或 Spark 相比,Doris 提供了更高的查询性能和更低的延迟。与传统的关系数据库如 MySQL 相比,Doris 能处理的数据量更大,更适合分析型负载。

#面经#

解决职场真实面试问题,分享同学真实成功案例,欢迎订阅关注!

全部评论
老兄,这是几面的题
点赞 回复 分享
发布于 2023-08-21 14:19 澳大利亚

相关推荐

家人们谁懂啊!实习才半个月,每天不是在取快递路上狂奔,就是贴发票贴到眼花、打印文件打到手酸… 当初 HR 画的饼 “接触核心业务”“学行业干货”,全成了泡沫!大半夜躺床上刷到白天拍的 “快递山” 照片,气得想骂街:这哪是实习啊,分明是给公司当免费牛马!要是你也被打杂搞到怀疑人生,先别急着提桶跑路!咱今儿就唠唠:怎么把 “牛马活” 干成 “升职剧本”,让领导追着问 “这实习生能转正不”!一、先搞清楚:你是 “纯牛马打杂” 还是 “能偷师的打杂”1. 纯牛马打杂:重复到崩溃,学不到东西比如天天无限循环贴发票、搬箱子、录毫无技术含量的数据… 干到死都没人教你半句,领导连你叫啥都记不住。这种打杂说白了就是 “廉价劳动力替代”,公司压根没打算培养你,纯纯拿你当工具人 —— 遇到这种,别犹豫,跑就完事儿!2. 能偷师的打杂:看着是琐事,实则藏着 “职场入门课”整理行业资料时,顺手摸清公司业务逻辑;帮同事跑腿送文件,偷听两句高层咋沟通(比如 “这个方案得结合客户复购率调整”);甚至贴报销单时,记住公司费用标准(以后做预算超有用!)… 这种打杂是 **“低成本试错”**,能让你快速摸清职场套路,偷偷攒经验!举个真实例子:我朋友雨桐实习时,被派去整理五年的客户档案,一开始崩溃到想离职。结果她边整理边分类,发现公司核心客户的分布规律、合作周期,直接写了份《客户维护建议》。领导看完拍桌:“这实习生有脑子啊!” 后来直接带她参与客户续约大项目,实习结束顺理成章留用!二、判断要不要跑路?1. 你实习到底图啥?想刷大厂简历:只要公司名头够响(比如 BAT、头部企业),打杂忍 2 个月就行(但别太久!否则简历像 “无效打工”,HR 一看就知道你没碰核心业务,等于白干);想学真本事:3 周后还没碰过写方案、跟项目、看数据… 直接润!时间宝贵,别给公司当免费牛马,外面好实习多的是!2. 有没有 “活人” 带你?观察带教老师:是把你当工具人(只派活不沟通,你干完活跟没干一样),还是 **“顺手教你”(比如让你做报表时,简单讲两句逻辑;改你文件时,说清楚哪错了、咋改更好)。遇到后者,哪怕打杂多也值得留 —— 职场新人最缺的不是 “活少钱多”,而是“有人带”!3. 你敢不敢 “主动搞事情”?试试厚着脸皮说:“XX 活我想多学学,能给我分点相关任务不?” 要是领导敷衍、同事甩脸(比如 “实习生做好打杂就行”),说明这地儿没前途,跑路不丢人!但要是对方说 “行啊,下次带你试试”(哪怕画饼),也值得再争取 —— 机会都是自己 “厚脸皮” 要来的!三、把 “牛马活” 变成 “升职剧本” 的 3 个野路子(超实用!)1. 给琐事加 “隐藏任务”,偷着攒经验帮同事做 PPT 时,偷学他的逻辑框架(比如 “问题 - 分析 - 方案” 结构),下次你做的 PPT 直接碾压同事,领导:“这实习生进步这么快?”整理发票时,分析部门花钱规律(比如 “发现 XX 费用超支了”),下次部门汇报突然说这个,领导直接对你刮目相看:“这都能发现?”取快递时记住常收件人(比如 “张总总收文件”“李姐爱买咖啡”),下次碰到主动打招呼,职场人脉从 “取快递” 开始积累!2. 用 “学生思维” 换 “职场脑”,别当纯牛马别再抱怨 “为啥让我干这个”,改成 **“干这个能捞到啥好处”**:打印文件时,学领导的排版习惯(字体、行距、配色),下次你做的文件直接戳中领导审美,同事:“这格式怎么这么顺手?”校对资料时,记住行业术语(比如 “客单价”“复购率”),开会时突然蹦出来,同事心里默默想:“这实习生有点东西啊!”3. 碎片时间搞 “自我增值”,公司不教的自己学等电梯时刷行业公众号(比如互联网实习看 36 氪、晚点,金融实习看证券时报);午休前学 10 分钟技能(Excel 函数、PPT 动画、简单剪辑… 学啥都有用);甚至上厕所时,在备忘录写两句 “今日打杂观察”(比如 “市场部下午 3 点爱头脑风暴”“财务报销必须附 3 张凭证”)… 把 “被占用的时间” 抢回来,公司不教的,咱自己学!
实习打杂,要跑路吗
点赞 评论 收藏
分享
评论
8
86
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务