数据建模

专家指南:大数据数据建模的常见问题

三世轮回 提交于 2020-01-16 02:35:29
专家指南:大数据数据建模的常见问题 我最近在How-tos专家系列介绍了如何在大数据系统上数据建模。在演讲过程中,许多与会者提出了一些非常有趣的问题。众所周知,大数据系统围绕结构需求的形式化程度较低,但是对于数据仓库继续为传统用例提供服务而言,建模仍然是非常重要的功能。我想分享一下我在本届会议期间以及访问组织时收到的一些较常见的问题,并对此做出回应。 1. 在大数据环境中,是否可以使用任何建模技术来提高查询性能? 为了提高查询性能,这取决于您使用的工具。以下准则可以帮助您: 确保为最终用户的查询选择最佳存储。例如,如果您正在运行许多简短查询,则应考虑使用HBase。对于长时间运行的分析查询,您可能会发现Kudu更好。理想情况下,检查要运行的查询,并为这些用例确定适当的文件格式。 为工作负载使用正确的查询引擎。例如,对于传统上在企业数据仓库出现的长时间运行的查询、供应仪表板或标准报表的场景而言,Hive on LLAP很棒。另一方面,Impala非常适合临时查询100TB以上的数据。在配置查询引擎时,还应确保已设置分区,收集统计信息,确保对连接进行了适当的设计,查看查询性能报告并进行了相应的优化。 确保您为每种用例选择的用于检索数据的工具。例如Phoenix或带有API的HBase之类的工具来运行查询,然后使用Impala或Hive on LLAP来查询数据。 2.

【大咖分享】云上机器学习建模之旅,与智能钛TI-ONE的浪漫邂逅

百般思念 提交于 2020-01-15 06:48:50
原文链接: https://cloud.tencent.com/developer/article/1568874 点击观看大咖分享 据《中国ICT人才生态白皮书》研究分析,2018年底,我国人工智能人才缺口已突破100万,到2020年,这一数字将攀升到226万。但全球367所具有人工智能研究方向的高校每年在该领域毕业的学生仅约2万人,远远不能满足市场需求。 人才缺口大,腾讯云发布超新星AI人才培养计划,深耕高校教育生态。作为该计划中唯一的机器学习平台,腾讯云智能钛TI-ONE走进高校课堂,受到了老师和同学们的喜爱。 无论您是AI出入门者,还是AI专家,在 智能钛机器学习平台TI-ONE 上,都能找到适合您的建模方式。 本次 腾讯云大学大咖分享 课程邀请 余祖坤 腾讯云高级产品经理 分享关于“腾讯云机器学习平台TI-ONE”课程的内容。开启云上机器学习建模之旅,与智能钛TI-ONE来一场浪漫的邂逅吧! 本次分享主要包括三个部分: TI-ONE产品架构;TI-ONE产品特性;使用TI-ONE搭建模型。 1.TI-ONE产品架构 1.1机器学习概述 机器学习通过学习输入的数据来构建模型,以对未来的新输入信息做出预测或识别。 机器学习就好比烧饭,将大米(数据)放入电饭煲(机器学习),选择不同的烹煮模式(不同的算法),最后得到米饭或者粥(不同的模型)。 目前,机器学习已经拥有广泛的应用场景

第三篇:更新异常与规范化设计

坚强是说给别人听的谎言 提交于 2020-01-10 18:16:38
前言 在前两篇中,主要讲了ER建模和关系建模。在具体分析如何用数据库管理软件RDBMS(Relational Database Management System)实现这些关系前,我想有必要思考下面这个问题: 为什么要这么麻烦?为什么又是ER建模又是关系建模的? 本篇的出发点就是回答这个问题。然而某种程度上,也是回答另一个本质性的问题: 为什么要有数据库 ? 更新异常 数据库的四大操作:增,删,改,查中,除了查,其他三个都可归为更新操作。而总的来说,ER建模和关系建模的目的,就是为了避免因大量冗余数据导致的数据库更新异常。 接下来本文将使用一张旅游公司的数据表,来具体分析没有ER建模和关系建模将导致的问题。 该数据表将由以下这些列组成: 下面是该表内的一部分数据: (字看不清的话请将图片下载到本地观看) 看到这张表的第一眼,就能发现有很多冗余数据存在,比如红框中的部分: 为什么信息冗余会导致更新异常呢?下面将对三种更新操作:插入,删除,修改可能出现的异常分别进行分析。 1. 插入异常(insertion anomaly) 这种异常是指当用户想要插入某一真实世界的实体数据时,还必须输入另一个真实世界中实体的数据。 举例来说,公司业务发展,新建了一个“家庭主妇团”的模式。但我要想往表里录入一个新的模式,还必须绑定地录入一个新的活动。 2. 删除异常(deletion anomaly)

数据驱动的地理学 Data-driven Geography

陌路散爱 提交于 2020-01-07 06:57:28
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 数据驱动的地理学 Data-driven Geography 引用:Miller H J, Goodchild M F. Data-driven geography[J].GeoJournal, 2015, 80(4): 449-461. 这篇文章的两个作者可是鼎鼎大名,搞地理学的应该不陌生,Miller是俄亥俄州立大学教授,在地理信息科学尤其是交通地理信息方面很有名,Goodchild基本上可以算目前地理信息科学领域第一人了吧,加州大学圣塔巴巴巴拉分校(这可是涛哥心中的圣地啊^-^ )的教授,美国科学院院士,地理信息科学这概念就是他老人家首先提出来的。 文章的题目很吸引人,“大数据”是近几年非常火的概念,数据时代已经来临,大数据开始影响社会各行各业,那么在地理学的研究领域会引发什么样的变化呢,数据如何驱动地理学的研究呢。文章从大数据的概念开始,重点分析了用数据驱动地理学研究所面对的主要挑战是什么;在数据驱动的地理学研究中的理论扮演什么样的角色;以及大数据技术如何融入到地理学的研究中。 1、什么是大数据。 大数据的“大”不仅是指数量多,它体现在三个维度上,“3V”, volume:采集和存储的数据数量;velocity:数据获取的速度;variety:获取数据的类型。 2、大数据与数据驱动的地理学。

数据挖掘试题(150道)

a 夏天 提交于 2020-01-01 00:29:43
单选题 某超市研究销售纪录数据后发现,买啤酒的人很大概率也会购买尿布,这种属于数据挖掘的哪类问题?(A) A. 关联规则发现 B. 聚类 C. 分类 D. 自然语言处理 以下两种描述分别对应哪两种对分类算法的评价标准? (A) (a)警察抓小偷,描述警察抓的人中有多少个是小偷的标准。 (b)描述有多少比例的小偷给警察抓了的标准。 A. Precision, Recall B. Recall, Precision A. Precision, ROC D. Recall, ROC 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?© A. 频繁模式挖掘 B. 分类和预测 C. 数据预处理 D. 数据流挖掘 当不知道数据所带标签时,可以使用哪种技术促使带同类标签的数据与带其他标签的数据相分离?(B) A. 分类 B. 聚类 C. 关联分析 D. 隐马尔可夫链 什么是KDD? (A) A. 数据挖掘与知识发现 B. 领域知识发现 C. 文档知识发现 D. 动态知识发现 使用交互式的和可视化的技术,对数据进行探索属于数据挖掘的哪一类任务?(A) A. 探索性数据分析 B. 建模描述 C. 预测建模 D. 寻找模式和规则 为数据的总体分布建模;把多维空间划分成组等问题属于数据挖掘的哪一类任务?(B) A. 探索性数据分析 B. 建模描述 C. 预测建模 D. 寻找模式和规则

数据仓库建模

▼魔方 西西 提交于 2019-12-27 09:16:52
前言 数据仓库建模包含了几种数据建模技术,除了之前在数据库系列中介绍过的 ER建模 和 关系建模 ,还包括专门针对数据仓库的维度建模技术。 本文将详细介绍数据仓库维度建模技术,并重点讨论三种基于ER建模/关系建模/维度建模的数据仓库总体建模体系:规范化数据仓库,维度建模数据仓库,以及独立数据集市。 回到顶部 维度建模的基本概念 维度建模(dimensional modeling)是专门用于分析型数据库、数据仓库、数据集市建模的方法。 它本身属于一种关系建模方法,但和之前在操作型数据库中介绍的关系建模方法相比增加了两个概念: 1. 维度表(dimension) 表示对分析主题所属类型的描述。比如"昨天早上张三在京东花费200元购买了一个皮包"。那么以购买为主题进行分析,可从这段信息中提取三个维度:时间维度(昨天早上),地点维度(京东), 商品维度(皮包)。通常来说维度表信息比较固定,且数据量小。 2. 事实表(fact table) 表示对分析主题的度量。比如上面那个例子中,200元就是事实信息。事实表包含了与各维度表相关联的外码,并通过JOIN方式与维度表关联。事实表的度量通常是数值类型,且记录数会不断增加,表规模迅速增长。 注:在数据仓库中不需要严格遵守规范化设计原则(具体原因请看 上篇 )。本文示例中的主码,外码均只表示一种对应关系,此处特别说明 。 回到顶部

第三篇:数据仓库系统的实现与使用(含OLAP重点讲解)

有些话、适合烂在心里 提交于 2019-12-25 00:09:34
第三篇:数据仓库系统的实现与使用(含OLAP重点讲解) 转载自:https://www.cnblogs.com/muchen/p/5318808.html 前言 上一篇 重点讲解了数据仓库建模,它是数据仓库开发中最核心的部分。然而完整的数据仓库系统还会涉及其他一些组件的开发,其中最主要的是ETL工程,在线分析处理工具(OLAP)和商务智能(BI)应用等。 本文将对这些方面做一个总体性的介绍(尤其是OLAP),旨在让读者对数据仓库的认识提升到一个全局性的高度。 回到顶部 创建数据仓库 数据仓库的创建方法和数据库类似,也是通过编写DDL语句来实现。在 过去,数据仓库系统大都建立在RDBMS上,因为维度建模其实也可以看做是关系建模的一种。但如今随着开源分布式数据仓库工具如Hadoop Hive,Spark SQL的兴起,开发人员往往将建模和实现分离。使用专门的建模软件进行ER建模、关系建模、维度建模,而具体实现则在Hive/Spark SQL下进行。没办法,谁让这些开源工具没有提供自带的可视化建模插件呢:-(。 话说现在的开源分布式工具都是"散兵作战",完成一个大的项目要组合N个工具,没有一个统一的开发平台。还有就是可视化效果比较差,界面很难看或者没有界面。个人建议在资金足够的情况下尽量使用商用大数据平台来开发,虽然这些商用产品广告打得多少有点夸张,但是它们的易用性做的是真好

数据仓库复习

北城余情 提交于 2019-12-24 18:52:58
1、数据仓库建设 一般在OLAP中使用维度建模,在OLTP中使用3NF建模 数据仓库的建设主要分为以下四个步骤 :业务建模 -> 领域建模 -> 逻辑建模 -> 物理建模 (要理解其大概步骤) 互联网数仓与传统数仓还是有所区别的,主要在操作的是人员、数据的加工ETL、以及对业务的支持模式(数据立方体或数据中台) 维度建模 缺点:一般在ODS层不用维度建模,因为无法百分百保证一致性,并且假如在ODS层时出错了,恢复数据的成本很大, 维度建模需要对数据较多的预处理,投入的存储空间和人力资源较大 优点:比较适合做分析 范式建模 缺点:范式建模不太适合做复杂的分析 优点:处理起来简单 要知道数据中台与数据库的区别 2、Sql应用题 (1)统计连续登录超过三天的用户 Mysql (2)row_number实现 (3)limit 分页时跨度过大如何解决(子查询) Hive (4)row_number (5)开窗函数 (6)行转列、列转行的方法 (7)缓慢变化维 3、优化方面 一、数仓整体优化可以从以下4个方面优化 (1)模型优化 选定合适的建模方法 适当拆表、合表、创建中间表 合理对待缓慢变化维 合理使用分区表、二级分区表等 (2)调度优化 尽量少依赖、减少长依赖 关键任务定时时间提前 生产任务与测试任务尽量库与库之间隔离 (3)同步优化 注意数据同步任务的资源性能 计算资源优化、减少数据倾斜

数据建模理论小结:Inmon和Kimball

ε祈祈猫儿з 提交于 2019-12-24 03:19:18
看了这么多数仓模型的对比文章,我想把我总结的一些东西记录下来。 说到数仓建模,那么肯定离不开两种方式:范式建模(Inmon)和维度建模(kim ball)。这两种方式各有适用的地方,需要根据具体应用场景进行选择。当然还有一种独立数据集市的方法,不过这种方法容易造成很多数据烟囱以及数据孤岛(没有一致性维度和一致性事实的支持,是无法支持支持多主题区域,并且使得各个数据集市成为信息孤岛,缺乏兼容性。),无法广泛性的运用,这里就不讨论了。 Inmon Inmon建模的方式是自下而上的,那么什么是自下而上呢?我的理解是先打好广而全的数据基础,考虑当下业务场景中的所有可能,基于范式建模的理念去设计数据仓库,然后基于各种业务场景去开发数据集市以及BI应用。 Kimball 而kimball的方式是自上而下的,这种方式就不用考虑很大的框架,针对某一个数据域或者业务进行维度建模,得到最细粒度的事实表和维度表,形成适用于某一个数据域、业务的数据集市之后,再集成各个数据集市为数据仓库。这其中的要点就是保持各集市之间的一致性维度和一致性事实,不然在集成为数据仓库的时候很麻烦,会无法确认各个集市之间的数据具有关联性、通用性。kimball的这种范式就是开发速度比较快,相对比较省事,但是后续维护会比较麻烦。 在这里引用一张图,相信大家就能比较清楚的了解kimball和Inmon的区别了。 图片来自 来源网址

用 Kaldi 进行语音建模1

自古美人都是妖i 提交于 2019-12-23 17:54:38
kaldi 简介: kaldi 是到目前为止,一款非常优秀的语音识别 开源 建模软件。顺带一下八卦,其作者,Dan Povey 也是来到了中国发展。 kaldi 是一个建模工具,而建出来什么样的模型,完全依赖于个人。kaldi 的底层是基于 C,用户可以通过钓调用各种样例脚本进行建模。因为是开源的,所以高级玩法是可以自己修改代码编译。初级玩法是调用现有脚本进行编译。这里说的,只是初级玩法。 这里参考github上的 https://github.com/kaldi-asr/kaldi ,来说明。 kaldi 建模流程概述: 1.了解脚本位置 kaldi 里面建模一般是在 egs 目录下新建自己的项目,而后在里面新建 s5,而后将其相关脚本从其他项目的 s5 中拷贝到此目录下,进行修改,如从 cp -r kaldi/egs/wsj/s5 egs/test/ 拷贝之后,删除部分不相关数据,如 data, exp,mfcc 中的数据,只保留空文件夹。kaldi/egs/wsj/s5里面比较干净,所以只要新建这三个文件夹即可。其中data里面是待建模数据,exp里面是建模后的模型,mfcc是中间提取的特征。conf里面是配置参数。 2.音频数据准备 在data目录下面,一般是新建 train 和 test 两个文件夹,里面放的分别是建模训练数据和测试数据。其实