
数据仓库
阿泽财商会
作品主页https://mbd.pub/o/m/azcsh,高级人工智能算法训练工程师,人工智能应用工程师,高级工程师,高级信息系统项目管理师,软件设计师,CSM敏捷教练,csdn20周年直播嘉宾,高级健康管理师,会计师。
清华大学出版社《MongoDB游记》数据库教程书作者。专注于人工智能,数据挖掘技术与大数据,云计算与存储等技术的学习与研究。擅长人工智能算法训练,系统响应式开发、数据采集数据清洗和数据分析,分布式云存储运算等技术。熟悉后台系统、云存储计算平台的搭建,擅长解决架构过程中遇到的疑难问题。常用开发语言:java、python、c#、perl、sql。
展开
-
数据仓库(十三)--java--presto---SpringMVC使用presto查询hive
我们在之前的文章中已经学习过了presto的安装部署和连接hive使用。 并且在cli命令界面中进行了操作。数据仓库(十)—分布式SQL查询引擎—presto安装部署和连接hive使用不过我们最终的应用场景肯定是在可视化web中进行查询分析,所以有必要在web的框架中使用presto对hive进行查询。因为我们一直用的比较多的都是SpringMVC框架,所以在这个基础上进行配置使用。...原创 2018-03-06 16:32:21 · 6275 阅读 · 2 评论 -
用户行为服务系统架构调研----电信用户行为分析系统架构
2基于云计算的系统总体设计方案 2.1系统总体技术架构 本文设计的移动互联网用户行为分析引擎通过云计算技术实现分布式并发的大规模计算能力,构建移动互联网端到端的大数据挖掘分析系统,实现对DPI和应用平台用户上网行为的偏好分析,提供个性化推荐服务,打通从数据采集、分析到服务提供、营销执行的全过程。 系统通过FTP服务器获取数据,在接口层采用分布式计算与批量处理相结合的方式,将大数据...转载 2018-02-22 17:43:30 · 7071 阅读 · 0 评论 -
用户行为服务系统架构调研----携程实时用户行为服务系统架构实践
携程实时用户行为服务作为基础服务,目前普遍应用在多个场景中,比如猜你喜欢(携程的推荐系统)、动态广告、用户画像、浏览历史等等。 以猜你喜欢为例,猜你喜欢为应用内用户提供潜在选项,提高成交效率。旅行是一项综合性的需求,用户往往需要不止一个产品。作为一站式的旅游服务平台,跨业务线的推荐,特别是实时推荐,能实际满足用户的需求,因此在上游提供打通各业务线之间的用户行为数据有很大的必要性。 携程原有的实...转载 2018-02-22 11:33:06 · 1532 阅读 · 0 评论 -
数据仓库(十)---分布式SQL查询引擎---presto安装部署和连接hive使用
我们在上一章已经了解了presto的简介,本章进行部署和使用。官网教程https://prestodb.io/docs/current/installation.html http://prestodb-china.com/docs/current/installation/deployment.html (京东版本) https://teradata.github.io/presto...原创 2018-02-28 18:08:32 · 4312 阅读 · 0 评论 -
数据仓库(十四)--java--presto---hive的分页查询
我们在SpringMVC框架中使用那个presto查询hive的数据做展示时,发现在table里分页是个不可避免的话题。建议去掉count但是尴尬的是 对于海量数据 count的效率是很低的,因为在不加条件的情况下基本上要扫描全表。count操作性能比较收集 oracle里Count一亿条数据 大于10分钟 mysql,3000万行记录,count(*)需要200s hive+p...原创 2018-03-08 14:16:41 · 9425 阅读 · 1 评论 -
数据仓库(十一)---hive使用小技巧积累(持续更新)
我们在本章节会持续更新关于hive使用过程中的一些实用的小技巧HIVE 查询显示列名 及 行转列显示hive shell;set hive.cli.print.header=true; // 打印列名 set hive.cli.print.row.to.vertical=true; // 开启行转列功能, 前提必须开启打印列名功能 set hive.cli.print.row.t...原创 2018-02-28 16:26:13 · 967 阅读 · 0 评论 -
数据仓库(九)---hive的性能优化---hive索引机制和原理
我们在上一章学习了hive的动态分区,本章来学习另外一种优化的手段 索引。 数据仓库(八)—hive的性能优化—hive动态分区hive索引介绍Hive的索引目的是提高Hive表指定列的查询速度。 没有索引时,类似’WHERE tab1.col1 = 10’ 的查询,Hive会加载整张表或分区,然后处理所有的rows, 但是如果在字段col1上面存在索引时,那么只会加载和处理文件的一...原创 2018-02-27 17:22:47 · 10073 阅读 · 1 评论 -
数据仓库(八)---hive的性能优化---hive动态分区
我们在上一篇文章中已经学习了如何进行分区,手动分区。 数据仓库(七)—hive的性能优化—hive的分区和分桶 但是分区之后 再插入数据时,并不会自动的进行分区,而是需要再次手动分区。 关系型数据库(如Oracle)中,对分区表Insert数据时候,数据库自动会根据分区字段的值,将数据插入到相应的分区中,Hive中也提供了类似的机制,即动态分区(Dynamic Partition),只不过,...原创 2018-02-27 11:13:56 · 5046 阅读 · 0 评论 -
数据仓库(七)---hive的性能优化---hive的分区和分桶
我们本章进行hive的优化学习分区和分桶。hive分区背景1、在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。 2、分区表指的是在创建表时指定的partition的分区空间。 3、如果需要创建有分区的表,需要在create表的时候调用可选参数partitioned by,...原创 2018-02-27 10:03:27 · 5100 阅读 · 0 评论 -
kettle案例九-----linux使用kettle
我们之前学习的kettle操作都是在windows中进行可视化的操作,但是在使用过程中发现一些问题。 比如我们的数据文件是放在linux服务器中的,如果要清洗则需要把它们下载到本地,这样需要耗费一些时间,尤其是数据文件比较大时。 解决方案就是 我们直接在linux服务器中运行kettle进行抽取。Kettle可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定,不...原创 2018-01-19 21:13:06 · 59391 阅读 · 28 评论 -
调研----小米架构师:亿级大数据实时分析与工具选型
讲师介绍 欧阳辰,超过15年的软件开发和设计经验,目前就职于小米公司,负责小米广告平台的架构研发。曾为微软公司工作10年,担任高级软件开发主管,领导团队参与微软搜索索引和搜索广告平台的研发工作。曾在甲骨文公司从事数据库和应用服务器的研发工作。热爱架构设计和高可用性系统,特别对于大规模互联网软件的开发,具有丰富的理论知识和实践经验。大家好,很高兴能跟大家分享一些关于实时数据分析的话题。...转载 2018-02-22 19:03:00 · 5567 阅读 · 1 评论 -
数据仓库(十三)--java--presto---SpringMVC使用presto查询hive
我们对8400万条hive数据使用presto进行查询,数据量大约11G,不是很大。尽量不适用or语句前端web界面上只有一个输入框,通过这个输入框同时查询三个字段是否有相等的数据使用查询语句主要涉及三个字段为:select chromosome,position,rs from chip where 1=1 and (chromosome='156531656' or pos...原创 2018-03-09 15:45:35 · 1815 阅读 · 0 评论 -
数据仓库(六)---分布式SQL查询引擎---presto介绍
我们在之前的文章中已经学习了数据仓库hive,如果要对数据仓库进行交互查询,则需要交互查询的引擎用于提高查询效率。本章介绍presto。简介Presto是一个开源的分布式SQL查询引擎,适用于实时交互式分析查询,支持海量的数据;主要是为了解决商业数据仓库的交互分析,和处理速度低下的问题。它支持标准的ANSI SQL,包括复杂查询、聚合(aggregation)、连接(join)和窗口函数(...原创 2018-02-23 17:38:55 · 6460 阅读 · 1 评论 -
hadoop进阶---hadoop性能优化(一)---hdfs空间不足的管理优化
Hadoop 空间不足,hive首先就会没法跑了,进度始终是0%。将HDFS备份数降低将默认的备份数3设置为2。 步骤:CDH–>HDFS–>配置–>搜索dfs.replication–>设置为2 删除无用HDFS数据和Hbase表格主要使用命令hadoop fs -du,hadoop fs -ls,hadoop fs -rm 空间不足根本的解决...原创 2018-03-03 12:35:17 · 9522 阅读 · 2 评论 -
hadoop案例(一)--hive--2T数据动态创建分区
我们在使用hadoop集群过程中,发现网上很少有具体的数据使用分析案例,也就是说 我们不知道多少个节点处理多少大小的数据量耗费多少时间是合理的哪些是需要优化的。为了增加这方面的相关经验,我们会记录一下实际的使用案例。以供大家参考。配置如图: 耗费时间如图: 执行语句set hive.exec.dynamic.partition=true;set hive.exe...原创 2018-03-03 11:35:30 · 928 阅读 · 0 评论 -
遇到问题--hive--presto--directory does not match the declared bucket count
遇到的情况directory (1) does not match the declared bucket countpresto:default> select * from table_p where id='123' limit 1;Query 20180302_022639_00002_xpfqj, FAILED, 1 nodeSplits: 17 total,...原创 2018-03-03 11:15:21 · 2373 阅读 · 0 评论 -
遇到问题---hadoop----local-dirs are bad
遇到的问题我们的hadoop集群在运作过程中部分节点报错local-dirs are bad原因hadoop集群硬盘目录默认的使用阈值是90% 空间不足,目录使用率超过阈值了90%了解决方式调整yarn的参数 yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage ...原创 2018-03-03 10:54:48 · 4301 阅读 · 0 评论 -
遇到问题---hadoop---reduce执行时又重新map
遇到的情况我们在运行一个2T的hive数据进行动态分区,发现运行了很长时间的mapreduce在reduce运行过程中又重新启动了一次map。如图 原因分析到的原因可能有两个 一是有异常报错,reduce入库时一直失败,很多个fail或者kill,hadoop启用推测执行机制。hadoop针对慢或者老是失败的任务额外启动一个备份任务,一起处理同一份数据,哪个先执行完,则采用...原创 2018-03-03 10:42:49 · 1318 阅读 · 0 评论 -
遇到的情况--hive---动态创建分区报错dynamic.partitions.pernode. Maximum was set to: 100
遇到的情况我们在hive shell中使用insert overwrite table table_ppartition(time)select id,time from table_info;进行动态分区写入数据,然后在reduce的时候报错 hive.exec.max.dynamic.partitions.pernode. Maximum was set to: 10...原创 2018-03-03 10:05:25 · 5766 阅读 · 0 评论 -
遇到的情况---hadoop集群-- NodeManager启动不起来--java.io.FileNotFoundException
情况hadoop集群nodemanager启动不起来,查看输出的日志报错 java.io.FileNotFoundException: /hadoop/dfs1/log/hadoop-yarn/hadoop-cmf-yarn-NODEMANAGER-host251.log.out (Read-only file system)管理后台点击查看 NodeManager的日志文件,角色日志文...原创 2018-03-02 18:53:21 · 2363 阅读 · 1 评论 -
遇到问题---hive---数据仓库---Container ... is running beyond physical memory limits
情况我们跑一个hive的动态分区insert overwrite时最后报错如下: Container [pid=39398,containerID=container_1511338430452_0073_01_009567] is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical me...原创 2018-03-02 18:15:31 · 3870 阅读 · 0 评论 -
数据仓库(十二)---分布式SQL查询引擎---teradata版本的presto安装和使用
我们在使用presto过程中,发现facebook原版和京东原版都是 解压可用,teradata版本的安装要麻烦一些。下面对teradata版本的安装过程进行记录。首要条件1、需要python2.6或者python2.7环境 之所以需要python环境是因为teradata版本的presto把安装封装成了集群式安装。根据配置在安装过程会自动进行分发配置。 2、最好使用root用户,...原创 2018-03-02 17:32:21 · 1946 阅读 · 0 评论 -
hadoop组件---数据仓库(四)---hive常用命令
安装好hive的环境之后 我们可以尝试一些常用的命令,常用命令也可以作为平时工作中的速查手册。进入hive控制台首先需要知道hive的启动目录在哪,可以使用命令 whereis hive 启动hive shell在hive安装bin目录下使用命令 hive shell 注:如果hive环境已经加入环境变量,那么whereis时会显示/usr/bin/hive,这种情...原创 2018-01-10 20:36:58 · 5451 阅读 · 0 评论 -
hadoop组件---数据仓库(二)---hive的数据模型和数据类型
我们在上一章中已经大概了解了Hive有四种数据模型,本章就来详细了解它们的使用。 Hadoop组件—数据仓库(一)—Hive简介数据模型Hive 没有专门的数据存储格式,也没有为数据建立索引,用户可以非常自由的组织 Hive 中的表,只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据。Hive 中所有的数据都存储在 HDFS 中,Hive 中包含以下...原创 2018-01-09 19:21:17 · 3045 阅读 · 0 评论 -
hadoop组件---数据仓库---hive简介
Hive简介Hive最初是应Facebook每天产生的海量新兴社会网络数据进行管理和机器学习的需求而产生和发展的,是建立在 Hadoop上的一个分布式、按列存储的数据仓库基础构架。Hive管理HDFS中存储的数据,并提供基于SQL的查询语言(由运行时引擎翻译成MapReduce作业)用以查询数据。Hive 是一个基于 Hadoop 文件系统之上的数据仓库架构。它为数据仓库的管理提供了许...原创 2018-01-09 18:18:05 · 5000 阅读 · 0 评论 -
kettle案例四使用java脚本进行数据处理
如需转载请标明出处:直到世界的尽头-张小凡-http://my.525.life本章我们学习使用java脚本进行数据处理。数据情况以嵌套Json结构为例进行解析,Json如下: { “id”: “0001”, “name”: “Joe”, “age”: 88, “children”: [ { “...原创 2017-12-07 20:17:33 · 49028 阅读 · 0 评论 -
mysql存储树形结构的数据
分析树形数据JSON格式的树形结构数据需要保存到mysql中。树形图如下: 分析成文本如图: 存到表中的结构为: 需求一般树形结构的数据使用需求有两点:显示整棵树的数据select * from treeNodes给出某个点,显示到达该点所经过的路径a=select * from treeNodes where id='7'b=select ...原创 2017-12-03 23:46:58 · 33712 阅读 · 0 评论 -
kettle案例二抽取mysql数据保存到mongodb
我们在案例一中完成了 kettle案例一抽取gz格式文本内容保存到mongodb本次尝试从mysql中抽取数据。详细步骤如下: 启动并建立流程 经过案例一的学习,基本使用kettle转换的流程我们已经清楚了,区别只是在于使用的组件不同而已。 我们第一步还是需要先店家Spoon.bat启动kettle。 建立转换流程如下: 表输入—> MongoDB OutPut ...原创 2017-11-30 16:45:48 · 5999 阅读 · 0 评论 -
ETL工具Kettle简介和安装配置基本使用
什么是KettleKettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是...原创 2017-11-15 18:35:58 · 55751 阅读 · 0 评论 -
kettle案例一抽取gz格式文本内容保存到mongodb
版本和启动我们这里使用的7.1版本,官网下载的安装包为pdi-ce-7.1.0.0-12.zip。安装目录下非常多的执行程序,但没有明显的启动图标。 Kettle常用三大家族:Spoon、Pan、Kitchen。 Spoon:通过图形界面方式设计、运行、调试Job与Transformation。 Pan: 通过脚本命令方式来运行Transformation。 Kitch...原创 2017-11-28 20:00:46 · 3599 阅读 · 0 评论 -
数据仓库方案选型
总体框架通常采用三层体系结构:前端工具(顶层)-OLAP服务器(中间层)-数据仓库服务器(底层)。底层的数据仓库服务器通常是一个关系数据库系统(各种表关联的sql统计会更方便一些,非关系型数据库目前在这方面还是有所区别)。 中间层OLAP服务器,典型实现为ROLAP模型或MOLAP模型。 顶层为前端客户端,用于数据分析和挖掘等(如趋势分析、预测)。 当然现在很多成熟的BI工具都是集成了OLAP原创 2017-11-07 10:43:20 · 26393 阅读 · 0 评论 -
唯品会海量实时OLAP分析技术升级之路
讲师介绍谢麟炯,唯品会大数据平台高级技术架构经理,主要负责大数据自助多维分析平台,离线数据开发平台及分析引擎团队的开发和管理工作,加入唯品会以来还曾负责流量基础数据的采集和数据仓库建设以及移动流量分析等数据产品的工作。 海量数据实时OLAP场景的困境大数据首先来看一下我们在最初几年遇到的问题。第一就是大数据,听起来好像蛮无聊的,但大数据到底是指什么呢?最主要的问题就是...转载 2017-11-03 15:20:28 · 3657 阅读 · 0 评论 -
阿里云大数据三次技术突围:Greenplum、Hadoop和飞天
对于企业来说,到底什么是云计算?相信很多企业都有这样的困惑,让我们一起回到这个原始的起点探讨究竟什么是云计算?云计算对于企业而言到底意味什么? 云计算的三条发展路径及三种落地形态 当回到最初的起点再审视云计算的发展路径,可以发现,经过十余年的发展演进,云计算有三条发展路径,并且最终沉淀下来了三种落地形态。 第一条路:源自于谷歌对大规模数据的处理,谷歌为全球的互联网用户提供同一个服...转载 2017-11-03 14:26:21 · 11284 阅读 · 0 评论 -
数据仓库多维数据模型设计
建设数据模型既然是整个数据仓库建设中一个非常重要的关键部分,那么,怎么建设我们的数据仓库模型就是我们需要解决的一个问题。这里我们将要详细介绍如何创建适合自己的数据模型。数据仓库建模方法大千世界,表面看五彩缤纷,实质上,万物都遵循其自有的法则。数据仓库的建模方法同样也有很多种,每一种建模方法其实代表了哲学上的一个观点,代表了一种归纳,概括世界的一种方法。目前业界较为流行的数据...原创 2017-11-09 18:14:59 · 42026 阅读 · 1 评论 -
kettle案例三抽取json数据保存到mongodb
如需转载请标明出处:直到世界的尽头-张小凡-http://my.525.life普通json结构抽取有简单的json结构如下: { “id”: “0001”, “name”: “Joe”, “age”: 88 } 保存在test.json文件中。 我们使用kettle来尝试json输入进行解析保存到mongodb。 构造转换流程如下: Json...原创 2017-12-07 20:21:06 · 8356 阅读 · 2 评论 -
kettle案例五使用js脚本进行json数据处理新增行
我们通过两个例子来学习Js处理数据新增行:例子一字符串拆分按照原始数据列”aaa bbb ccc ddd”把数据分成4行。 比如我们有原始数据行如下: id group person 1 A aaa bbb ccc ddd 我们需要获取A组中都有哪些人,则需要对数据进行拆分并生成新的行。 使用代码如下:var str = person.toString(...原创 2018-01-02 15:30:37 · 17750 阅读 · 1 评论 -
hadoop组件---数据仓库(五)---通过JDBC连接hive的thrift或者hiveserver2
我们在上一篇文章中已经学习了Hive的常用命令,但是如果使用其他的语言如何跟Hive进行交互呢。Thrift简介Hive拥有HiveServer(Thrift)或者Hiveserver2组件,提供了JDBC驱动服务,使得我们可以用Java代码或者Python来连接Hive并进行一些关系型数据库的sql语句查询等操作。HiveServer或者HiveServer2都是基于Thrift的,...原创 2018-01-11 15:01:54 · 19364 阅读 · 0 评论 -
遇到问题----kettle----写入mysql中文乱码
新建流程如下: CSV文件输入如下: 使用utf-8编码 CSV文件也已经在记事本中另存为UTF-8的文本。表输出如下: mysql中创建语句如下:CREATE TABLE `nors2` ( `id` int(11) NOT NULL AUTO_INCREMENT, `barcode` varchar(64) DEFAULT NULL, `prod...原创 2018-01-25 18:43:16 · 10054 阅读 · 7 评论 -
kettle案例八连接hive--抽取hive的数据保存excel
我们在上篇文章已经学习了如何把数据放入hive中。kettle案例七连接hive–抽取mongodb的数据保存到hive本章学习如何把数据从hive中导出来。官网参考连接 https://wiki.pentaho.com/display/BAD/Extracting+Data+from+Hive+to+Load+an+RDBMS在hive中启动hiveserver2我们在之前...原创 2018-01-17 19:12:24 · 8256 阅读 · 0 评论 -
kettle案例七连接hive--抽取mongodb的数据保存到hive
hive作为数据仓库的载体,一般情况下我们会经常把数据保存到hive中。本章通过抽取mongodb的数据保存到hive的案例来学习连接hive。kettle把数据导入hive有两种思路 一种是通过hiveserver2使用JDBC的连接方式,这种是一条一条的进行写入,可能速度上要慢一些。 一种是使用Hadoop File Input方式把文件放入hdfs,然后使用hive命令来加载。适...原创 2018-01-16 18:06:32 · 12390 阅读 · 1 评论