`
文章列表
es中的查询请求有两种方式,一种是简易版的查询,另外一种是使用JSON完整的请求体,叫做结构化查询(DSL)。由于DSL查询更为直观也更为简易,所以大都使用这种方式。DSL查询是POST过去一个json,由于post的请求是json格式的,所以存在很多灵活性,也有很多形式。这里有一个地方注意的是官方文档里面给的例子的json结构只是一部分,并不是可以直接黏贴复制进去使用的。一般要在外面加个query为key的机构。 match 最简单的一个match例子: 查询和"我的宝马多少马力"这个查询语句匹配的文档。 { "query": { ...
本章翻译自Elasticsearch官方指南的Aggregations-High-level Concepts一章。     高层概念(High-Level Concepts)   和查询DSL一样,聚合(Aggregations)也拥有一种可组合(Composable)的语法:独立的功能单元可以被混合在一起来满足你的需求。这意味着需要学习的基本概念虽然不多,但是它们的组合方式是几近无穷的。 为了掌握聚合,你只需要了解两个主要概念: Buckets(桶):
“打包“这个词听起来比较土,比较正式的说法应该是”构建项目软件包“,具体说就是将项目中的各种文件,比如源代码、编译生成的字节码、配置文件、文档,按照规范的格式生成归档,最常见的当然就是JAR包和WAR包了,复杂点的例子是Maven官方下载页面的分发包, 它有自定义的格式,方便用户直接解压后就在命令行使用。作为一款”打包工具“,Maven自然有义务帮助用户创建各种各样的包,规范的JAR包和WAR包 自然不再话下,略微复杂的自定义打包格式也必须支持,本文就介绍一些常用的打包案例以及相关的实现方式,除了前面提到的一些包以外,你还能看到如何生成源 码包、Javadoc包、以及从命令行可直接运行的CLI ...
数据的操作语言是SQL,因此很多工具的开发目标自然就是能够在Hadoop上使用SQL。这些工具有些只是在MapReduce之上做了简单的包装,有些则是在HDFS之上实现了完整的数据仓库,而有些则介于这两者之间。这样的工具有很多,来自于Shoutlet的软件开发工程师Matthew Rathbone最近发表了一篇文章,他列举了一些常用的工具并对各个工具的应用场景和未来进行了分析。 Apache Hive Hive是原始的SQL-on-Hadoop解决方案。它是一个开源的Java项目,能够将SQL转换成一系列可以在标准的Hadoop TaskTrackers上运行的MapReduce任务。Hi ...
本章只是从HQL层面介绍一下,日常开发HQL中需要注意的一些优化点,不涉及Hadoop层面的参数、配置等优化。 其中大部分是我之前发过的博客文章,这里整理了下。 11.1 使用分区剪裁、列剪裁 在SELECT中,只拿需要的列,如果有,尽量使用分区过滤,少用SELECT *。 在分区剪裁中,当使用外关联时,如果将副表的过滤条件写在Where后面,那么就会先全表关联,之后再过滤,比如: SELECT a.id FROM lxw1234_a a left outer join t_lxw1234_partitioned b
本文介绍一下Hive元数据中重要的一些表结构及用途,以Hive0.13为例。 文章最后面,会以一个示例来全面了解一下,Hive的元数据是怎么生成和存储的。 13.1 存储Hive版本的元数据表(VERSION) 该表比较简单,但很重要。 VER_ID SCHEMA_VERSION
Job 逻辑执行图 General logical plan 典型的 Job 逻辑执行图如上所示,经过下面四个步骤可以得到最终执行结果:
企业从事数据仓库项目时,往往会遇到多个数据仓库软件供应商。各供应商除了推销相关的软件工具外,同时会向企业灌输许多概念,其中,数据仓库和数据集市是最常见的。由于术语定义不统一,另外各个供应商销售策略不一 ...

HBase的compact分析

  HBase是基于LSM树存储模型的分布式NoSQL数据库。LSM树对比普遍的B+树来说,能够获得较高随机写性能的同时,也能保持可靠的随机读性能(可参考这里)。在进行读请求的时候,LSM树要把多个子树(类似B+树结构)进行归并查询 ...
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。     df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。    du可以查看文件及文件夹的大小。     两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。     下面分别简要介绍     df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:    
“分天下为三十六郡,郡置守,尉,监” —— 《史记·秦始皇本纪》   所有用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.xml。它们之间通过继承和聚合(也称作多模块,multi-module)相互关联。那么,为什么要这么做呢?我们明明在开发一个项目,划分模块后,导入Eclipse变成了N个项目,这会带来复杂度,给开发带来不便。   为了解释原因,假设有这样一个项目,很常见的Java Web应用。在这个应用中,我们分了几层: Dao层负责数据库交互,封装了Hibernate交互的类。 Service层处理业务逻辑,放一些Service接口和实现相关的B ...
1. order by     Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的数据都会到同一个reducer进行处理(不管有多少map,也不管文件有多少的block只会启动一个reducer)。但是对于大量数据这将会消耗很长的时间去执行。     这里跟传统的sql还有一点区别:如果指定了hive.mapred.mode=strict(默认值是nonstrict),这时就必须指定limit来限制输出条数,原因是:所有的数据都会在同一个reducer端进行,数据量大的情况 ...
1 概述 HBase是一个分布式的、面向列的数据库,它和一般关系型数据库的最大区别是:HBase很适合于存储非结构化的数据,还有就是它基于列的而不是基于行的模式。 既然HBase是采用KeyValue的列存储,那Rowkey就是KeyValue的Key了,表示唯一一行。Rowkey也是一段二进制码流,最大长度为64KB,内容可以由使用的用户自定义。数据加载时,一般也是根据Rowkey的二进制序由小到大进行的。 HBase是根据Rowkey来进行检索的,系统通过找到某个Rowkey (或者某个 Rowkey 范围)所在的Region,然后将查询数据的请求路由到该Region获取数 ...
hbase,mongodb,redis都属于nosql型存储方案。在实际的项目实践上看,他们的系统存储及处理的数量由大到小。HBase基于列存储,提供<key, family:qualifier, timestamp>三项坐标方式定位数据,由于其qualifier的动态可扩展型(无需schema设计,可存储任意多的qualifier),特别适合存储稀疏表结构的数据(比如互联网网页类)。HBase不支持二级索引,读取数据方面只支持通过key或者key范围读取,或者全表扫描。   MongoDb在类SQL语句操作方面目前比HBase具备更多一些优势,有二级索引,支持相比于HBase ...
  Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调 ...
Global site tag (gtag.js) - Google Analytics