
数据仓库
文章平均质量分 50
数据仓库相关知识点与个人感悟记录
IT_心如止水
python,大数据,nlp,人工智能领域的小学生,希望和各位志同道合的朋友一起进步
展开
-
OLAP ——Druid简介
背景Druid是一个分布式的支持实时分析的数据存储系统。通俗点说:就是一个高性能实时分析数据库。2011年,由美国广告技术公司MetaMarkets创建,并于2012年开源。官网地址是:http://druid.io/。目前Druid已基于Apache License 2.0协议开源,正在由Apache孵化,代码托管于Github。最新官网地址为:https://druid.apache.org/(注意:阿里曾开源过一个项目叫做Druid是一个数据库连接池。与这里讲的Driud仅仅是名字一样而已,原创 2022-05-29 14:46:35 · 822 阅读 · 0 评论 -
Spark on Yarn中的Executor内存设置
目录背景介绍YarnSparkSpark on YarnExecutor内存设置背景介绍Yarnyarn是一个主从型的计算资源管理系统,包含一个ResourceManager和多个NodeManager。其中ResourceManager负责整个集群的资源调度,管理NodeManager;NodeManager负责管理单个节点。SparkSpark是一种分布式计算框架,可以在多种集群资源管理器上运行。Spark计算任务运行时,会首先运行一个driver,相当于原创 2022-05-13 23:47:48 · 1370 阅读 · 0 评论 -
数仓建模——维度设计
目录维度设计基本方法缓慢变化维1、直接覆盖2、全量快照3、拉链表维度建模作为目前数据仓库最主流的建模方法,其核心和灵魂就是维度。在维度建模中,度量或者指标叫做“事实”,而其所在的环境就是“维度”。维度的设计过程就是确定维度属性的过程,维度属性的选取优劣直接决定数据仓库的易用性。维度设计基本方法选择维度或新建维度,在企业级数据仓库中,维度要保证唯一性,一个维度有且只有一个维度定义 确定主维表,即确定与维度实体直接对应的ods表,比如课程维度表就对应业务系统的ods_cou原创 2022-04-27 19:51:30 · 807 阅读 · 0 评论 -
数据治理——数据安全
上一篇主要聊了聊数据质量保障的原则和常见的监控规则,但是,仅仅依靠这些就可以做好数据的质量管理吗?显而易见,是不太可能。那么,今天,就继续深入聊一聊数据质量管理。原创 2022-04-28 17:55:44 · 1230 阅读 · 1 评论 -
数据仓库—什么是OLAP
从事数据仓库或者大数据的同学,应该经常会听到OLAP这个词。什么OLAP分析,OLAP引擎等等名词。今天就来聊聊什么是OLAP。OLAP与OLTP说起OLAP,就不得不提一下他的好兄弟OLTP,两者经常会被拿来比较。首先,看一下两者的定义:OLAP(On-Line Analytical Processing):联机分析处理,OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。OLTP(on-line transaction processi原创 2022-04-22 23:48:14 · 8260 阅读 · 0 评论 -
Spark与MapReduce(Hive)对比分析
Spark比MapReduce计算速度快的原因Spark与MapReduce都是当今主流的离线分布式大数据计算框架,在实际工作中应用广泛。众所周知,spark的数据处理速度要比MapReduce快很多倍,那具体原因是什么呢?相信大家在面试过程中经常会被问到类似的问题。今天就来给大家好好分析一下具体的原因。MR基于HDFS,所有的中间结果都需要落到HDFS中,需要频繁地进行文件的IO操作,且中间结果使用效率低;而Spark基于内存,通过DAG有向无环图来切分任务的执行先后顺序。尽量将中间结果存储在内存原创 2022-04-14 14:47:47 · 2847 阅读 · 0 评论 -
数仓实战——最近N天uv优化策略
对于做数据的小伙伴来说,求最近N天(或者从某个时间点截止到当前)的UV可以说是最常见的场景了,也是数据岗位面试中经常会遇到的问题。第一感觉,可能大部分人都觉得这个问题有什么好说,直接过滤、去重计数就完了呗!但是,当数据量大了,或者说这么简单的问题,怎么在面试中体现自己的水平呢?[/手动狗头/]好了,言归正传,对于这个问题,常见的策略有以下几种:1、直接过滤,去重计数。对于小数据量,简单高效的解决问题就是最优解。SELECT count(distinct user_id) as uvFROM原创 2022-04-14 11:08:56 · 594 阅读 · 0 评论 -
Hive面试题——次日,3日,7日,30日,90日留存计算
已知用户登录日志表user_login_loguser_id event_time 1 2022-01-01 12:10:00 2 2022-01-11 22:10:00 3 2022-01-21 21:20:01 ...... ........ 求:此应用的次日、3日、7日、14日、30日、90日留存率思路解析:1、先按照日期、用户去重2、再做子关联,关联条件为:user_id相同,时间做差3、再分别去重计算,计算对应的留存率即可原创 2022-04-13 22:44:20 · 2467 阅读 · 0 评论 -
数据治理——数据质量管理
在当今这个大数据时代,数据质量对于数据的价值有着至关重要的意义。它是数据有效影响业务并驱动业务发展的基础。对于企业级的数据治理项目,数据质量管理是其中重要的一环。如何评价数据质量的好坏,目前业界已基本达成共识。主要从以下四个方面进行评估:完整性、准确性、一致性和及时性。 完整性 完整性是指数据的记录和信息是否完整、不缺失。数据的缺失包括数据记录的缺失(表行数异常)和记录中某字段信息的缺失(字段出现空值)。需要重点关注数据的生产环节(原始数据的数据同步)和加工环节(数仓ETL)中表行数是原创 2022-04-13 10:12:13 · 3877 阅读 · 0 评论 -
Hive面试-求互为好友的用户明细
已知用户好友表user_friend_tableuser_id friend_list A B,C,D B A,B,D .... ..... 求互为共同好友一共有多少对。思路解析:1、首先将好友列表拆开,得到如下形式的数据uid friendA BA C2、然后分别比较uid和friend_id,拼接uid和friend,得出判断标签new_tag。3、按照new_tag聚合,取co...原创 2022-04-12 14:10:15 · 810 阅读 · 0 评论 -
数仓建模——事实表设计
专有名词:粒度:事实表中一条记录所表达的业务细节程度称为粒度。通常粒度有2种表达方式:一种是维度属性组合所表示的细节程度;另一种是具体的业务含义。事实:业务过程中产生的数值型度量,例如,销量,销售额,购买人数等。可以细分为可加性、半可加性和不可加性事实三种类型。可加性事实指可以按照与事实表关联的任意维度进⾏汇总。半可加性事实只能按照特定维度汇总,不能对所有维度汇总。例如,库存可以按照地点和商品进⾏汇总,⽽按时间维度把⼀年中每个⽉的库存累加起来则毫⽆意义。不可加性事实是指度量完全不具备可加原创 2022-04-11 11:41:44 · 484 阅读 · 0 评论 -
Hive开窗函数总结
随着技术的发展,各行各业产生的数据量级都越来越大,而hive sql作为大数据最好用的工具,使用的用户越来越多。但是,在日常工作中,好多同学对于hive sql的使用还仅仅停留在MySQL阶段。这可就大材小用了,要知道hive的数据处理能力要比mysql强很多,不仅仅是数量大,功能上也更强大。今天就给介绍一下hive的数据分析利器——开窗函数目录应用场景定义参数详解聚合计算类排序类结语应用场景在日常工作中,我们经常会遇到按照某个指标排序并增加排名;按照顺序累加某个指标;计原创 2021-08-04 17:42:09 · 848 阅读 · 4 评论 -
python访问hive数据库踩坑指南
最近做数据ETL系统的更新,需要将原有ETL任务迁移到新的系统中,并验证数据的准确性。目录安装依赖包核心代码遇到的坑依赖包版本安装依赖包因为本人电脑是win本,所以只能使用impyla连接;其他系统还可以使用PyHive包进行连接pip install impylapip install pure-saslpip install thrift_saslpip install thriftpip install sasl注意点:直接使用pi...原创 2021-08-04 14:32:22 · 699 阅读 · 0 评论 -
MySQL如何添加排序后如何添加序号
SELECT a.*, @rank :=@rank+1 as noFROM( ] SELECT * from `student_score_table` ORDER BY `score` desc ) a LEFT JOIN ( SELECT @rank :=0 ) b on 1 = 1原创 2021-07-30 18:40:45 · 2588 阅读 · 0 评论 -
group by后面加rollup、cube、grouping sets分别代表什么含义
众所周知,group by 语法是对给定的字段进行分组统计,最后得到一个分组统计数据。满足一下几个要求:1、select语句中的字段必须为分组字段或者聚合函数(原创 2021-05-17 19:05:16 · 978 阅读 · 10 评论 -
Hive中的随机抽样问题
题目:已知,有一个用户表user,字段如下:id, type, mobile, email;type一共包含 ABC三种类型现在需要随机取出各个type 10%的用户信息解析:hive中使用rand()进行简单随机抽样,limit限制随机抽样返回的数量,搭配order by, sort by, distribute by进行排序过滤1、随机选取100名用户select id, type, mobile, email from user order.原创 2021-05-17 16:50:07 · 1449 阅读 · 8 评论 -
Hive几种排序函数的差异
常用主要有下面3种:row_number 1 2 3 4,序号连续,并列者的名次分先后;rank 1 1 3,序号不连续,并列者排名相同,后面的序号=并列者序号+并列人数dense_rank 1 1 2 ,序号连续,并列者排名相同,后面的序号=并列者序号+1不常用ntile 大概均分为几份, 并不保证完全绝对均分使用场景求成绩排名前1/3的的人ntile(3) over...原创 2021-03-21 22:59:00 · 164 阅读 · 0 评论 -
大数据查询引擎hive查询常见优化措施
两个表连接时:小表放在join左边,因为左边在reduce阶段会加载进内存;强制使用mapjoin 通过参数设置map端进行聚合 hive.map.aggr = true 数据倾斜的聚合优化 hive.groupby.skewindata = true 使用sort by部分排序 替换order by 全局排序 尽量只查询需要使用的列,将分区、过滤条件前置, 空值处理过滤或者赋予随机值避免数据倾斜,聚合操作外置 慎用count(distinct) 使用with as 消灭子查询 设置小文件合原创 2021-03-21 22:47:17 · 247 阅读 · 0 评论 -
度小满数据开发面试真题3
题目:利用sql实现行转列答案:SELECT user_id ,SUM( CASE WHEN subject = 'chinese' THEN score ELSE 0 END ) AS chinese ,SUM( CASE WHEN subject = 'math' THEN score ELSE 0 END ) AS math ,SUM( CASE WHEN subject = 'english' THEN score ELSE 0 END原创 2021-03-07 21:26:21 · 457 阅读 · 0 评论 -
SQL——join关联中的分区裁剪问题
Select*fromt1leftouterjoint2ona.id=b.idanda.ds=b.dsandb.ds=‘20180101);--Join进行关联时,如果分区剪裁条件放在where中,则分区剪裁会生效,如果放在on条件中,从表的分区剪裁会生效,主表则进行全表扫描。...原创 2018-09-30 12:00:34 · 1088 阅读 · 0 评论