22腾讯音乐暑期实习海笔复盘
今天进行了腾讯音乐的数据工程海笔,一个都没写出来真的臊得慌。趁着还记得来进行一下简单的复盘。
首先数据工程和前后端的试题都不同,前后端是3+1,三个算法+一个结构性思维题;数据工程是2+1+2,两个SQL题+一个算法题+两个组件的结构性思维题。两个SQL其实比较简单,但是我SQL并没有想象中的熟练,且听说ac机有点点怪(这不是主要原因),所以没有写出来。题目不太好描述,所以后续搜集到了题目会进行更新。算法是个dfs算法,我算法也不强,想到了递归、想到了指针但是没想到dfs,真该死。。。
两个组件的题也是,简单描述下就是:
手写Kafka消费者工程代码,写一个固定格式的5分钟定时消费的代码
flume
维护一个实时排序用什么算法?手写关键代码
遇到海量数据时flume背压了,可能的情况和解决方案?
结合存储和性能给出的调优、选择方案
很遗憾,我这两个组件的面经都没背,甚至于flume都没有学,所以最后半小时在那一个字都憋不出。下面就对这个算法进行简单复盘。
算法给定一个字符串和一个字符串数组,输出所有能用字符串数组拼接成字符串的情况。数组中的字符串可重复使用。
123456789 ...
大数据入门《大数据之路:阿里巴巴大数据实践》
前言:
简单看完了第一遍写的前言,大数据真的是一门需要知识沉淀的巨大工程,无论你看什么类型的书,对于大数据的理解都是有帮助的。这本主要是阿里系的大数据开发全套,很浅但是很真诚(当然指的是技术面很浅,思想上已经很深入了)。截至现在,我也就体验过阿里系的DataX(开源),确实解决了不同数据源之间数据结构不同步的痛点,未来肯定依旧会做大做强,咳咳扯远了。
这绝对是一本值得N刷的书,奉之为教材也不为过,虽然对接的是阿里系的企业理念,但是对于整体开发流程的阐述十分到位,尤其是第十章、十一章关于维度设计和事实表设计,让我受益匪浅,希望你也能有所收获。——Alexie-Z-Yevich 2023.3.20
第一章 总述IT时代是以自我控制、自我管理为主,那么到了DT(Data Technology) 时代,则是以服务大众、激发生产力为主。以互联网(或者物联网)、云计算、大数据和人工智能为代表的新技术革命正在渗透至各行各业,悄悄地改变着我们的生活。
1、阿里巴巴大数据系统体系架构图
2、应用四大层次(1)数据采集层Aplus.JS是Web端日志采集技术方案;UserTrack是APP端日志采集技 ...
SQL小练1
前言:
这是一个快失业的大学牲为了在简历上写熟练使用SQL而做的简单练习,越写感觉自己越菜。。。很多常见的语法根本不会,所以借由New Bing进行学习记录。主要采用记录我用的很少/没用过的关键词为主,同时记录了我遇到的不错的SQL题。因为篇幅不宜过长,所以SQL小练不会超过10个一文。
改文记录如下:
(1)CASE
(2)UNION
(3)CONCAT && CONCAT_WS
(4)COLLECT && COLLECT_SET 【Hive SQL】
(5)CAST
(6)ROW_NUMBER
(7)ROUND()
(8)LAG() && LEAD()
(9)LATERAL VIEW
(10)UDTF简述
1、SQL语法case的具体操作SQL语法case的具体操作是一种条件表达式,用于根据条件执行不同的操作。SQL语法case有两种形式:简单的case和搜索的case。
简单的case是将一个表达式与一组简单表达式进行比较以确定结果。其语法如下:
123456CASE 表达式 WHEN 值1 THEN 结果1 WH ...
Java混合Scala
最近这几天把Scala学完了,被他的数据处理能力深深的折服。
尤其是WordCount功能,之前接过的一个小外包就有这种要求的分词功能,当时是使用的开源依赖Kumo词库,但是别人的东西怎么实现的说实话真不知道。
后来和同学探讨的过程中了解到Elastic Search是可以实现分词功能的,效果极佳但是资源占用大,对于一个小项目来说可能资源大部分回响ES倾斜,所以虽然有所耳闻但是并没有实际实践。
再后来学了Hadoop框架,了解到WordCount在上面的实现是拆分成Map和Reduce两个阶段,但是其过程主要面向框架中处理,虽然都是Java但是其实很多过程并不清晰(其实是没能力手撸一个)
然后学了Scala,刚好Scala最后也是介绍了WordCount功能,本质上Scala对WordCount的处理也是一个Map、Reduce的过程,但是代码简洁(可读性不强),流程也更清晰。于是想着Java和Scala都是基于JVM,那干脆Java中调用Scala,看能否实现。
Scala代码如下:12345678910111213141516171819202122import java.util ...
如果不由我来做决策,那么错误决策与我无关(《避开错误决策的4个陷阱》)
第一部分 大脑是如何做决策的大脑处理决策的功能模式识别模式识别帮助我们对接收的信息进行评估,大脑的每个部位关注一种不同的信息并从过去的记忆信息中寻找匹配项。之后大脑的整合功能会接受已经发现的匹配项信号,并对缺失的信息做出估计。
意外
假如我们面对的是不熟悉得信息输入——尤其是那些表面上看起来似曾相识的信息——我们会以为自己辨认出了什么,而事实并非如此,这叫做误导性经验。我们的大脑可能储藏了过去经验的记忆,而那些记忆又与我们接收到的信息相关联,不幸的是,过去的经验可能和当前的情况不一样,对我们造成了误导。
我们的思维在我们接受信息之前就早有判断或是决定先入为主,而之前的判断和决定与当前的情况联系起来。如果这些判断不适用于当前情况,它们就会破坏我们既有的识别功能,误判接收到的信息,这是误导性预判。
模式识别依赖于信息对称以及空缺填补,当我们经验丰富时这两个过程可以有效运作,但当我们自以为经验丰富而事实上并非如此时,错误在所难免。
情感标记大脑会给我们的想法和决策打赏情感标记,这些标记被模式识别匹配项触发后会告诉我们应该对其表示关注还是忽略,并且给我们指明行动方向。
情感标记让我们迅 ...
作为运营的第一本运营书(《从零开始做运营》)
前言:
我加入工作室的时候职位是策划,在大三转成运营。但说是运营,其实在工作室中和打杂并无太大区别,尤其我还一直想转研发,所以混乱到自己也不知道要干什么。偶然在“打杂”的时候翻到这本《从零开始做运营》,这就是我和这本书的开始。因为是文科类性质的书(至少目前我是这么认为),所以暂且记录下书中我比较认同、感受的观点。也许写到总结时,会有不一样的发现。
互联网的世界,从来没有不需要运营的产品,也没有可以无视产品的运营。第一章 实话实说运营
产品经理的工作大部分是需求分析、文档写作以及资源沟通。一个好的产品经理,需要有“跟到底”的精神。
一个产品的成功,“三分靠实力,七分靠运气”。产品经理的苦衷在于,做了所有正确的事,实现了所有需求并且完成得非常漂亮,可是如果运气不好,产品就无法形成规模效应。
运营人员的成功靠什么呢?可能是“七分靠实力,三分靠运气”。运营人员的苦衷在于,运营需要积累,无论是实力的积累、经验的积累,还是对用户了解程度的积累、对数据敏感程度的积累,这其中的时间、实践、反思、错误,全都是消耗品。创意会随着时间的增⻓而消磨,手段会随着用户的熟悉而失效,最后能够留下来的,是运营 ...
软件工程
前言:
开始打算按照这第九版教材的课后习题做一个个人解答文档,然后发现——课后题内容太宽泛了,鄙人水平不足,误导大家就不好了;然后决定把书的章节精简整理,看书看到第三章越看越不对劲——老师上课完全没讲书,万一写多了最后不考岂不是害了大家?所以最后取了个折中的办法——对书本的前11章节内容进行精简学习,然后着重研究下软件工程中常见的九种图。
希望对正在看该文档的你有所帮助。
更新:后期老师专门画了下重点,所以会在文档种我认为比较重要的地方打上【重点】标记,可以从目录进行索引。Github不支持目录就算了。
第一章【重点】定义软件工程包括过程、一系列方法(实践)和大量的工具,专业人员借由这些来构建高质量的计算机软件。
软件具有产品和产品交付载体的双重作用。
软件是:
指令的集合(计算机程序),通过执行这些指令可以满足预期的特性、功能和性能需求;
数据结构,使得程序可以合理利用信息;
软件描述信息,它以硬拷贝和虚拟形式存在,用来描述程序的操作和使用。
软件应用领域计算机软件分为七大类:
系统软件。一整套服务于其他程序的程序。
应用程序。解决特定业务需要的独立应用程序。处理商务或技术 ...
计算机网络
因为本专业不学习《通信原理》,故一些涉及到通信原理的知识点,如果老师上课并没有过分强调,以下大概率不会特别做笔记。
第一章 概述
第二章 物理层1、传输媒体传输媒体可分为导引型传输媒体(双绞线、同轴电缆、光纤)和非导引型传输媒体(微波通信)。【并不属于计算机网络的一部分,但是可以归纳在物理层】
同轴电缆:早期局域网中的使用/有线电视的使用
双绞线:8跟绝缘彩线绞合。绞合能抵御部分来自外界的电磁波干扰、减少相邻导线的电磁干扰。(现在的网线)
光纤:通信容量大;传输损耗小,远距离传输更加经济;抗雷电和电磁干扰性能好;无串音干扰,保密性好;体积小,重量轻。单数需要专用设备进行切割,且接口价格昂贵。
无线电波:低频(LF)和中频(MF)使用地面波(基站)进行传输;高频(HF)和甚高频(VHF)使用地球上方100~500千米的带电离子层反射传播
微波:采用轨道同步卫星进行传播(无线网络、GPS);低轨道卫星通信系统用于构成空间高速链路。
红外线:点对点无线传播;直线;传输速率低。
2、物理层协议的主要任务
机械特性:指明接口所引用接线器的形状和尺寸、引脚数目和排列、固定和锁定 ...
我的网络安全入门(《白帽子讲Web安全》)
一些浅显的起步在我开始读这本书之前,对于网络安全的感受就是两个:DDOS和SQL注入。DDOS是因为我喜欢玩一些偏门的新游戏,比如说猫灵相册、四叶草剧场都有过被DDOS攻击的经历,当时稍微从UP主epcdiy了解了下DDOS操作“肉鸡”攻击的方式【网络霸凌者只会DDoS欺负小网站?我让高防服务器教你做人!】,感叹了下服务器还是选阿里云啥的好。。。咳咳,扯远了;SQL注入主要是在工作室一次技术沙龙听学长分享的时候偶然之间听到的,觉得有意思也想自己试试,但是用来攻击自己的网站都不能成功,不过在读完这本书后我也明白了为什么(不过是因为现在的框架已经将大部分常见的攻击已经过滤掉了)。
说起读这本书的契机,实际上是因为工作室的老师在20大之前召开了一次关于网络安全的会议,告诉我们写系统要注意网络安全。当时我完全没考虑过网络安全的事情,浅显的认为网络安全就是所谓系统中的Spring Security以及使用的Jwt,当然这些的确是网络安全的一部分,但是只是实现的工具罢了。对于网络安全我并没有一个完整的理念/体系,当时真的天真的认为一个系统配了个Authorization/Tok ...
大数据存储技术(《深入分布式缓存:从原理到实践》)
前言:
这份文档不仅来自个人根据老师给的提纲参考书籍手敲完成,还参考了上届学姐的复习资料,同时融合了老师的PPT和网络上一些我认为比较好的博客。如果在大题后面打了【*】,就说明这是上届学长学姐没有考过的习题,老师不会平白无故往里面加重点吧。。。所以个人认为考到的概率较大。
并且,这份文档的内容会超出复习范围不少,因为是一边学一边写的,所以把我认为有助于大家理解的部分都敲进去了,如果只是为了背书的话,那大概率看每个题目下的最后一个小问差不多了,前面的大部分都是为了进行铺垫。
同样的,如果以后的学弟学妹画完重点后发现又多了许多新玩意,欢迎大家在Issues上Q我,最好是直接push进来,让文档成为一个可升级迭代的Project。
一、CAP理论分布式系统的三个特性
一致性【Consistency】:在分布式系统中的所有数据备份,在同一时刻是否有同样的值。(等同于所有节点访问同一份最新的数据副本)
可用性【Availability】:在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
分区容忍性【Partition tolerance】:以实际效果 ...