Friday BI Fly | 2016年11月4日晚8点半微信直播交流游戏行业数据仓库存储模型第38场 图文版记录

浏览: 3129

公告

周五BI飞起来,每周一个主题,一场跟数据有关的行业、工具、技术的交流盛宴,锁定在每周五晚20:30,不见不散!

未来几期的微信直播活动分享主题将包括在“增长黑客”在Power BI中的应用Excel商业智能案例分享

具体日期安排请关注天善智能问答社区活动版块
https://www.hellobi.com/events

本期分享内容

1、游戏行业数据关注什么,有什么特征?

2、多区服、多游戏产品是分还是合?

3、有没有低门槛的高效解决方案?

本期嘉宾介绍

诛胖土豆,男,游戏行业数据工作十余年,擅长数据库设计及离线处理。在世纪天成期间完成计费、会员等平台数据库设计、开发及维护,平台高峰期承载80万同时在线。离线数据使用低配1850完成了数百亿级数据仓库建设,并且达到秒级响应。对于ETL、数据预处理、数据质量控制、数据存储、性能优化、数据可视化有深入理解。现阶段以技术管理为主,专注于中小规模数据综合解决方案。

主持人:

大家好,我是微信直播活动的主持人咖啡,每周一个主题,一场跟数据有关的行业、工具、技术的交流盛宴。我们的口号是“Friday BI Fly 周五BI飞起来”。

下面我们就正式开始今天的活动了,关于我们的微信直播活动,新来的朋友可能还有各种疑问,下面我就针对常见问题给大家做个解答。

交流游戏行业数据仓库存储模型

1.png

很高兴看到这么多人加入到大数据领域的研究行列中,你们的加入一定会使促使大数据应用快速发 展。同时作为一名领域从业者,也真诚地感谢天善社区为数据领域的勤勉贡献。
可以说每一种技术的兴起都有原始的需求驱动,而技术从出现到应用的周期变得越来越短。幸运的 是,到目前为止,我们这批人都还是大数据领域的先行者。作为先行者,我们都有可能引导这个行业 的方向,所以首先要明确自己在这股浪潮中的定位。

现在的数据无处不在,从基因科学到航天技术,从历史人文到学术研究,从工业到农业各行各业都产 生着海量的数据。这些数据从产生开始,就携带着它最原始的基因等待我们去发掘、研究并对成果加 以运用。大企业利用数据稳固地位,中小企业运用数据做竞争力,就连传统行业和各大组织也积极加入这个领 域,每天产生大量的岗位机会携着丰厚的酬劳,等着在座各位的加入。

要做大数据并不容易。我看着不少朋友拥有超前的眼光,明明认准这个领域却迟迟不能获取一个专业 的工作机会。他们每天阅读大量的信息,忙于参加各种讲座学习,勤劳聪明却难以进入门槛,问题在 哪里?大数据是综合技能的运用,所以需要学习多种技能,海量的信息的介绍没错,老师的讲解也没错,但 我认为这里就是最大的问题所在。相比于知识技能学习,在职人员的工作机会更加需要的是实践技 能。对于在职人员,我强烈建议大家快速掌握单项技能并强化实践能力,其他的相关技能结合公司业务逐 步提升。

目标

锁定大数据领域最重要、最急缺、最容易取得成效的领域,并给出大家实战的建议。大家根据这 些建议略作准备,就可以快速加入相关领域的具体工作。

游戏行业特征

我的经验在游戏行业更多一些,但幸运的是,这些经验在其他领域的大多数场景都有非常重要的 借鉴意义。换个角度来说,游戏业务场景在各行业都属于挑战性更高的领域,大家掌握其中的方 法,足以应对工作需要。


游戏要求高并发

相比于系统优化,高并发要求更多的是设计水准,表面上看这部分是在线数据业务,但这部分的经验 会对离线数据的解决提供直接的借鉴。离线数据处理,我今天主要介绍数据仓库,会结合经典理论和 实践给大家参考。之所以要介绍这部分,是因为现阶段大数据有一个明显问题强相关。大家看到现在很多工作机会讲得都是分布式计算、集群的方式处理数据对么?但事实上大家再看这些 企业数据运用所取得的成绩,很难看到是不是?这么好的硬件条件、这么好的开源生态,为什么在企业内正向引导业务的能力还不如业务专家?

我简单从三方面分享自己的观点:

首先,大家看得比较多的spark\hadoop\storm\kafka等开源生态是需要你们持续跟进的。但入行之前不能作为重点,因为这些方向虽然技术门槛不高,但实践要求新人是很难获取的。就算是通过培训 班操作案例,也很难获得OFFER。

其次,看好数据能力的同时,要明确数据技术不是万能的。总体来讲,通过数据技术获得的商业价值 目前还无法和业务专家相提并论。数据和人的能力比较,目前是人更加厉害。所以大家开展一个项目 时,应当避免设置过高的目标。

然后就是资源的利用,有些人是被际遇硬推到负责大数据的位置上,手上比较容易获得较好的设备、 人力资源,但往往取得不了很好的成绩。我推荐大家选择合适的资源推动项目,至少要划分成轻量、 中量、重量、海量的级别。几个TB以及几十TB是主要运用场景,如果有分布式计算资源使用是好 事,但没有这样的资源同样可以做到,并且是很好地做到。

游戏逻辑复杂

数据数据结构比较复杂,体现出来的就是表非常多,区服非常多,版本更新及区服变化很频繁。也就 是说,一家企业可能会有十款游戏,每款游戏会有十个区服,每个区服会有一百张数据表,每个数据 表有十个字段,每个字段对应百万以上的数据行。大家了解传统数据仓库领域有个常态,就是70%的工作量在于ETL,那么我这里着重介绍一种一个人 可以处理成千上万ETL任务的方法。

针对这个方法,我会解释关键的理论基础,并跟实践结合地分享给大家:首先,ETL的概念来源于数据仓库。数据仓库的两种模型区别大家主要关注数据集市和数据仓库的运 用即可,也就是两种模型对于ETL过程的设计是完全一致的。ETCL主要任务是完成数据的整合,也就是数据抽取、转化、清洗和加载。这里常规做法就是选择一种 ETL工具,一个个地完成这个任务。

大家结合上面游戏的逻辑复杂特征,觉得一家中等游戏企业需要多 少专业ETL工程师?如果没有这个人力条件,该如何完成?大家现在知道ETL的主要任务是整合相关的工作,但架构设计必须要有层次,所以一定要研 究STAGE\ODS\MART\DW的层次关系。以上的各个层次强烈建议大家再项目中有意识地使用,只有 这样才能理解各层次的设计意义所在。

STAGE作为第一层次,大家做的时候一定会有明显的冗余。这 不是问题,因为这个层次定位就是要冗余。虽然说现在做数据架构不是必须的层次,但在硬件和网络 条件不好的年代,这一层次有至关重要的作用。冗余代表着整个体系失败的时候你不需要重头再来,至少不是从零开始。容易代表着你在这个层次可 以完成缓慢变化的数据预处理。ODS早期是有数据主题涉及的功能,可以用于部分数据输出,也就是 能替代一些MART的功能。所以ODS和STAGE的关系,除了数据是从STAGE提取的之外,并没有其 他的关联。

至于MART是在DW之前还是之后,我认为争论没有意义,我的处理经验是都可以。在挑战性高的情 况下,我采用的做法是DW之前和之后都放置MART。在MART和DW的设计中,专业的数据库设计能力可以起到四两拨千斤的作用。稍后我会单独分享下 数据库相关的知识。那么大家对层次体系有了基本认识之后,面临的问题就是如何解决那70%的主要工作。

用SSIS的同学 可能会知道一个概念,叫做运行时映射,这正是SSIS以及其他的ETL工具的共性。这个特性具体体现 是什么呢?就是各位做的ETL流程,在部署完整之后最担心的情况无法满足:一旦数据源和数据目标 结构变化,我们的流程就不能起作用了。流程出错则数据出错,数据错我们的精力就是跟着修复错误。且不说线上变化多数不经过我们,就算 通知到我们,游戏区服变化及版本升级带动成千上万的任务维护也足以让人崩溃。

我就业初期用的就是SSIS,在我对一款游戏做了十个ETL流程时果断地停了下来。因为一个人要完成 数据设计、运维、各种统计需求再加上无休无止的ETL任务,根本不具备可行性。所以我设计了通用 ETL流程,这个流程实践超过十年,处理了一万以上的流程任务。结合上面的信息,大家容易想到,流程的关键在于解决运行时无法映射的问题。现在已经有了可配置 ETL的概念,而我采用的正是这种思想。ETL的确是不同的任务,但工具化将任务一起处理,只不过是 降低了使用者的门槛,并非是最佳的解决方案。恰恰相反,现在对数据处理的要求很高,随便一个工 具化组件加载几百万数据,然后做一些转换运算就能引起明显卡顿,甚至崩溃掉。但工具化的思路并不是唯一的解决方案。我们从新考虑ETL过程,其实从根本上是为了解决数据整合 的需求。我们将流程拆分开,换个角度同样可以做到。

用流程A完成数据收集整合,用流程B完成数 据转换,用流程C完成数据物理落地。这样任务的逻辑单一,分别解决网络传输,数据集合运算,数 据存储设计的问题?回到运行时映射的问题,用SSIS举例,我绕开问题的方法就是在外面加一层売。用于将配置信息自动 生成映射关系,然后调度执行。是不是很简单?实际上就这么简单。并且这个思路只要能做到,其他 的关系数据及文件同样可以做到。这个地方涉及了不少细节,这里难以详细说明,如果感兴趣后续可 以继续讨论。

关系数据库概念设计

大家可以简化地掌握实体、关系、属性的使用。也就是无论数据库还是数据仓库的结构,大家都朝这 里去套用即可。当大家发现模型画出来奇怪或者有问题的时候,主要参考下泛化及特化的概念即可。

逻辑设计

这一层设计承上启下,作用是将概念设计SQL化。大家通常能快速地掌握SQL的常见数据类型,这里 不会有问题。熟练之后可以将这一步合并到概念设计或者物理设计,当然这只是实践经验,大家平时 还是要通过训练理解后才可以偷懒简化。

物理设计

物理设计是将数据库结构序列化到硬盘中。大家需要研究索引(物理结构、查询覆盖、碎片及索引分 区)和分片(拆分成多字段、表、数据库、实例、及服务器,着重了解HASH方式以及该方式引起的 全库校验问题解决方法。

SQL语言

这部分大家需要看懂语法结构以及了解国标,例如:

blob.png

可以结合以下链接熟悉下方法:

blob.png

今天的时间超了不好意思,原计划还有挺多内容想要仔细讨论的。

感谢大家的参与,感谢天善的组织……


主持人:

咖啡姐:

非常感谢诛胖土豆先生为我们带来的精彩演讲,同时也感谢我们在场积极提问的朋友们,相信大家对今天的会议内容已经有了更深一步的了解,衷心的希望您通过今天的演讲能有所收获。接下来是自由讨论时间:

自由讨论

问题一:SSIS加売

诛胖土豆 :通过SCRIPT功能或者用C#\VB.NET调用SSIS组件,用编程控制组件的创建、映射及释放。程序 每次生成文件,替代手工编辑调整映射、然后重新部署。 


问题二: 大数据存储 

诛胖土豆 : 现在常规做法是使用HADOOP,如果不使用的话,将文件不断拆分,把分片的思想一直扩展。 我早期项目中做到1850设备处理多个单表50亿以上的情况,这里对设计要求高,并且要将增量及 预处理概念理解透彻。 


问题三: 聚类分析,离群值、极端值,如何处理? 

诛胖土豆 : 数据挖掘及机器学习我运用不多,但极值通常是被异常检测过滤的对象,这个问题回答不好。 


问题四: etl工程师有必要学习一门语言吗发展方向是什么? 

诛胖土豆 : 工具化容易见顶,推荐下python,对程序语言要求不高。方向我不赞成定位于etl工程师,容易 被替代体现不出价值。前面分享了当前的际遇,表面上看是需要大量大数据人才,其实根本上需 要大量的大数据项目负责人。我希望大家不要局限于某一个具体职位,请勇担社会责任,因为真 的有太多岗位需求找不到人。 


问题五: 现在在分析之前前人用ssis做etl的数据库感觉很凌乱需要一个个打开dtsx .再去看每个box里的 逻辑sql请问这种情况大神是怎么处理的 

诛胖土豆 : 这个问题不只是SSIS存在,任何工具都有。每个工程师都选用不同的工具,就算同一个工具做法 也不同,我这部分有一个专项设计,能够完全把ETL过程配置化。也就是我的方案除了改配置文 件,没有这些文件编辑工作。当然,维护凌乱的流程是现状,大家应对的时候从项目管理的角度去做。提供文档,提供流程维 护,提供部署说明,提供错误历史。做工作不仅要完成任务,还需要可持续运行,其他人可维护。 


问题六: STAGE、〇DS、DW不属于DW的一部分么? 

诛胖土豆 : 属于DW的一部分,但这个DW说的是数据仓库架构,架构中有一个层次同样称之为DATA WAREHOUSE。 


问题七: 流程A数据收集整合,用流程B数据转换,用流程C数据物理落地。老师是否可以提供几个相应 的实用工具。 

诛胖土豆 : 这部分是我自己开发的功能,市面上没有见过同类做法。也是这个愿意,很多项目显得ETL工程 师特别多。 


问题八: 你刚有说,有些人是被际遇硬推到负责大数据的位置上,现状可能还是无从下手,那么针对这种 情况,你建议如何进行呢? 

诛胖土豆 : 建议如下: 

首先,设法找领域资深人士,避免找能说的,侧重找能做的。 

其次,借助工具及咨询顾问。第三方服务或者工具能够解决一些特定问题,多用这些资源,可以 快速提升团队的绩效。 

然后,如果想做短期,就多用设备、费用、人力资源堆砌。如果做长期,培养团队。 


问题九: 请教个问题:自己公司的etl入库量超过千万明显很慢2个半小时,总数据量在9000万左右13G.有 没有方法或成熟工具可以借鉴一下 

诛胖土豆 : 数据处理锁级别和关系数据库类似,是会升级的。首先确定自己磁盘的能力,看下转速及RAID结 构,比如40M/s,就知道自己写入的上限在哪里了。超过百万的数据分片处理好。首先中间断了也有成果,其次过程进度可见,然后避免大量flush 硬盘锁死硬盘丨?直接让系统崩溃。举例来说,你一次写入4 00 000 000系统临时空间都不够用,但如果均分之后中间加入 checkpoint,就能正常完成。就像SSIS每次提交接近10万比较好一样,可以自己测算下最适合的 切片大小。简单来说,把你的2个半小时分成分钟、秒来使用,避免一次占据大量资源。 


问题十: 来自数据分析与数据挖掘群的提问:老师觉得这个课题从入门到精通需要花多长时间? 

诛胖土豆 : 我亲自培训过不少人,如果放在公司业务中训练,聪明点的一般我跟进培训两周足够了。慢热型 的,最夸张的需要我跟进一年,但我最喜欢的还是慢热型的,能走的更远。文本沟通没有意义,要放在实践环境中,通常一个星期带岗可以自己运转起来了。当然,像我这 种技术领域师范生可不多:) 


问题十一: 老师您用c#写的売能公开代码吗?或者讲讲配置文件的格式也可以。 

诛胖土豆 : 解决运行时问题可以找到关键代码,但如果用某度搜索我就不确定了。这部分要实际演示解释代 码,以前尝试让开发专业人员都接手不了,因为这里难度不在开发,在于流程的理解。当然, SSIS的组件也是够看的了。


友情提示:天善智能是国内最大的商业智能BI、数据分析、大数据领域社区,欢迎大家登陆天善学院有更多免费行业专家数据库,商业智能BI,数据分析,大数据,数据挖掘视频和干货好文分享。

Friday BI Fly:每周一个主题,一场跟数据有关的行业、工具、技术的交流盛宴。我们的口号是“Friday BI Fly 周五BI飞起来”。 Friday BI Fly 微信直播活动目前已举办38期,往期分享内容包括:【金融行业、零售行业、旅游行业、大数据挖掘、大数据落地、数据分析师、数据治理、大数据征信、风控管理、Python实战、用户画像、数据治理、数据架构、R语言等】。

今天的微信直播活动到这里就结束了,喜欢天善智能的朋友们请继续关注我们,每周五晚8:30,我们不见不散哦!

下期预告

2016年11月11日晚8点半微信直播交流“增长黑客”在Power BI中的应用第39场

https://www.hellobi.com/event/125


每周 Friday BI Fly 微信直播参加方式,加个人微信:fridaybifly,并发送微信:公司+行业+姓名,即可参加天善智能微信直播活动。

天善智能 www.hellobi.com 是一个专注于商业智能BI、数据分析、数据挖掘和大数据技术的垂直社区平台(国内唯一的数据类技术问答社区、博客、在线学院)。

天善智能拥有国内最大的数据领域社群组织,每周五晚上 8:30 Friday BI Fly 40+ 微信群同步直播行业和大数据技术交流。

Saturday BI Fly北上广深以及全国其它各个城市 200-500人规模的大数据沙龙活动。


Clipboard Image.png

关注天善智能,关注大家都在关注的大数据社区

推荐 4
本文由 天善智能 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

2 个评论

这周很精彩 老师讲的好
学习了

要回复文章请先登录注册