大数据面试八股文
文章平均质量分 73
八股文
一鸣888
感觉要暴富
展开
-
做指标开发怎么做的,都开发了什么指标,怎么开发的指标,说一下具体过程?
1)需求分析调研(数据调研,需求调研,业务调研): 明确口径,评估排期,需求正规流程提交2)指标管理:完善指标命名规范,指标同名同义,指标与业务强相关,明确指标构成要素3)模型设计:完善开发流程规范,标准化业务调研,知识库文档集中管理,建立模型评审机制。1)我们拿到需求之后,进行需求分析,确定指标的口径,确定数据来源的表,确定计算对象,确定计算方法,确定维度。开发的指标有:总订单数,各区域订单数,各店铺订单数,销售总金额,各区域销售金额等。4)ETL开发:ODS->DWD->DW->DWS->ADS。原创 2023-08-10 09:14:24 · 337 阅读 · 2 评论 -
数据仓库生产问题汇总
数据仓库生产问题汇总 开篇-项目整体流程 你可以简单说/画一下你们的项目流程吗? 第一章:数据源问题 1:数据来源于 Mysql,简单说一下大概有什么表,都采集什么业务 字段 2:每天的数据量多大 ?增量多少、全量数据多少 3: Mysql 采用什么版本的? 4:你接触的业务数据最大的表多大?多少行? 5:你们业务库中大概有多少表? 6:你们采用的是什么调度方式 ?为什么? 7:凌晨调度的话,如果出现问题有什么处理机制? 8:你们调用是串行调度还是并行调度? 9:调度过程中,上一个调度和下一个调度有没有先后原创 2023-08-05 23:32:11 · 855 阅读 · 0 评论 -
第12章 面试说明
本身不在于面试官想得到什么样的答案,而在于你跟别的应聘者的对比。、公司名称、任职岗位、主要工作内容、工作业绩、离职原因。你现在对我的了解,您觉得我需要多长时间融入公司?具体数字,区间取中间值,或者当前薪资的+20%,对考官来说,内容听过,就是自我肯定。左右,如果公司需要,可以适当提前。的说出自己各个方面的优势和特长。没听过,那就是个学习的过程。月内,给公司解决什么样的问题。的战略规划是什么样子的?您对薪资的期望是多少?您还有什么想问的问题?前东家或者自己的坏话。你的离职原因是什么?个人眼界和层次的问题。原创 2023-07-30 09:30:09 · 55 阅读 · 0 评论 -
7.2数据质量管理
param line: 一个等待通知的异常记录,{'notification_level': 1, 'value_min': 0, 'value': 7, 'col': u'id', 'tbl': u'dim_user_info', 'dt': datetime.date(2021, 7, 16), 'value_max': 5}"alarmContent": "".join(["指标", str(line["norm"]), "值为", str(line["value"]),原创 2023-07-30 09:27:38 · 136 阅读 · 0 评论 -
7.1数据质量管理
数据质量的高低代表了该数据满足数据消费者期望的程度,这种程度基于他们对数据的使用预期,只有达到数据的使用预期才能给予管理层正确的决策参考。本文通过Shell命令和Hive脚本的方式,通过验证增量数据的记录数、全表空值记录数、全表记录数是否在合理的范围之内,以及验证数据来源表和目标表一致性,确定当日的数据是否符合健康标准,达到数据质量的监控与管理。echo "-------------ods-dwd 一致性检查-------------"原创 2023-07-29 10:31:51 · 46 阅读 · 0 评论 -
第7章 数据治理
判断 select 语句及后续使用逻辑,是否 select 出来的列都被使 用,用被使用的列数/总 select 列数计算使用率,低于 50% 就需要列剪裁,0分,否则为1;数据表资产健康分score =(规范合规健康分*10% + 存储健康分*30% + 计算健康分*30% + 数据质量健康分*15% + 数据安全健康分 * 15%);根据数据资产健康管理的关键因素,明确量化积分规则。环比增加:如果((今天的数据量 - 昨天的数据量)/昨天的数据量*100)不在 [比例下线,比例上限],则触发报警。原创 2023-07-29 10:24:01 · 59 阅读 · 0 评论 -
第6章 测试&上线流程
因此团队设计了A/B实验,目标是在可接受的负向范围内,改一版用户评价更好的UI。(测试人员记录测试问题1.0,输入是什么,结果是什么,跟预期不一样->需要开发人员解释,是一个bug,下一个版本解决1.1->测试人员再测试。APP在应用商店的点击率。:A/B测试是可以持续不断进行的实验,即使一次实验提升的效果不大,但是长期下来复利效应的积累会产生很大的变化和回报。其次,实验迭代的过程中,决策都是有科学依据的,可以避免系统性的偏差。从生产环境抓取一部分数据,数据有多少你是知道的,运算完毕应该符合你的预期。原创 2023-07-29 10:14:09 · 126 阅读 · 0 评论 -
第3章 实时数仓项目(面试 重中之中)
Flink在1.2中引入了Async I/O,在异步模式下,将IO操作异步化,单个并行可以连续发送多个请求,哪个请求先返回就先处理,从而在连续的请求间不需要阻塞式等待,大大提高了流处理效率。用户(活跃用户100万、新增1000、总用户1千万)、商品SPU(1-2万)、商品SKU(10-20万)、活动(1000)、时间(忽略)、地区(忽略)加购(每天增量20万、全量100万)、下单(10万)、支付(9万)、物流(9万)、取消下单(500)、退款(500);可以累加的值,例如,个数、件数、次数、金额。原创 2023-07-29 10:03:09 · 206 阅读 · 0 评论 -
第2章 离线数仓项目(简历,重中之重)
用户(活跃用户100万、新增1000、总用户1千万)、商品SPU(1-2万)、商品SKU(10-20万)、活动(1000)、时间(忽略)、地区(忽略)确定事实表的度量值。可以累加的值,例如,个数、件数、次数、金额。原创 2023-07-29 09:56:12 · 1447 阅读 · 0 评论 -
1.16 MySQL
辅助索引也叫非聚簇索引,二级索引等,其叶子节点存储的不是行指针而是主键值,得到主键值再要查询具体行数据的话,要去聚簇索引中再查找一次,也叫回表。(5)MyISAM的回表操作是十分快速的,因为是拿着地址偏移量直接到文件中取数据的,反观InnoDB是通过获取主键之后再去聚簇索引里找记录,虽然说也不慢,但还是比不上直接用地址去访问。而B树中,非叶子节点既保存索引,也保存数据记录。B+树的非叶子节点不存储用户记录,只存储目录记录,相对B树每个节点可以存储更多的记录,树的高度会更矮胖,IO次数也会更少。原创 2023-07-29 09:35:32 · 60 阅读 · 0 评论 -
1.15 Sqoop
Hive中的Null在底层是以“\N”来存储,而MySQL中的Null在底层就是Null,为了保证数据两端的一致性。在导出数据时采用--input-null-string和--input-null-non-string两个参数。导入数据时采用--null-string和--null-non-string。任务导入的数据,此时老板正好看到了这个报表数据。,那后面老板再次看报表数据,发现本次看到的数据与之前的不一致,这在生产环境是不允许的。)Sqoop在导出数据的时候数据倾斜。5)Sqoop一天导入多少数据。原创 2023-07-29 09:30:21 · 33 阅读 · 0 评论 -
1.14 Clickhouse
缺点:它的本质是一个流式数据的使用场景,是累加式的技术,所以要用历史数据做去重、去核这样的分析,在物化视图里面是不太好用的。而且如果一张表加了好多物化视图,在写这张表的时候,就会消耗很多机器的资源,比如数据带宽占满、存储一下子增加了很多。相比普通物化视图是一张独立的表,Projection 物化的数据就保存在原表的分区目录中,支持明细数据的普通Projection 和 预聚合Projection。因为物化的数据保存在原表的分区,所以数据的更新、合并都是同源的,也就不会出现不一致的情况了。原创 2023-07-29 09:24:18 · 110 阅读 · 0 评论 -
1.13 HBase
把用户信息表(GMALL:DIM_USER_INFO) 分为5个region : [00-20), [20-40), [40-60), [60-80), [80-99]由于用户的id是连续的,批量导入用户数据后,很有可能用户信息都集中在同一个region中。将索引数据与原表放在一起(Region),加在一起比原表数据量大,读取相对变慢,但是由于在一个Region,所以写操作两条数据用的是同一个连接。(7)合并多个位置读取到的数据,给用户返回最大版本的数据,如果最大版本数据为删除标记,则不给不返回任何数据。原创 2023-07-29 09:13:05 · 63 阅读 · 0 评论 -
1.12 Flink
相同Task 的多个 Subtask 中,个别Subtask 接收到的数据量明显大于其他 Subtask 接收到的数据量,通过 Flink Web UI 可以精确地看到每个 Subtask 处理了多少数据,即可判断出 Flink 任务是否存在数据倾斜。许多日常问题都会导致反压,例如,垃圾回收停顿可能会导致流入的数据快速堆积,或遇到大促、秒杀活动导致流量陡增。处理时间Processing Time:是每一个执行基于时间操作的算子的本地系统时间,与机器相关,默认的时间属性就是Processing Time。原创 2023-07-29 06:46:48 · 156 阅读 · 0 评论 -
1.11 Spark Streaming
把spark.streaming.backpressure.enabled 参数设置为ture,开启背压机制后Spark Streaming会根据延迟动态去Kafka消费数据,上限由spark.streaming.kafka.maxRatePerPartition参数控制,所以两个参数一般会一起使用。把spark.streaming.stopGracefullyOnShutdown参数设置成ture,Spark会在JVM关闭时正常关闭StreamingContext,而不是立马关闭。(1)手动维护偏移量。原创 2023-07-28 22:48:47 · 41 阅读 · 0 评论 -
1.10 Spark Core & SQL
两者都是用来改变RDD的partition数量的,repartition底层调用的就是coalesce方法:coalesce(numPartitions, shuffle = true)。这得益于Spark的RDD,在各个RDD的分区中,各自处理自己的中间结果即可。(2)对于Spark来说,每一个Job的结果都可以保存到内存中,供后续Job使用。(2)Hadoop的Shuffle是必须排序的,那么不管是Map的输出,还是Reduce的输出,都是分区内有序的,而Spark不要求这一点。原创 2023-07-28 22:46:36 · 88 阅读 · 2 评论 -
1.9 DolphinScheduler调度器
(1)运行成功或者失败都会发邮件、发钉钉、集成自动打电话。2.0.3版本,支持的报警信息更全一些,配置更容易。每天跑100多个指标,有活动时跑200个左右。(2)最主要的解决方案就是,看日志,解决问题。(4)双11和618活动需要24小时值班。3.0.0以上版本,支持数据质量监控。1.3.9版本,支持邮件、企业微信。(3)报警网站睿象云,原创 2023-07-28 22:37:48 · 43 阅读 · 0 评论 -
1.8 Maxwell
1)FlinkCDC、Maxwell、Canal都是主要用于实时系统中实时数据同步处理场景。同步历史数据时,bootstrap引导服务需要依赖Maxwell进程。(1)运行成功或者失败都会发邮件、发钉钉、集成自动打电话。同步速度慢,全量同步建议采用Sqoop或者DataX。2.0.3版本,支持的报警信息更全一些,配置更容易。(2)最主要的解决方案就是,看日志,解决问题。DolphinScheduler调度器。3.0.0以上版本,支持数据质量监控。1.3.9版本,支持邮件、企业微信。原创 2023-07-28 22:28:27 · 261 阅读 · 0 评论 -
1.7 Datax
DataX数据量大,可以使用多个DataX实例,每个实例负责一部分(手动划分)。`iso_code` STRING COMMENT '旧版ISO-3166-2编码,供可视化使用',`iso_3166_2` STRING COMMENT '新版IOS-3166-2编码,供可视化使用'(1)修改DataX HDFS Writer的源码,增加自定义null值存储格式的逻辑,可参考。(5)关于运行日志与统计信息,DataX更丰富,Sqoop基于Yarn不容易采集。(1)DataX底层是单进程多线程;原创 2023-07-28 22:23:37 · 121 阅读 · 0 评论 -
1.6 Hive
数据倾斜问题,通常是指参与计算的数据分布不均,即某个key或者某些key的数据量远超其他key,导致在shuffle阶段,大量相同key的数据被发往同一个Reduce,进而导致该Reduce所需的时间远超其他Reduce,成为整个任务的瓶颈。Map端负责读取Join操作所需表的数据,并按照关联字段进行分区,通过Shuffle,将其发送到Reduce端,相同key的数据在Reduce端完成最终的Join操作。这样一来即便原始数据是倾斜的,经过Map端的初步聚合后,发往Reduce的数据也就不再倾斜了。原创 2023-07-28 22:21:15 · 78 阅读 · 0 评论 -
1.5 Kafka
根据经验,4核CPU处理几十个线程在高峰期会打满,8核勉强够用,而且再考虑到集群上还要运行其他的服务,所以部署Kafka的服务器一般建议在16核以上可以应对一两百个线程的工作,如果条件允许,给到24核甚至3。)compression.type:默认是none,不压缩,但是也可以使用lz4压缩,效率还是不错的,压缩之后可以减小数据量,提升吞吐量,但是会加大producer端的。在生产环境中,acks=0很少使用;例如AR[1,0,2],ISR [1,0,2],那么Leader就会按照1,0,2的顺序轮询。原创 2023-07-26 23:59:37 · 112 阅读 · 3 评论 -
1.4 Flume
(1)时间(半个小时) or 大小128m 且 设置Event个数等于0,该值默认10。m,考虑增加flume内存,在flume-env.sh配置文件中修改flume内存为 4-6g。时间戳拦截器建议使用。vent,在这个方法中调用Event intercept(Event event)public Event intercept(Event event) 处理单个。方案一:建议生成的文件名称为带日期的。数据存储于内存,优势:传输速度快;数据存储于磁盘,优势:可靠性高;数据存储于Kafka,基于磁盘;原创 2023-07-26 23:29:17 · 62 阅读 · 0 评论 -
1.3 Zookeeper
是特别为Zookeeper设计的支持崩溃恢复的原子广播协议。基于该协议,Zookeeper设计为只有一台客户端(Leader)负责处理外部的写事务请求,然后Leader客户端将数据同步到其他Follower节点。就是如何快速正确的在一个分布式系统中对某个数据值达成一致,并且保证不论发生任何异常,都不会破坏整个系统的一致性。在网络复杂的情况下,一个应用Paxos算法的分布式系统,可能很久无法收敛,甚至陷入活锁的情况。(1)作为HA的协调者:如 HDFS的HA、YARN的HA。1.3.1 常用命令。原创 2023-07-26 23:14:20 · 39 阅读 · 0 评论 -
1.2 Hadoop
Leader出现故障,系统开始改朝换代,当Follower完成全部工作并且成为Leader后,原Leader又复活了(它的故障可能是暂时断开或系统暂时变慢,不能及时响应,但其NameNode进程还在),并且由于某种原因它对应的ZKFC并没有把它设置为Standby,所以原Leader还认为自己是Leader,客户端向它发出的请求仍会响应,于是脑裂就发生了。HDFS默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。如果没有小文件,不要开启JVM重用,因为会。原创 2023-07-26 20:35:25 · 92 阅读 · 0 评论 -
1.1 Linux&Shell
先按照当前天 写sql => 遇到时间 $do_date 遇到表 {$APP}.实时显示系统中各个进程的资源占用状况(CPU、内存和执行时间)自定义函数 UDF UDTF {$APP}.年 05月 02日 星期四 21:02:08 CST。netstat -tunlp | grep 端口号。1.1.1 Linux常用。1.1.2 Shell常用。ssh $i "绝对路径"内部嵌套单引号,取出变量值。查看路径下的磁盘使用情况。(1)集群启动,分发脚本。查看系统内存使用情况。(3)反引号`,执行。原创 2023-07-26 18:37:48 · 63 阅读 · 0 评论