当前位置: 首页 > news >正文

面试经验分享-回忆版某小公司

说说你项目中数据仓库是怎么分层的,为什么要分层?
首先是ODS层,连接数据源和数据仓库,数据会进行简单的ETL操作,数据来源通常是业务数据库,用户日志文件或者来自消息队列的数据等
中间是核心的数据仓库层,可以细分为DWD,DIM,DWS层。
首先是DWD层主要负责对数据进行进一步测清洗规范化的操作,但是应该尽可能保持和ODS层相同的数据粒度,可以通过维度退化等方式,将维度表退化为事实表例如下单表,减少关联操作
DWS层的主要任务是对DWD层清洗后的数据进行加工,聚合,计算等操作,来满足更多业务场景需求,这一层的表通常是宽表,包含较多的业务相关字段
DIM层主要是根据维度模型建模星型模型雪花模型等,用于存储维度模型中的维度表数据例如商品,优惠券表等,目的是为了更好地进行数据分析
最后是ADS层,基于DWS的数据进行二次开发,针对业务场景和需求进行建模,其统计好的数据可以直接用于数据分析或者数据挖掘使用,比如用户留存率,最受欢迎商品top3等
怎么设计维度表和事实表
对于事实表,首先要确定业务流程,确定事实表的粒度和维度,通常一个事实表中的字段具有相同粒度,确认与其关联的维度表,确定用于度量的事实,常见的是数值类型和可加类型事实。
对于维度表,它存储的通常是离散型的数据,用于过滤数据,如果在维度表出现连续取值的数据要考虑将其放进事实表,要对维度进行合理的整合和拆分,在丰富维度属性的基础上维护维度的单一性,当维度表只有一个字段时,退化成事实表,可以减少关联次数,提高查询性能。
一道简单的SQL题,窗口函数实现top3

在工作中怎么实现多线程的
应该是考察简历中写的rabbitmq,回答的是和业务相关的,因为业务上涉及大量文件的存储转发,为了防止大文件堵塞进程,所以选用消息队列实现,通过消息传递处理进程,Java实现的
追问-如何避免重复消费
记录已处理消息:在消费者处理完消息后,记录一条日志或标记在数据库中,下次消费时检查该消息是否已被处理。
在Django中如何处理高并发
没答上来
应该是使用nginx,但是当时没负责这部分代码
Nginx在处理HTTP请求时,首先由Master进程接收到连接请求,然后将其分配给空闲的Worker进程。Worker进程通过事件循环处理请求,当请求涉及到I/O操作时,Worker进程会将其放入事件队列中,待事件触发时再处理。这种设计确保了Nginx即使在高并发情况下,仍然能够保持低资源消耗。
轮询(Round Robin):这是Nginx默认的负载均衡策略,它将请求依次分配到后端的每一台服务器,从而保证每台服务器的负载相对均衡。
用过爬虫么,有没有遇到过反爬,怎么处理
用过scrapy框架,爬过静态网页和动态网页,在爬取动态网也得时候有遇到过反爬,用过user_agent用户代理,通过配置随机更换请求头的用户代理实现,还可以在setting文件里通过IP代理实现,使用代理池实现。
用pandas处理数据有什么好处
pandas的dataframe能够很好的处理结构化和表格化数据,计算速度快,能够处理比较大量的数据,可以很容易的实现分组,聚合,排序等操作,并且支持多种文件读写,包括本地文件,SQL返回的数据等,并且基本不需要数据转换步骤。
用过那些大模型
扩散模型,clip,gpt
HIVE sql的排序函数
order by sort by
追问两者区别
‌ORDER BY‌:ORDER BY用于对查询结果进行全局排序,即将整个结果集按照指定的列进行升序或降序排列。它通常跟在SELECT语句的末尾,例如:SELECT * FROM table_name ORDER BY column_name ASC。‌
‌SORT BY‌:在一些特定的数据库系统中,SORT BY用于局部排序,它会在每个Reducer端进行排序,确保每个Reducer输出的数据是有序的,但不一定保证全局有序。例如,在Hive中,SORT BY通常用于分布式计算环境中,对数据进行预处理或中间步骤的排序。‌

效率和适用场景
‌ORDER BY‌:由于其需要对所有数据进行全局排序,当处理大量数据时可能会导致内存溢出,因此适合处理小数据量的情况。‌
‌SORT BY‌:通过生成多个临时文件进行局部排序,减少了内存的使用,适合处理大数据量的排序任务。每个Reducer的输出局部有序,但全局不一定有序。

相关文章:

面试经验分享-回忆版某小公司

说说你项目中数据仓库是怎么分层的,为什么要分层? 首先是ODS层,连接数据源和数据仓库,数据会进行简单的ETL操作,数据来源通常是业务数据库,用户日志文件或者来自消息队列的数据等 中间是核心的数据仓库层&a…...

WebSocket——推送方案选型

一、前言:为何需要服务端主动推送? 在现代应用中,很多功能都依赖于“消息推送”。比如: 小红点提醒:我们经常在手机应用里看到的一个小红点提示,表示有新的消息或任务需要我们关注。新消息提醒&#xff1…...

山石防火墙命令行配置示例

现网1台山石SG6000防火墙,配置都可以通过GUI实现。 但有一些配置在命令行下配置效率更高,比如在1个已有策略中添加1个host或端口。 下面的双引号可以不加 1 创建服务 1.1 单个端口 service "tcp-901"tcp dst-port 901 1.2 端口范围 servi…...

LLM - 大模型 ScallingLaws 的 C=6ND 公式推导 教程(1)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/145185794 Scaling Laws (缩放法则) 是大模型领域中,用于描述 模型性能(Loss) 与 模型规模N、数据量D、计算资源C 之间关系的经验规律…...

Leetcode 983. 最低票价 动态规划

原题链接&#xff1a;Leetcode 983. 最低票价 class Solution { public:int mincostTickets(vector<int>& days, vector<int>& costs) {int n days.size();int last days[n - 1];int dp[last 1];map<int, int> mp;for (auto x : days)mp[x] 1;dp…...

Kafka——两种集群搭建详解 k8s

1、简介 Kafka是一个能够支持高并发以及流式消息处理的消息中间件&#xff0c;并且Kafka天生就是支持集群的&#xff0c;今天就主要来介绍一下如何搭建Kafka集群。 Kafka目前支持使用Zookeeper模式搭建集群以及KRaft模式&#xff08;即无Zookeeper&#xff09;模式这两种模式搭…...

springboot使用websocket

文章目录 一、概述1、简介 二、 使用1、引包2、配置处理器3、前端测试 一、概述 1、简介 简介略&#xff0c;附上官方文档&#xff0c;spring5和spring6的官方文档内容大致是一样的&#xff1a; https://docs.spring.io/spring-framework/docs/5.2.25.RELEASE/spring-framewo…...

Redis的安装和配置、基本命令

一、实验目的 本实验旨在帮助学生熟悉Redis的安装、配置和基本使用&#xff0c;包括启动Redis服务、使用命令行客户端进行操作、配置Redis、进行多数据库操作以及掌握键值相关和服务器相关的命令。 二、实验环境准备 1. JAVA环境准备&#xff1a;确保Java Development Kit …...

Rnote:Star 8.6k,github上的宝藏项目,手绘与手写画图笔记,用它画图做笔记超丝滑,值得尝试!

嗨&#xff0c;大家好&#xff0c;我是小华同学&#xff0c;关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 Rnote是一款开源的基于矢量的绘图应用&#xff0c;专为学生、教师以及绘图板用户设计。它支持草图绘制、手写笔记以及对文档和图片进行注释。Rnote提供…...

python如何解析word文件格式(.docx)

python如何解析word文件格式&#xff08;.docx&#xff09; .docx文件遵从开源的“Office Open XML标准”&#xff0c;这意味着我们能用python的文本操作对它进行操作&#xff08;实际上PPT和Excel也是&#xff09;。而且这并不是重复造轮子&#xff0c;因为市面上操作.docx的…...

「刘一哥GIS」系列专栏《GRASS GIS零基础入门实验教程(配套案例数据)》专栏上线了

「刘一哥GIS」系列专栏《GRASS GIS零基础入门实验教程》全新上线了&#xff0c;欢迎广大GISer朋友关注&#xff0c;一起探索GIS奥秘&#xff0c;分享GIS价值&#xff01; 本专栏以实战案例的形式&#xff0c;深入浅出地介绍了GRASS GIS的基本使用方法&#xff0c;用一个个实例讲…...

使用nginx搭建通用的图片代理服务器,支持http/https/重定向式图片地址

从http切换至https 许多不同ip的图片地址需要统一进行代理 部分图片地址是重定向地址 nginx配置 主站地址&#xff1a;https://192.168.123.100/ 主站nginx配置 server {listen 443 ssl;server_name localhost;#ssl证书ssl_certificate ../ssl/ca.crt; #私钥文件ssl_ce…...

零基础构建最简单的 Tauri2.0 桌面项目 Star 88.4k!!!

目录 预安装环境 安装nodejs windows下安装 linux下安装 nodejs常遇问题 安装C环境 介绍 下载 安装 安装Rust语言 Tauri官网 安装 vscode 安装 rust 插件 安装 Tauri 插件 运行成果 预安装环境 安装nodejs windows下安装 NodeJs_安装及下载_哔哩哔哩_bilibi…...

智能科技与共情能力加持,哈曼重新定义驾乘体验

2025年1月6日&#xff0c;拉斯维加斯&#xff0c;2025年国际消费电子展——想象一下&#xff0c;当您步入一辆汽车&#xff0c;它不仅能响应您的指令&#xff0c;更能理解您的需求、适应您的偏好&#xff0c;并为您创造一个独特且专属的交互环境。作为汽车科技领域的知名企业和…...

猫贫血吃什么能快速补血?

各位铲屎官们&#xff0c;看到自家猫咪无精打采、小脸苍白&#xff0c;是不是特别心疼&#xff1f;贫血可是猫咪健康的大敌&#xff0c;今天就来给大家支支招&#xff0c;哪些食物和方法能让猫咪快速补血&#xff0c;恢复活力&#xff01; 一、红肉及内脏类 红肉是补血的“主力…...

微服务拆分

微服务拆分 接下来&#xff0c;我们就一起将黑马商城这个单体项目拆分为微服务项目&#xff0c;并解决其中出现的各种问题。 熟悉黑马商城 首先&#xff0c;我们需要熟悉黑马商城项目的基本结构&#xff1a; 大家可以直接启动该项目&#xff0c;测试效果。不过&#xff0c…...

Android SystemUI——车载CarSystemUI加载(八)

Android 系统早期的状态栏和导航栏对于手机设备来说那是相当重要的,但是随着手机版本的不断更新,状态栏和导航栏对于手机的重要性在逐渐降低,特别是在快捷手势出现之后,导航栏几乎变得可有可无。但是对于当前如火如荼的车载系统来说,状态栏和导航栏却几乎是必备的,谷歌自…...

2025年编程语言热度分析:Python领跑,Go与Rust崛起

TIOBE Index&#xff08;TIOBE 编程语言指数&#xff09;是一个衡量编程语言流行度的排名系统。它通过分析多种搜索引擎、在线编程社区、技术论坛、问答网站&#xff08;如 Google、Bing、Yahoo、Wikipedia、Stack Overflow&#xff09;等的搜索和讨论数据&#xff0c;评估不同…...

前缀和 (一维 二维)

前缀和作用&#xff1a; 快速求出原数组中一段数组的和 思路 1.预处理前缀和数组 2.用公式求区间和 公式&#xff1a; 二维前缀和&#xff1a; s [ i ] [ j ] s[ i - 1 ] [ j ] s[ i ] [ j - 1 ] - s [ i - 1 ] [ j - 1]; 题型 一维 二维 题解 一维 #include <iost…...

精选算法合集

一、BFS相关 1.1 最小步骤 给定一个数组&#xff0c;从第一个开始&#xff0c;正好走到数组最后&#xff0c;所使用的最少步骤数。要求&#xff1a; 第一步从第一元素开始&#xff0c;第一步小于<len/2&#xff08;len为数组的长度&#xff09;。从第二步开始&#xff0c…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...