一个人在大数据工作都干些什么
欢迎各位阅读本篇文章,本篇文章讲述了教大家如何在OGG,ETL,FLUME中计划任务,课课家教育平台提醒各位:本篇文章纯干货~因此大家一定要认真阅读本篇文章哦
入职公司后,知道自己要从事的是一份数据仓建设工作,从项目经理那里了解到,主要是负责数据的接入,清洗,还有场景的建设。
和普通的新入职场的人一样,我对工作也都是存在恐惧的,而且有焦虑症,因为对工作的未知性,还有也不知道工作的要求是不是很高,自己是否会能在岗位呆下去,真的创造价值,那都是后话。
不怕你恐惧,我随意列举一下我在项目经理给出的PPT里面列举的词,数据仓,数据集市,MPP,Hbase,OGG,ETL,FLUME,历史数据,增量数据,spark,hdfs,strom,hadoop,infa,RAC,oracle,kafka,RDB,OLDA,REIDS,业务应用,营销,日志数据,结构化,非结构化,设备台帐,故障,可视化,分析,专题,部署文案,实施文案,周报,调研分析,清洗转换,数据验证…………
对一个新人来说看到这样的一个PPT有两个阶段,一个是蒙逼的阶段,此时可能伴随很多的有意思的祈祷,OMG,我的天,我的….甚至也有的蒙逼不说话的。此时的新人都会有的共同观点,至少企业喜欢找有经验的人,而且是真的干过活的人。这大家都不会存在偏见了。我想说我的经历就是让大家知道怎么不在一开始就堕入自暴自弃的状况。
到岗前期的准备工作,无论你之前多么牛逼,在你得到offer之后,你就需要从人或者搜索相关岗位信息需要的一些东西。我其实算比较幸运的是进入了电网系统内的工作,项目经理人好。给我介绍了具体的项目上的东西。从接触到的资料看,我分析了一下,我迫切的需要的知识为最简单的oracle 知识。我不是说oracle简单,而是我需要知道简单的oracle。其实这里存在一个问题,你真的觉得你会去写简单的sql么,如果你用选择的在去淘汰一下,你就会感觉,对的,这是我臆想的,也是一种焦虑症,因为可能你一开始觉得要搞的东西可能工作中他用不上了,或者是人家都不搭理你会不会这个,而问你别的技术,而我想说,我有焦虑症又怎么了,我现在学的东西用不上用能怎么样呢。反复的去筛选,把时间浪费在臆想这东西有没有用上面,这更加对接不上职位。
那我的选择没别的,几分钟决定了我需要做的入职前的准备,学会oracle(简单的oracle),学会hadoop,spark,hbase,hive,集群,分布式,HA机制。
喜欢做伸手党么,其实大家都喜欢做伸手党的,特别是新人,因为没有方向嘛,但是这里我还是奉劝大家一句,这是关于你自己的态度,我可以很明白的给你说,我学这些没做伸手党,我去的搜索网络资源,找了两套视频而已。简单的说就是一份简单的认识,和一个体系的理解。还有就是,这次我并没有去敲那些代码和命令,强迫自己一下子变的非常牛。
所以入职前的准备,就是自发的在恐惧 和 焦虑症的状况下,找了视频,快速的用了几天时间,一口气看完,期间我也一样的有,这实施文档要写的时候,要是我显出是一个新人怎么办,我没写过周报,到时候卡壳了一个星期都没办法写周报怎么办,还有项目经理说,这还需要业务知识,我没从事过营销,没搞过电网系统的项目,到时候,我配置的环境出现了问题,拖了项目的后腿,怎么办,我是不是应该给公司说我不来了,我是不是去问问看,找一份工作职责更加单一的工作,我是不是要找一个看起来我都会的岗位。
伴随这些思路,我还是坚持了几天之内看了一遍oracle 和 hadoop视频。可以说是一口气看完。而且也坚持没有考虑其它岗位,不过说不好呢,我也确实不能被其它单位看上,我是转型新人,你在牛,公司都在为你承当着风险,才选择你。
入职后的工作,和我设想的有天差地别。项目经理带我去见甲方,甲方的领导,是个很实在的人,他看过我们的项目资料的,开场白很严肃的问我们项目经理,你底下这些人能干啥。搞过项目吗,有什么大数据经验,一连串的严肃语句,让我怀疑了人生,就这样的头脑空白的情况下,我找了一个突破点,ETL(是用工具infa做数据清洗)。
后面人员逐渐的多了,在甲方领导问我们你负责什么技术,我回答的是ETL(当然也是在项目经理的引导下回答的),为什么是回答的ETL,从整体的流程来看,从历史数据库 RAC 接入到缓冲区,虽然历史数据写的是用ETL的方法,其实在进入岗位之前,项目经理就有聊这些,这个不会用专业的ETL工具做的,我们目前最主要的是完成业务的调研,技术上还是配置OGG实时数据的增量接入。而且分析任务来看,现在的阶段都是配置数据库OGG,嘿嘿,现在主要干活的都是OGG,ETL我还有时间充分的消化一下,而且还有一点,不能小材大用的坑项目。就说参加的人中,有玩oracle拿了OCP的(相当于高级技术人员认证),有搞了5年真实项目的。我还是自己掂量了一下,能用时间解决的问题,而且还有时间的都不是事情。
#p#分页标题#e#
回过头回到了工作岗位,我就向有经验的同事找学习资料,其中就有我们现阶段需要的技术资料OGG,ETL。在学习的过程中,虽然是在虚拟机上配置的环境,但是一边看着同事给的技术培训资料,当然这个就是项目上提到过的事实文档,而且还有视频。在看视频的过程中,并写下了这两个工具的安装文档。当然其中也有出现问题,都是通过搜索来解决的。因为我也不想耽误太多我同事的时间,看完同事提供的东西,在通过自学,OGG的生产环境中的实施技术,和ETL生产环境中的流程,都非常的清晰了,在回顾了一下入职的整个过程,心里开始有点自信能在这个项目上干活。
然而,一切都不存在美好,在甲方场地干活的同时,项目经理说担心这个项目会有变故,当然工作肯定还是有的,要我们也不要着急这个事情。两个星期下来,大部分工作都是在写文档,做数据梳理的过程,而工作都是由我两个同事完成,我只在旁边辅助工作,更多的是向他们学习,然后自己看业务文件,数据字典。我开始思考着公司当初找我来是要我干什么活的,公司是不是有这种岗位让我工作?而在我看来,我现在是没干活,也没有能在我想从事的岗位工作。所以和项目经理的商量下,我向公司提出换工作的申请。
工作开展没多久,项目经理说他可能要离职了,一个是感觉年纪大了,现在还有奋斗精神,想自己创业,他说他羡慕之前一起工作的老大,辞职后自己去房地产打工,然后现在自己创业。还有就是家里小孩上学,还有第二胎。当然也有这个项目的压力,一起都凑在一块,他决定了要自己去创业了。
你刚刚进入的这个行业,居然带你的老大,就离职想自己去干创业了,这对于你们来说我不知道会让你们产生什么想法,当然我面临的还有更多,先说我入职把,当初和我们公司聊offer的时候,我并不知道是在我家乡工作,我以为是会要去北漂,当时聊offer的时候,我小孩才出生,迫于感觉北京会有压力,待遇方面我也是想公司尽量的要价了。至少对于刚刚转型的人来说,或者就是对于我来说,我还是要了一份比较好的待遇。不过不知足的是,我依然是没有放弃找别的offer做候补,当然后面也发现互联网公司给的待遇应该是可以比我要的高。而正准备去北京的时候,项目经理联系我,说是可以在我所在的家乡干活,我非常的喜出望外,可以多多的陪伴孩子。公司还是不错的,可能之前有别的安排也不一定,但是我家乡这里有项目需求,也就默认让我在家乡入职了。而我现在决定去北京,需要通过家人的同意。我还是挺安慰我自己的,或许是我小孩有福气把,不舍得我,才安排多了几个月陪伴一下她。在说来自于圈子的影响,很多朋友说,你取得了这么好的竞赛成绩,现在也有更好的比赛能提供offer,你可以考虑去互联网公司发挥自己,说不定还能有更好的待遇呢。当然还有朋友有提供让我可以考虑的机会的。
这些选择都太多了,太多需要考虑的问题,未来,个人情感,更具有诱惑的挑战,更具诱惑的待遇,能不能在北漂下幸存……..太多太多了。而我义无反顾的还是选择了在我现在的公司工作,选择了北漂。
我欠这份工作太多东西了,一个新转型的机会,给我带来很多之前没有过的体验,我可能都没有了具体的追求了。而我只知道一件事,那就是和做入职准备一样。不论有没有意义,我规划好我的路线。
所以在上班的同时,我搭建了hadoop,spark环境,准备学习scala,pyspark,mllib。甚至是想学习一下java。重复的看之前下载的DB(盗版)视频。不断的扩充知识,甚至还回顾的看理论书籍,数据挖掘概念之类的书籍,对于迷茫还有失落,我只能选择敲命令,敲代码,学习还有回顾知识,填补我大脑的空白。
#p#分页标题#e#
在项目经理离职的那几天里,人员也开始明确的定下来了,项目的事情也开始明朗,我们项目组申请到了资源,需要正式配置环境。而此时,公司问我什么时候能来北京工作。公司这边已经沟通好有数据分析岗位了。其实给我打电话的时候,公司这已经很明确是我一定要来北京了。压着最后几天,我和同事配置了一下RDB集群环境,也算是正式的干了一下实际的工作把,其实也没啥感觉,就和虚拟机里面敲命令一样。
来北京一个星期了,我只能说北京的交通把我打败了,我才知道北京地铁这么多也不能让我准时的上班,可能天气好骑自行车都快一点。要是下雨了。你预计1个小时能到的,对于初来北漂的你准备两个小时才妥当。来北京没多久,我那老掉牙而且摔的破烂手机也报废了。所以去北京中关村买手机,为什么去实体店买手机。一个是我手机坏了,二个是我租的房子没网络,三个是我认识的人都上班去了。当然有上夜班的我也不确定他在家没。就这样我去了中关村,对比很多年之前在北京来说,中关村的E世界和鼎好当然还有附近的其它以前繁华的电子商场,从以前的一个摊位难求,到现在基本上都撤离了。互联网的运营模式,至少对这个行业带来的非常大的冲击,而很多生存下来的都是带着互联网经营模式的浪潮,获得了更好的生存。在找手机专卖店的过程中也不断的用心感受这个场景。行业没了,灵活的人肯定还在别的地方找到了他的新发展。
来到北京,我联系了很早之前在朋友,他们帮助我找房子,还请客吃饭,大家一起聊聊近几年的情况,还有大家的婚姻,当然还有单者的聊自己的感情经历,时隔多年,大家碰到一起还是之前的感觉。
当然还有朋友给我一些更好的指导,让我尝试新的高度,写数据方面的文章,让我巩固基础知识,还希望我多去参加一些数据管理方面的交流。嗯 ,我还真就写了这个文章(数据科学与大数据的趋势与未来)。就算是一次尝试了。
公司方面,和我们部门主任聊天,公司给了我一个很好的学习机会,参与场景项目的工作,电网的场景非常的多,公司方面对我的照顾非常的周到。
不知道大家是否好奇我的工作,结尾我就说一下我现在正在做的事情把。我们项目上基于我现在刚进来,先是安排我多熟悉之前的资料,也给我安排了一个任务,从公司简介中,挖掘一些可以用于公司评价的数据。
我先是找了网络上一个公司的简介。
杭州昌能电力科技有限公司是一家专业从事新能源发电、送变电、农配网和用户工程设计总承包为主,集工程项目管理、技术研发、技术服务与咨询于一身的综合性高新技术企业。公司成立于2010年,注册资本2000万元人民币。公司坐落于美丽的杭州市西湖区,位居有未来“杭州徐家汇”之称的申花板块核心区域。
公司拥有电力行业(新能源发电、变电工程、送电工程)专业工程设计乙级资质证书;电力行业工程咨询丙级资质证书,建设工程测量乙级资质证书,并已通过审核并取得ISO9001质量管理体系、ISO14001环境管理体系、OHSAS18001职业健康安全管理体认证证书,建立了现代化企业管理体系标准。 同时又是杭州市可再生能源行业协会会员,杭州市高新企业,浙江省科技型企业,具有企业信用3A认证证书等。
公司坚持“专注电力、务实创新、持续发展”的经营目标,主要从事光伏发电、220kv及以下的送电、变电、配网、农网和用户(房产、酒店、工厂等居配)工程的设计总包、技术服务等业务,服务范围遍布浙江省内杭州、宁波、绍兴、台州、金华、丽水、舟山及内蒙、甘肃、新疆、安徽、江西等多个地区,并获得了良好的市场口碑。
公司设有变电、线路、配网、土建、技经、新能源等多个专业部室,拥有员工百余人,大专学历及以上占全部员工95%以上;高、中级专业技术人员占全部工程技术人员25%以上;各类注册师占全部工程技术人员10%以上。公司以技术为先导,注重科技创新,截止2016年底,公司已累计被国家专利局授予18项实用新型专利,并有十余项实用新型专利和发明专利在审批中。
公司恪守“规范经济、精益求精”的质量要求,注重产品质量。使客户和业主满意是公司的一贯坚持目标,始终坚持为客户的利益最大化而努力。希望能在合作共赢的友好氛围中与客户一起走向美好的未来!
然后挖出
#p#分页标题#e#
公司名称 公司性质 经营范围 成立时间 注册资本 公司地址 公司园区 工程证书总个数 工程证书甲 工程证书乙 工程证书丙 是否综合性 是否高新型 管理认证体系几项 是否有质量管理体系认证 是否有环境管理体系认证 能否从事总包工作 总包范围简介 专业部室多少个 员工个数 学历占比(大专及以上) 专业技术人员占比 注册师占比 是否有实用新型专利 专利多少项 是否有在申请中专利 经营场所面积 设备台数 是否和名企合作 是否和研究所合作 服务范围省市个数 服务范围行业个数 是否有当地信誉认证 网省办事处个数 是否研发新技术 是否互联网+概念 是否大数据概念 是否智能领域概念
最后选用正则的方法来提取,当然正则我接触毕竟少,接下来就是完善的过程了。
之前有人质疑过我的书单
我并没有费尽心思的整理我的书单,或者是我的文字,人写文章,或者是打字,很容易刻画自己,其实我也想刻画自己,这圈子里面,我就是这样的人,无论我的思路是否对,我相信和我交流的人是有自己的主见意识,和我交流的人,成长是来自他花费的时间,而我只是一个过客。
事后我也向我在圈子里面尊敬的苍老师,问了一下他的建议,其实作为菜鸟来说,我也很希望能知道真正的大佬是如何学习的,苍老师是这样说的:esl大法支持者强烈建议把esl放进去。大神看到这书单的反应就是不一样。其实我的书单漏的东西很多,加上我英文不行,我看的书可能都不是很经典。其中苍老师说的ESL,还有黄博的机器学习笔记(NG经典课程的学习笔记),其实还有NG的另外一个版本的笔记我也看过,网上很多链接。
苍老师分享了他学习机器学习的书:我认真看过的好像就三本,其他都是论文啊博客啊大学lecture学的。第一本是esl,下图是另外两本
在说入门把,其实我也并不能完全算没有编程知识的。我之前会Lin
启用 safe-update 选项,避免没有 WHERE 条件的全表数据被修改;
在应用中尽量不直接DELETE删除数据,而是设置一个标志位就好了。需要真正删除时,交由DBA先备份后再物理删除,避免误操作删除全部数据。
还可以采用触发器来做一些辅助功能,比如防止黑客恶意篡改数据。
3. MySQL账号权限规则
业务帐号,权限最小化,坚决不允许DROP、TRUNCATE权限。
业务账号默认只授予普通的DML所需权限,也就是select、update、insert、delete、execute等几个权限,其余不给。
MySQL初始化后,先行删除无用账号,删除匿名test数据库
mysql> delete from mysql.user where user!='root' or host!='localhost'; flush privileges;
mysql> drop database test;
创建备份专用账号,只有SELECT权限,且只允许本机可登入。
设置MySQL账号的密码安全策略,包括长度、复杂性。
4. 关于数据备份
记住, 做好数据全量备份是系统崩溃无法修复时的最后一概救命稻草 。
备份数据还可以用来做数据审计或是用于数据仓库的数据源拉取之用 。
一般来说,备份策略是这样的: 每天一次全备,并且定期对binlog做增备,或者直接利用binlog server机制将binlog传输到其他远程主机上 。有了全备+binlog,就可以按需恢复到任何时间点。
特别提醒:当采用xtrabackup的流式备份时,考虑采用加密传输,避免备份数据被恶意截取。
外网安全策略
事实上,操作系统安及应用安全要比数据库自身的安全策略更重要。同理,应用程序及其所在的服务器端的系统安全也很重要,很多数据安全事件,都是通过代码漏洞入侵到应用服务器,再去探测数据库,最后成功拖库。
1. 操作系统安全建议
运行MySQL的Linux必须只运行在内部网络,不允许直接对公网暴露,实在有需要从公网连接的话,再通过跳板机做端口转发,并且如上面所述,要严格限制数据库账号权限级别。
系统账号都改成基于ssh key认证,不允许远程密码登入,且ssh key的算法、长度有要求以确保相对安全。这样就没有密码丢失的风险,除非个人的私钥被盗。
进一步的话,甚至可以对全部服务器启用PAM认证,做到账号的统一管理,也更方便、安全。
关闭不必要的系统服务,只开必须的进程,例如 mysqld、sshd、networking、crond、syslogd 等服务,其它的都关闭。
禁止root账号远程登录。
禁止用root账号启动mysqld等普通业务服务进程。
sshd服务的端口号建议修改成10000以上。
在不影响性能的前提下,尽可能启用对MySQL服务端口的防火墙策略(高并发时,采用iptables可能影响性能,建议改用ip route策略)。
GRUB必须设置密码,物理服务器的Idrac/imm/ilo等账号默认密码也要修改。
每个需要登入系统的员工,都使用每个人私有帐号,而不是使用公共账号。
#p#分页标题#e#
应该启用系统层的操作审计,记录所有ssh日志,或利bash记录相应的操作命令并发送到远程服务器,然后进行相应的安全审计,及时发现不安全操作。
正确设置MySQL及其他数据库服务相关目录权限,不要全是755,一般750就够了。
可以考虑部署堡垒机,所有连接远程服务器都需要先通过堡垒机,堡垒机上就可以实现所有操作记录以及审计功能了。
脚本加密对安全性提升其实没太大帮助。对有经验的黑客来说,只要有系统登入权限,就可以通过提权等方式轻松获得root。
2. 应用安全建议
禁用web server的autoindex配置。
从制度层面,杜绝员工将代码上传到外部github上,因为很可能存在内部IP、账号密码泄露的风险,真的要上传必须先经过安全审核。
尽量不要在公网上使用开源的cms、blog、论坛等系统,除非做过代码安全审计,或者事先做好安全策略。这类系统一般都是黑客重点研究对象,很容易被搞;
在web server层,可以用一些安全模块,比如nginx的WAF模块;
在app server层,可以做好代码安全审计、安全扫描,防止XSS攻击、CSRF攻击、SQL注入、文件上传攻击、绕过cookie检测等安全漏洞;
应用程序中涉及账号密码的地方例如JDBC连接串配置,尽量把明文密码采用加密方式存储,再利用内部私有的解密工具进行反解密后再使用。或者可以让应用程序先用中间账号连接proxy层,再由proxy连接MySQL,避免应用层直连MySQL;
最后我们想说, 任何高明的安全策略,都不如内部员工的安全意识来的重要 。以前发生过一起案例,公司内有位员工的PC不慎中毒,结果导致内网数据被盗。
安全无小事,每个人都应铭记于心。在数据安全面前,可以适当牺牲一些便利性,当然也不能太过,否则可能得不偿失。
ux,会CCNA,会服务员监控,可能还会一些shell,在对智能家居感兴趣的年代里面,我学过C语言,会搞跑马灯和步进马达。还用C++开发过coreldraw的插件,沐阳印章工具。并因此获得过一个红包,网友因为我的开源代码,而感觉到了有价值。
当然苍老师也给了他的见解:
第一,我真正从事数据之前的做了3年的java开发和Python开发,也做过推荐系统和ml项目,虽然不一定成熟,但是确保逻辑思维没问题
第二,学dm过程总得给自己定一个短期目标,比如学会某种算法,完成某个比赛的名次,写出什么的代码。完成后再去下一个目标,不要停要一直push自己。
3,像比你强的人的学习,无论直接和间接,和他们交流能拓宽你的视野明白1自己的差距
4,英语一定要好
5,培养一种对数据的敏感度,或者说经验,多接触各类数据
6,多思考,要有辩证性的思维方式
7,坚持
我现在想想我第一次比赛的时候,以为自己无敌的感觉,实在汗颜……
其实现在我也是这样的感觉,在圈子里面,你乐于分享就行了,实在不要感觉自己很牛,大神低调的很多。而且这个圈子的人,有自己的主见的更多。真正的能说,这圈子失去谁都会运转。
我希望大家通过看到别人不一样的想法的时候,能形成自己的主见,更多的是交流的碰撞,而不是从交流中,得到对人的判断。我们毕竟是来学技术的。我希望这个圈子不存在圈子,希望这个圈子是一个匿名的世界。这里没有真实的一面,只有求知的一面,质疑来自于对学习的态度,崇拜不是来自于对排名。可以较真,但是要明白一切的交流是为了成长,是为了学习。是为了可以摆脱幻想和依赖。
相信最后大家阅读完毕本篇文章,肯定学到了不少知识吧?其实大家私下还得多多自学,当然如果大家还想了解更多方面的详细内容的话呢,不妨关注课课家教育平台,在这个学习知识的天堂中,您肯定会有意想不到的收获的!