自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 问答 (1)
  • 收藏
  • 关注

原创 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 802

原创 MongoDB与关系型数据库相比的优点

定义MongoDB是一个由C++语言编写,基于分布式文件存储的数据库。旨在为WEB应用提供可扩展的高性能数据存储解决方案。它是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的一个。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。优点与关系型数据库相比,m

2022-05-15 19:13:52 1158

原创 Spark on Yarn中的Executor内存设置

目录背景介绍YarnSparkSpark on YarnExecutor内存设置背景介绍Yarnyarn是一个主从型的计算资源管理系统,包含一个ResourceManager和多个NodeManager。其中ResourceManager负责整个集群的资源调度,管理NodeManager;NodeManager负责管理单个节点。SparkSpark是一种分布式计算框架,可以在多种集群资源管理器上运行。Spark计算任务运行时,会首先运行一个driver,相当于

2022-05-13 23:47:48 1338

原创 数据治理——数据安全

上一篇主要聊了聊数据质量保障的原则和常见的监控规则,但是,仅仅依靠这些就可以做好数据的质量管理吗?显而易见,是不太可能。那么,今天,就继续深入聊一聊数据质量管理。

2022-04-28 17:55:44 1196 1

原创 数仓建模——维度设计

目录维度设计基本方法缓慢变化维1、直接覆盖2、全量快照3、拉链表维度建模作为目前数据仓库最主流的建模方法,其核心和灵魂就是维度。在维度建模中,度量或者指标叫做“事实”,而其所在的环境就是“维度”。维度的设计过程就是确定维度属性的过程,维度属性的选取优劣直接决定数据仓库的易用性。维度设计基本方法选择维度或新建维度,在企业级数据仓库中,维度要保证唯一性,一个维度有且只有一个维度定义 确定主维表,即确定与维度实体直接对应的ods表,比如课程维度表就对应业务系统的ods_cou

2022-04-27 19:51:30 779

原创 数据仓库—什么是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 8201

原创 工作杂谈——浅谈数据岗位

目录1、数据仓库工程师/BI工程师/数据BP2、数据平台开发/大数据开发3、数据产品4、数据分析/数据挖掘/算法随着互联网技术的飞速发展,现在已经进入了大数据时代。每个人每时每刻都在生产着大量的数据,各行各业对于数据的重视程度也越来越高。数据岗位的市场需求也就日益增多。作为一个数据行业的从业者,谈一点自己对于现阶段各个数据岗位的理解。目前,市场主流公司的数据岗位主要分为以下几个不同的方向1、数据仓库工程师/BI工程师/数据BP能力:侧重于数据仓库整体建设,数仓架构..

2022-04-20 23:05:00 3111

原创 Spark与MapReduce(Hive)对比分析

Spark比MapReduce计算速度快的原因Spark与MapReduce都是当今主流的离线分布式大数据计算框架,在实际工作中应用广泛。众所周知,spark的数据处理速度要比MapReduce快很多倍,那具体原因是什么呢?相信大家在面试过程中经常会被问到类似的问题。今天就来给大家好好分析一下具体的原因。MR基于HDFS,所有的中间结果都需要落到HDFS中,需要频繁地进行文件的IO操作,且中间结果使用效率低;而Spark基于内存,通过DAG有向无环图来切分任务的执行先后顺序。尽量将中间结果存储在内存

2022-04-14 14:47:47 2793

原创 数仓实战——最近N天uv优化策略

对于做数据的小伙伴来说,求最近N天(或者从某个时间点截止到当前)的UV可以说是最常见的场景了,也是数据岗位面试中经常会遇到的问题。第一感觉,可能大部分人都觉得这个问题有什么好说,直接过滤、去重计数就完了呗!但是,当数据量大了,或者说这么简单的问题,怎么在面试中体现自己的水平呢?[/手动狗头/]好了,言归正传,对于这个问题,常见的策略有以下几种:1、直接过滤,去重计数。对于小数据量,简单高效的解决问题就是最优解。SELECT count(distinct user_id) as uvFROM

2022-04-14 11:08:56 566

原创 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 2365

原创 数据治理——数据质量管理

在当今这个大数据时代,数据质量对于数据的价值有着至关重要的意义。它是数据有效影响业务并驱动业务发展的基础。对于企业级的数据治理项目,数据质量管理是其中重要的一环。如何评价数据质量的好坏,目前业界已基本达成共识。主要从以下四个方面进行评估:完整性、准确性、一致性和及时性。 完整性 完整性是指数据的记录和信息是否完整、不缺失。数据的缺失包括数据记录的缺失(表行数异常)和记录中某字段信息的缺失(字段出现空值)。需要重点关注数据的生产环节(原始数据的数据同步)和加工环节(数仓ETL)中表行数是

2022-04-13 10:12:13 3837

原创 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 796

原创 python-可哈希对象与不可哈希对象

目录什么是hashable(可哈希性)可哈希的数据类型不可哈希的数据类型对于哈希一词,想必大家都不陌生。哈希值、哈希算法、可哈希、不可哈希、哈希表中总有一个你熟悉的面孔。那哈希(hash)到底是什么意思呢?今天就好好总结一下!什么是hashable(可哈希性)An object is hashable if it has a hash value which never changes during its lifetime (it needs a __hash__() meth

2022-04-12 14:09:09 1755

原创 二叉树的遍历与深度计算(python实现)

二叉树作为一种重要的数据结构,也是面试中经常会问到的。其中,二叉树的遍历和深度计算更是重中之重。二叉树的遍历分为深度优先遍历和广度优先遍历两类。其中,深度优先遍历,根据遍历顺序的不同可以细分为:前序遍历、中序遍历、后序遍历广度优先遍历,就是常规意义上按照层次从上到下,依次进行遍历。二叉树深度计算即为求取二叉树的最大深度python实现:class TreeNode: def __init__(self, value=None, left=None, ...

2022-04-11 19:42:39 1325

原创 数仓建模——事实表设计

专有名词:粒度:事实表中一条记录所表达的业务细节程度称为粒度。通常粒度有2种表达方式:一种是维度属性组合所表示的细节程度;另一种是具体的业务含义。事实:业务过程中产生的数值型度量,例如,销量,销售额,购买人数等。可以细分为可加性、半可加性和不可加性事实三种类型。可加性事实指可以按照与事实表关联的任意维度进⾏汇总。半可加性事实只能按照特定维度汇总,不能对所有维度汇总。例如,库存可以按照地点和商品进⾏汇总,⽽按时间维度把⼀年中每个⽉的库存累加起来则毫⽆意义。不可加性事实是指度量完全不具备可加

2022-04-11 11:41:44 463

原创 python遍历多层文件夹的所有指定类型文件

随着互联网的发展,每天我们的电脑中都会产生大量的文件,这也就使得快速查找自己的想要的文件需求变得越来越突出,移动端有各种各样的文件管理器可以帮我们完成这个工作,而PC端由于其自身系统的复杂性,市面上的大多数文件类软件并不能满足我们的需求。所以,作为软件创造者——coder的我们,遇到这种情况必须发挥一下自己的职业技能,自己动手,丰衣足食。开搞!需求:快速查找出指定目录下的所有层级下指定类型文件思路就很简单了。逐级遍历, 判断对象是文件/目录,文件的话,进入下一步文件类型判断;目录的话,返回

2021-12-01 16:54:19 1465

原创 Pandas——Dataframe行遍历几种常用方法性能分析

pandas作为python数据分析的一大利器,为广大数据分析人员使用。今天无意中,听到美女同事吐槽:dataframe好慢啊!嗯哼,瞬间引起了我这个数据人的注意,过去一看,原来是用的方法本身效率低。日常工作中,按照行遍历数据是我们一个非常常见的场景!尤其是从sql boy转到数据分析的我,动不动就想 select * from table1;一下,看看数据的大概情况。这一操作在pandas中的实现主要有一下几种:1、iterrows()原理是将Dataframe迭代为Series,再

2021-11-22 17:06:04 4516

原创 有监督学习和无监督学习的异同

有监督学习即训练数据同时拥有输入变量(x)和输出变量(y);使用一个算法把输入到输出的映射关系——y=f(x)训练成一个模型,用这个模型对新的数据进行预测。无监督学习即训练数据只有输入变量(x),并没有输出变量(y),无监督学习的目的就是将这些训练数据潜在的结构或者分布找出来,类似于去探索。两者主要在于训练数据是否有输出变量也就是标签。实际应用在实际问题的应用中,还是以有监督学习为主流。主要原因还是有监督学习更容易得到切实有用的结果,毕竟预测结果可控,优化目标明确,因此只有方

2021-11-08 15:12:23 2679

原创 如何使用python操作excel

# coding:utf-8"""自动打开excel文件并截图保存"""import win32com.client as win32from PIL import ImageGrab, Imageexcel = win32.Dispatch('Excel.Application')excel.Visible = Falseexcel.DisplayAlerts = False# 打开excel文件,注意此处要使用绝对路径wb = excel.Workbooks.Open('E:..

2021-09-05 16:09:30 1062

原创 python经典面试题

题目:假设某人有100000现金,每次经过路口需要进行一次交费交费规则为:手中现金大于50000,需要交费5%;手中现金小于等于50000,需要交费1000请设计程序,计算这个最多经过多少次路口答案:直接上代码(python)total = 100000n = 0while True: if total > 50000: n = n + 1 total = total * 0.95 elif total &gt

2021-09-05 16:01:42 512

原创 Hive开窗函数总结

随着技术的发展,各行各业产生的数据量级都越来越大,而hive sql作为大数据最好用的工具,使用的用户越来越多。但是,在日常工作中,好多同学对于hive sql的使用还仅仅停留在MySQL阶段。这可就大材小用了,要知道hive的数据处理能力要比mysql强很多,不仅仅是数量大,功能上也更强大。今天就给介绍一下hive的数据分析利器——开窗函数目录应用场景定义参数详解聚合计算类排序类结语应用场景在日常工作中,我们经常会遇到按照某个指标排序并增加排名;按照顺序累加某个指标;计

2021-08-04 17:42:09 826 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 673

原创 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 2569

原创 python——通过ssh访问远程MySQL数据库

在日常工作中,为了保证线上服务的稳定和数据安全,想要访问线上数据库通常需要先通过跳板机进入内网才可以登录数据库,虽然这样可以保证数据安全,但对于我们日常调试程序却带来不便。于是,我特意封装了一个通过ssh访问远程MySQL数据库的方法供大家参考。不搞虚了吧唧的,直接上源码:import timeimport pymysqlfrom sshtunnel import SSHTunnelForwarderfrom pyhive import presto, hivefrom impala.d

2021-07-26 11:43:03 1730 1

原创 group by后面加rollup、cube、grouping sets分别代表什么含义

众所周知,group by 语法是对给定的字段进行分组统计,最后得到一个分组统计数据。满足一下几个要求:1、select语句中的字段必须为分组字段或者聚合函数(

2021-05-17 19:05:16 949 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 1418 8

原创 Excel——vlookup函数用法详解

定义:VLOOKUP函数是Excel中的一个纵向查找函数,它与LOOKUP函数和HLOOKUP函数属于一类函数,在工作中都有广泛应用,例如可以用来核对数据,多个表格之间快速导入数据等函数功能。功能是按列查找,最终返回该列所需查询序列所对应的值;与之对应的HLOOKUP是按行查找的。该函数的语法规则如下:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) 参数 简单说明 输入

2021-04-19 15:23:11 10032

原创 dict、list、series、dataframe之间的相互转换

在用pandas进行数据处理过程中,经常会遇到dict、list、series、dataframe之间相互转换的场景,今天特意整理了一下,以备自己后面再次遇到可以快速解决,分享出来也方便大家# dict、list、series、ataframe之间的相互转换import pandas as pddict1 = {'id': [1,2] ,'name':['xiaoming', 'dandan']}list1 = [{'id': 1, 'name':'xiaoming'}, {'id': 2

2021-04-08 18:28:52 1202

原创 匹配任意格式的空白字符

需求:数据清洗,将字符串数据中的任意格式的空白字符(中英文空格,换行,换页符等任意全角空格符)匹配并替换掉解决方案:def varchar_process(x): if (not x is None) and (not ':' in str(x)): try: s = re.sub(r'\s+', '', x, re.M) except: s = x else: s = x

2021-04-08 09:54:11 287

原创 CSV文件乱码问题解决

在日常工作中,时常遇到这样的问题:一个csv文件用wps/excel打开显示正常,但是用编译器(sublime、notepad++)等打开就乱码,或者相反;wps/excel打开显示乱码,但是用编译器(sublime、notepad++)等打开正常答案:此种情况主要原因是编码格式的原因,而且仅发生在文件中包含中文的情况。因为文件中有中文的话,默认使用utf-8编码格式,而这种格式wps/excel是无法兼容的,需要将编码格式改为ANSI编码或者UTF-8-BOM编码;你可以使用任何编译器进行

2021-03-29 16:16:00 2476

原创 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 157

原创 大数据查询引擎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 238

原创 python3经典错误之no module name MySQLdb

问题:前几天从网上clone一个比较古老的项目,本以为python版本可以向下兼容,没想到竟然报错,还是很常用的mysql模块no module name MySQLdb上网一查,大吃一惊:MySQLdb竟让只支持Python2.*,还不支持3.*。(不都是向下兼容的吗???)没办法只好想办法解决,经过各种查找尝试,总算是解决了解决方法:可以用PyMySQL代替MySQLdb。首先安装:pipinstallPyMySQL然后在项目的__init__.py或者引用My..

2021-03-14 18:30:29 387

原创 度小满数据开发面试真题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 440

原创 度小满数据开发面试真题2

贪心算法——最大收益与最小交易次数题目:已知数列长度n ,数列表示股票每天的价格,每次手中仅可以持有1手(即100股)股票,求最小交易次数与最大收益 (忽略税费及手续费)答案:代码(python)# 数列list1 = [9,7,3,10,1,2,5]# 最大收益max_profit = 0# 最小交易次数n = 0mark = 0for i in range(1, len(list1)): diff = list1[i] - list1[i - 1]

2021-03-07 21:23:22 463

原创 度小满数据开发面试真题1

题目:每个整数都希望可以整除很多数字,特别是它自身包含的数字,我们将整数分为三类:1. 数字可以整除它包含的一部分数字,比如72,由,7和2两种数字组成,72可以整除2,我们称这个数字是开心的,用”H”表示。2. 数字不能整除它包含的任何数字,比如73,由,7和3两种数字组成,73不能整除任何数,我们称这个数字是沮丧的,用”S”表示。3. 数字可以整除它包含的所有数字,比如12,既可以整除1又可以整除2,我们称它是一个非常棒的数,用“G”表示。 (0可以被任何数整除。)输入:正整数.

2021-03-07 21:06:15 588

原创 数据开发经典面试题:筛选出连续登陆N天的用户

题目:已知用户登陆明细表,表结构如下:用户登陆明细表 序号 用户标识 登陆日期 登陆平台 id user_id login_date login_plateform 答案:with cte_a as ( SELECT user_id ,login_date ,ROW_NUMBER() OVER(PARTITION BY user_id ORDER BY login_date desc) A

2021-03-06 17:02:02 358

原创 vipkid数据开发&数据分析面试真题1

题目:牛牛有一个n个数字的序列,现在牛牛想把这个序列分成k段连续段,牛牛想知道分出来的k个连续段的段内数字和的最小值最大可以是多少?示例1输入4,2,[1,2,1,5]输出4

2021-03-06 16:48:12 290

原创 MongoDB用户登录验证相关操作

创建超级管理员>use admin>db.createUser({user:"wjb",pwd:"wjb123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})Successfully added user: {        "user" : "user",        

2019-02-21 14:14:15 336

转载 mongo-mload 工具使用介绍

mongo-mload 工具使用介绍准备工作GitHub地址: https://github.com/eshujiushiwo/mongo-mload.git文件为go语言的源文件,需安装go语言环境,并安装mongodb驱动 go get gopkg.in/mgo.v2/bson功能MongoDB 压力测试工具参数 --host 压测目标(如127.0....

2019-01-31 14:51:09 1145 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除