![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据仓库与联机分析处理
文章平均质量分 88
mishidemudong
菜鸟上路,一颗红心,两手准备。
展开
-
一步步分析为什么B+树适合作为索引的结构
前言本文是在讲述什么样的数据结构适合作为索引,以及其适合作为索引的原因。而阅读本文需要对B树和B+树结构有稍微的理解。以及需要对磁盘操作知识有稍微的了解。对于磁盘操作的相关知识,在文章尾部的链接文章中,有详细的介绍。在MySQL中,主要有四种类型的索引,分别为:B-Tree索引,Hash索引,Fulltext索引和R-Tree索引,本文讲的是B-Tree索引。什么是索引索引(Ind...转载 2018-09-19 11:27:15 · 167 阅读 · 0 评论 -
hive:(group by, having;order by)的使用;group by+多个字段,以及wiki说的group by两种使用限制验证
hive> select * from app_data_stats_historical where os='1' group by dt limit 100;出现结果如下:2014-01-012014-01-06......2014-02-072014-02-102014-02-142014-02-172014-02-24(只返回了一列日期。说明* 不起作用。不过这样,可以转载 2017-07-19 16:57:12 · 1496 阅读 · 0 评论 -
hive使用技巧(三)——巧用group by实现去重统计
相关文章推荐:hive使用技巧(一)自动化动态分配表分区及修改hive表字段名称hive使用技巧(二)——共享中间结果集hive使用技巧(三)——巧用group by实现去重统计hive使用技巧(四)——巧用MapJoin解决数据倾斜问题Hive使用技巧(五)—— 一行转多行,多行转一行网站统计中常用的指标,pv ,uv ,转载 2017-07-19 11:22:43 · 2847 阅读 · 0 评论 -
怎样将结构完全一样的两个表的内容合并到一个表中,SQL语句
select * into 新表名 from (select * from T1 union all select * from T2) 这个语句可以实现将合并的数据追加到一个新表中。 不合并重复数据 select * from T1 union all select * from T2 合并重复数据 select * from T1 union selec转载 2017-06-15 14:43:38 · 22353 阅读 · 0 评论 -
Hive修改表名
Hive修改表Alter Table 语句它是在Hive中用来修改的表。语法声明接受任意属性,我们希望在一个表中修改以下语法。ALTER TABLE name RENAME TO new_nameALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])ALTER TABLE name DROP [COLUMN] colu转载 2017-06-14 16:10:41 · 75043 阅读 · 1 评论 -
HBase 常用Shell命令
两个月前使用过hbase,现在最基本的命令都淡忘了,留一个备查~进入hbase shell console$HBASE_HOME/bin/hbase shell如果有kerberos认证,需要事先使用相应的keytab进行一下认证(使用kinit命令),认证成功之后再使用hbase shell进入可以使用whoami命令可查看当前用户hb转载 2017-07-04 11:54:05 · 107 阅读 · 0 评论 -
提取数字、英文、中文、过滤重复字符等SQL函数(含判断字段是否有中文)
在日常应用中,往往根据实际需求录入一些值,而这些值不能直接使用,所以Sql中经常会对字段值进行一些常规的处理。这里搜集了(提取数字、英文、中文、过滤重复字符、分割字符的方法),方便日后查询使用。 一、判断字段值是否有中文--SQL 判断字段值是否有中文create function fun_getCN(@str nvarchar(4000)) returns转载 2017-07-11 14:42:41 · 458 阅读 · 0 评论 -
Hive 导入CSV文件
SerDe 介绍Hive 使用如下FileFormat 类读写 HDFS files:TextInputFormat/HiveIgnoreKeyTextOutputFormat: 读写普通HDFS文本文件.SequenceFileInputFormat/SequenceFileOutputFormat: 读写SequenceFile格式的HDFS文件.Hive 使用如下SerD转载 2017-05-18 15:44:48 · 1111 阅读 · 0 评论 -
phoenix支持的QL语法
支持的命令如下:SELECTExample:SELECT * FROM TEST LIMIT 1000;SELECT * FROM TEST LIMIT 1000 OFFSET 100;SELECT full_name FROM SALES_PERSON WHERE ranking >= 5.0 UNION ALL SELECT reviewer_name FROM CUSTO转载 2017-05-18 11:31:56 · 3682 阅读 · 0 评论 -
HBASE+PHOENIX性能优化注解
Hbase环境配置优化:几个配置参数:hbase.hregion.max.filesize:1)当hbase.hregion.max.filesize比较小时,触发split的机率更大,而split的时候会将regionoffline,因此在split结束的时间前,访问该region的请求将被block住,客户端自我block的时间默认为1s。当大量的region同转载 2017-08-18 15:37:41 · 4705 阅读 · 0 评论 -
SQL 操作结果集 -并集、差集、交集、结果集排序
SQL 操作结果集 -并集、差集、交集、结果集排序操作结果集 为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为东吴的人物。 表:Person_1魏国人物 表:Person_2蜀国人物 A、Union形成并集 Union可以对两个或多个结果集进行连接,形成“并集”。子结果集所有的记录组合在一起形成新的结果集。转载 2017-08-07 09:47:19 · 491 阅读 · 1 评论 -
hive索引简单使用介绍
索引是标准的数据库技术,hive 0.7版本之后支持索引。hive索引采用的不是'one size fites all'的索引实现方式,而是提供插入式接口,并且提供一个具体的索引实现作为参考。hive索引具有以下特点:1.索引key冗余存储,提供基于key的数据视图2.存储设计以优化查询&检索性能3.对于某些查询减少IO,从而提高性能。hive索引创建语句:转载 2017-09-05 08:39:29 · 692 阅读 · 0 评论 -
深入浅出数据库索引原理
前段时间,公司一个新上线的网站出现页面响应速度缓慢的问题, 一位负责这个项目的但并不是搞技术的妹子找到我,让我想办法提升网站的访问速度 ,因为已经有很多用户来投诉了。我第一反应觉的是数据库上的问题,假装思索了一下,摆着一副深沉炫酷的模样说:“是不是数据库查询上出问题了, 给表加上索引吧”,然后妹子来了一句:“现在我们网站访问量太大,加索引有可能导致写入数据时性能下降,影响用户使用的”。当时我就楞了...转载 2018-09-19 10:23:58 · 201 阅读 · 0 评论 -
Ubuntu16.04安装Redis
前言Redis是常用基于内存的Key-Value数据库,比Memcache更先进,支持多种数据结构,高效,快速。用Redis可以很轻松解决高并发的数据访问问题;作为实时监控信号处理也非常不错。环境Ubuntu 16.04安装Redis服务器端~ sudo apt-get install redis-server安装完成后,Redis服务器会自动启动,我们检查Redis服务...转载 2018-08-23 16:41:21 · 134 阅读 · 0 评论 -
官方教程:Apache Kylin和Superset集成,使用开源组件,完美打造OLAP系统
本文转自Apache Kylin公众号apachekylin.Superset 是一个数据探索和可视化平台,设计用来提供直观的,可视化的,交互式的分析体验。Superset 提供了两种分析数据源的方式:1. 用户可以以单表形式直接查询多种数据源,包括 Presto、Hive、Impala、SparkSQL、MySQL、Postgres、Oracle、Redshift、SQL Serve...转载 2018-07-25 16:15:00 · 1446 阅读 · 0 评论 -
MySQL中REGEXP正则表达式使用大全
以前我要查找数据都是使用like后来发现mysql中也有正则表达式了并且感觉性能要好于like,下面我来给大家分享一下mysql REGEXP正则表达式使用详解,希望此方法对大家有帮助。MySQL采用Henry Spencer的正则表达式实施,其目标是符合POSIX 1003.2。请参见附录C:感谢。MySQL采用了扩展的版本,以支持在SQL语句中与REGEXP操作符一起使用的模式匹配操作。请参见...转载 2018-06-14 16:07:43 · 1740 阅读 · 0 评论 -
Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例
如何用一条sql语句实现批量更新?mysql并没有提供直接的方法来实现批量更新,但是可以用点小技巧来实现。复制代码 代码如下: UPDATE mytable SET myfield = CASE id WHEN 1 THEN 'value' WHEN 2 THEN 'value' WHEN 3 THEN 'value'END WHER转载 2017-12-08 13:58:12 · 4133 阅读 · 0 评论 -
OLAP引擎——Kylin介绍
Kylin是ebay开发的一套OLAP系统,与Mondrian不同的是,它是一个MOLAP系统,主要用于支持大数据生态圈的数据分析业务,它主要是通过预计算的方式将用户设定的多维立方体缓存到HBase中(目前还仅支持hbase),这段时间对mondrian和kylin都进行了使用,发现这两个系统是时间和空间的一个权衡吧,mondrian是一个ROLAP系统,所有的查询可以通过实时的数据库查询完成,而转载 2017-11-07 10:51:09 · 415 阅读 · 0 评论 -
数据立方体----维度与OLAP
数据立方体 关于数据立方体(Data Cube),这里必须注意的是数据立方体只是多维模型的一个形象的说法。立方体其本身只有三维,但多维模型不仅限于三维模型,可以组合更多的维度,但一方面是出于更方便地解释和描述,同时也是给思维成像和想象的空间;另一方面是为了与传统关系型数据库的二维表区别开来,于是就有了数据立方体的叫法。所以本文中也是引用立方体,也就是把多维模型以三维的方式为代表进行展现和描述转载 2017-11-07 10:49:50 · 2042 阅读 · 0 评论 -
hive insert into语句 和 insert overwrite语句
1、insert into 语句Hive> insert into table userinfos2 select id,age,name from userinfos;2、insert overwrite语句hive> insert overwrite table userinfos2 select id,age,name from userinfo转载 2017-08-23 16:17:40 · 2483 阅读 · 0 评论 -
HIVE和HBASE区别
1. 两者分别是什么? Apache Hive是一个构建在Hadoop基础设施之上的数据仓库。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语言最终被转化为Map/Reduce. 虽然Hive提供了SQL查询功能,但是Hive不能够进行交互查询--因为它只能够在Haoop上批量的执行Hadoop。 Apache HBase是一种Key/转载 2017-05-18 11:14:10 · 393 阅读 · 0 评论 -
使用 Phoenix 通过 sql 语句 更新操作 hbase 数据
hbase 提供很方便的shell脚本,可以对数据表进行 CURD 操作,但是毕竟是有一定的学习成本的,基本上对于开发来讲,sql 语句都是看家本领,那么,有没有一种方法可以把 sql 语句转换成 hbase的原生API呢? 这样就可以通过普通平常的 sql 来对hbase 进行数据的管理,使用成本大大降低。Apache Phoenix 组件就完成了这种需求,官方注解为 “Phoenix - we转载 2017-05-18 10:54:19 · 1351 阅读 · 0 评论 -
txt文件导入MySQL方法
MySQL写入数据通常用insert语句,如[c-sharp] view plaincopyinsert into person values(张三,20),(李四,21),(王五,70)…; 但有时为了更快速地插入大批量数据或交换数据,需要从文本中导入数据或导出数据到文本。 一、 建立测试表,准备数据 首先建原创 2015-07-22 08:49:34 · 1281 阅读 · 0 评论 -
常用MySQL命令
1、连接Mysql格式: mysql -h主机地址 -u用户名 -p用户密码1、连接到本机上的MYSQL。首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码。如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即原创 2015-07-21 16:48:47 · 358 阅读 · 0 评论 -
利用MySQLdb模块实现对数据库的简单操作
首先是数据库操作的步骤:1.和数据库建立连接2.执行sql语句,接收返回值3.关闭数据库连接0.引入MySQLdb库import MySQLdb1.和数据库建立连接conn=MySQLdb.connect(host="localhost",user="root",passwd="sa",db="mytable")提供的connect方法用来和数据库建立连接,原创 2015-07-20 15:49:33 · 846 阅读 · 0 评论 -
Python连接数据库并进行简单操作整理
下载安装MySQLdb如果已经安装了easy_install插件,那么就好说了,你想装什么库或是包,只需使用easy_install + 库,就可以了。但是遇到了这个问题:于是考虑直接用安装包来安装MySQLdb吧。我下的是这个版本,注意版本要跟python的版本一致: MySQL-python-1.2.3.win32-py2.7.exe原创 2015-07-20 09:30:13 · 1177 阅读 · 0 评论 -
数据分析与数据仓库建模
第一部分 数据分析师现在已经成为了一个热门的职位,高薪的吸引力让很多先要从事这方面工作的人趋之若鹜,各种数据培训课程的开设,但是重点都是在怎么学习算法、怎么进行数据处理,怎么保证通过数据模型可以更好对数据进行数据分析。但是对于想要从事数据分析的人来说,要知道还有其他更重要的知识。第一、对于数据模型的正确认识一个好的数据模型可以帮助企业预测未来的数据,这个模型是不是有效的,能不能原创 2015-07-30 22:42:31 · 5363 阅读 · 0 评论 -
浅谈Hive和Hbase
对于刚接触大数据的用户来说,要想区分Hive与HBase是有一定难度的。本文将尝试从其各自的定义、特点、限制、应用场景等角度来进行分析,以作抛砖引玉之用。 Hive是什么?Apache Hive是一个构建于Hadoop(分布式系统基础架构)顶层的数据仓库,注意这里不是数据库。Hive可以看作是用户编程接口,它本身不存储和计算数据;它依赖于HDFS(Hadoop分布式文件系统)和Ma原创 2015-08-25 16:53:07 · 489 阅读 · 0 评论 -
SQL中的join操作总结(非常好)
1.1.1 摘要Join是关系型数据库系统的重要操作之一,SQL Server中包含的常用Join:内联接、外联接和交叉联接等。如果我们想在两个或以上的表获取其中从一个表中的行与另一个表中的行匹配的数据,这时我们应该考虑使用Join,因为Join具体联接表或函数进行查询的特性本文将通过具体例子介绍SQL中的各种常用Join的特性和使用场合:目录Inner joi转载 2015-08-25 16:11:33 · 3861 阅读 · 0 评论 -
数据仓库(DATA Warehouse)核心概念
数据仓库的个性概念理解自从1991 年数据仓库之父Bill Inmon 提出了数据仓库概念以来,数据仓库已从早期的探索走向实用阶段,进入了一个快速发展阶段。在此期间,全球经济急速发展,激烈的竞争、企业间频繁的兼并重组,使企业对信息的需求大大加剧,这是数据仓库发展的根本原因。当越来越多的企业开始重视数据资产的价值时,数据仓库也就成为必然的选择。 目前企业面对经济增长减转载 2015-07-05 21:36:13 · 2032 阅读 · 0 评论 -
MySQL导入CSV格式文件
MYSQL LOAD DATA INFILE命令可以把csv平面文件中的数据导入到数据库中。linux下:LOAD DATA INFILE '/home/test/dump/ip_location.csv' INTO TABLE ip_location CHARACTER SET utf8 FIELDS TERMINATED BY ',' E原创 2015-07-22 09:06:40 · 646 阅读 · 0 评论 -
Oracle B-tree、位图、全文索引三大索引性能比较及优缺点汇总
引言:大家都知道“效率”是数据库中非常重要的一个指标,如何提高效率大家可能都会想起索引,但索引又这么多种,什么场合应该使用什么索引呢?哪种索引可以提高我们的效率,哪种索引可以让我们的效率大大降低(有时还不如全表扫描性能好)下面要讲的“索引”如何成为我们的利器而不是灾难!多说一点,由于不同索引的存储结构不同,所以应用在不同组织结构的数据上,本篇文章重点就是:理解不同的技术都适合在什么地方应用!转载 2015-07-15 11:40:39 · 586 阅读 · 0 评论 -
关系型数据库与NOSQL基本概念
关系型数据库与NOSQL关系型数据库把所有的数据都通过行和列的二元表现形式表示出来。 关系型数据库的优势:1. 保持数据的一致性(事务处理)2.由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处)3. 可以进行Join等复杂查询其中能够保持数据的一致性是关系型数据库的最大优势。 关系型数据库的不足:不擅长的处理1. 大量数据的写入处理原创 2015-07-23 22:11:09 · 848 阅读 · 0 评论 -
Phoenix二级索引(Secondary Indexing)的使用
摘要HBase只提供了一个基于字典排序的主键索引,在查询中你只能通过行键查询或扫描全表来获取数据,使用Phoenix提供的二级索引,可以避免在查询数据时全表扫描,提高查过性能,提升查询效率 测试环境:数据约370万数据格式:(数据来自搜狗实验室)三节点集群(一主两从,hadoop和HBase属同一集群) 目录Cov转载 2017-05-25 14:43:48 · 562 阅读 · 0 评论 -
Phoenix 二级索引之— —Global Indexing
1. 说明在Hbase中,只有一个单一的按照字典序排序的rowKey索引,当使用rowKey来进行数据查询的时候速度较快,但是如果不使用rowKey来查询的话就会使用filter来对全表进行扫描,很大程度上降低了检索性能。而Phoenix提供了二级索引技术来应对这种使用rowKey之外的条件进行检索的场景。Phoenix支持两种类型的索引技术:Global Indexing和L转载 2017-05-25 09:57:33 · 448 阅读 · 0 评论 -
Spark-SQL之DataFrame操作大全
Spark SQL中的DataFrame类似于一张关系型数据表。在关系型数据库中对单表或进行的查询操作,在DataFrame中都可以通过调用其API接口来实现。可以参考,Scala提供的DataFrame API。 本文中的代码基于Spark-1.6.2的文档实现。一、DataFrame对象的生成 Spark-SQL可以以其他RDD对象、parquet文件、json文件、Hiv转载 2017-05-03 14:20:36 · 496 阅读 · 0 评论 -
Hive实现从表中随机抽样得到一个不重复的数据样本
方法一:select * from table_a order by rand() limit 100;方法二:select * from ( select e.*, cast(rand() * 100000 as int) as vidx from e ) vt order by vt.vidx limit 1转载 2017-05-03 11:45:36 · 1452 阅读 · 0 评论 -
Hive 数据导入HBase的2种方法详解
1、Hive 外部表2、MapReduce 写入 HBaseHive 数据导入HBase的2种方法详解王建奎Jerrick 发表于2年前 原Hive 数据导入HBase的2种方法详解 收藏王建奎Jerrick 发表于 2年前 阅读 3785转载 2017-04-19 14:59:07 · 18710 阅读 · 0 评论 -
HBase 常用Shell命令
两个月前使用过hbase,现在最基本的命令都淡忘了,留一个备查~进入hbase shell console$HBASE_HOME/bin/hbase shell如果有kerberos认证,需要事先使用相应的keytab进行一下认证(使用kinit命令),认证成功之后再使用hbase shell进入可以使用whoami命令可查看当前用户hb转载 2017-04-19 14:07:48 · 421 阅读 · 0 评论 -
Impala与Hive的比较
1. Impala架构 Impala是Cloudera在受到Google的Dremel启发下开发的实时交互SQL大数据查询工具,Impala没有再使用缓慢的Hive+MapReduce批处理,而是通过使用与商用并行关系数据库中类似的分布式查询引擎(由Query Planner、Query Coordinator和Query Exec Engine三部分组成),可以直接从转载 2017-04-18 20:55:08 · 590 阅读 · 0 评论