面试经验分享-回忆版某小公司
说说你项目中数据仓库是怎么分层的,为什么要分层?
首先是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——推送方案选型
一、前言:为何需要服务端主动推送? 在现代应用中,很多功能都依赖于“消息推送”。比如: 小红点提醒:我们经常在手机应用里看到的一个小红点提示,表示有新的消息或任务需要我们关注。新消息提醒࿱…...
山石防火墙命令行配置示例
现网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. 最低票价 动态规划
原题链接: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是一个能够支持高并发以及流式消息处理的消息中间件,并且Kafka天生就是支持集群的,今天就主要来介绍一下如何搭建Kafka集群。 Kafka目前支持使用Zookeeper模式搭建集群以及KRaft模式(即无Zookeeper)模式这两种模式搭…...
springboot使用websocket
文章目录 一、概述1、简介 二、 使用1、引包2、配置处理器3、前端测试 一、概述 1、简介 简介略,附上官方文档,spring5和spring6的官方文档内容大致是一样的: https://docs.spring.io/spring-framework/docs/5.2.25.RELEASE/spring-framewo…...
Redis的安装和配置、基本命令
一、实验目的 本实验旨在帮助学生熟悉Redis的安装、配置和基本使用,包括启动Redis服务、使用命令行客户端进行操作、配置Redis、进行多数据库操作以及掌握键值相关和服务器相关的命令。 二、实验环境准备 1. JAVA环境准备:确保Java Development Kit …...
Rnote:Star 8.6k,github上的宝藏项目,手绘与手写画图笔记,用它画图做笔记超丝滑,值得尝试!
嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 Rnote是一款开源的基于矢量的绘图应用,专为学生、教师以及绘图板用户设计。它支持草图绘制、手写笔记以及对文档和图片进行注释。Rnote提供…...
python如何解析word文件格式(.docx)
python如何解析word文件格式(.docx) .docx文件遵从开源的“Office Open XML标准”,这意味着我们能用python的文本操作对它进行操作(实际上PPT和Excel也是)。而且这并不是重复造轮子,因为市面上操作.docx的…...
「刘一哥GIS」系列专栏《GRASS GIS零基础入门实验教程(配套案例数据)》专栏上线了
「刘一哥GIS」系列专栏《GRASS GIS零基础入门实验教程》全新上线了,欢迎广大GISer朋友关注,一起探索GIS奥秘,分享GIS价值! 本专栏以实战案例的形式,深入浅出地介绍了GRASS GIS的基本使用方法,用一个个实例讲…...
使用nginx搭建通用的图片代理服务器,支持http/https/重定向式图片地址
从http切换至https 许多不同ip的图片地址需要统一进行代理 部分图片地址是重定向地址 nginx配置 主站地址: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日,拉斯维加斯,2025年国际消费电子展——想象一下,当您步入一辆汽车,它不仅能响应您的指令,更能理解您的需求、适应您的偏好,并为您创造一个独特且专属的交互环境。作为汽车科技领域的知名企业和…...
猫贫血吃什么能快速补血?
各位铲屎官们,看到自家猫咪无精打采、小脸苍白,是不是特别心疼?贫血可是猫咪健康的大敌,今天就来给大家支支招,哪些食物和方法能让猫咪快速补血,恢复活力! 一、红肉及内脏类 红肉是补血的“主力…...
微服务拆分
微服务拆分 接下来,我们就一起将黑马商城这个单体项目拆分为微服务项目,并解决其中出现的各种问题。 熟悉黑马商城 首先,我们需要熟悉黑马商城项目的基本结构: 大家可以直接启动该项目,测试效果。不过,…...
Android SystemUI——车载CarSystemUI加载(八)
Android 系统早期的状态栏和导航栏对于手机设备来说那是相当重要的,但是随着手机版本的不断更新,状态栏和导航栏对于手机的重要性在逐渐降低,特别是在快捷手势出现之后,导航栏几乎变得可有可无。但是对于当前如火如荼的车载系统来说,状态栏和导航栏却几乎是必备的,谷歌自…...
2025年编程语言热度分析:Python领跑,Go与Rust崛起
TIOBE Index(TIOBE 编程语言指数)是一个衡量编程语言流行度的排名系统。它通过分析多种搜索引擎、在线编程社区、技术论坛、问答网站(如 Google、Bing、Yahoo、Wikipedia、Stack Overflow)等的搜索和讨论数据,评估不同…...
前缀和 (一维 二维)
前缀和作用: 快速求出原数组中一段数组的和 思路 1.预处理前缀和数组 2.用公式求区间和 公式: 二维前缀和: s [ i ] [ j ] s[ i - 1 ] [ j ] s[ i ] [ j - 1 ] - s [ i - 1 ] [ j - 1]; 题型 一维 二维 题解 一维 #include <iost…...
精选算法合集
一、BFS相关 1.1 最小步骤 给定一个数组,从第一个开始,正好走到数组最后,所使用的最少步骤数。要求: 第一步从第一元素开始,第一步小于<len/2(len为数组的长度)。从第二步开始,…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
