mdrill的分区
mdrill的设计默认是使用分区的,也是按照分区进行存储的,除非强制使用single类型的分区外,查询的时候必须指定分区。
目前mdrill的分区字段为thedate,格式为yyyyMMdd
在顶层SQL的where条件中必须有如下三种分区设定的一种
1. thedate=’yyyyMMdd’ 直接指定某一个分区
2. thedate in (yyyyMMdd, yyyyMMdd, yyyyMMdd) 给出一系列日期
3. thedate >= yyyyMMdd and thedate<= thedate 给出一个范围
查询明细
1. 通过mdrill可以查询top 1万条数据的明细,举例如下
select ipv,price from rpt_hitfake_auctionall_d where thedate>='20130201' and thedate<=20130202 limit 0,20
2. 对于明细的数据,可以进行排序,也就是order by
select ipv,price from rpt_hitfake_auctionall_d where thedate>=‘20130201’ and thedate<=20130202 order by price desc limit 0,20
统计汇总
mdrill目前支持sum,max,min,count,dist五种汇总函数,
1. dist就是sql中的count(distinct(xxx)),但是采用的是近似计算,会有一定的误差
具体实现原理,请参考https://github.com/muyannian/higo/wiki/distinct
2. count我们有另种使用方法
第一种是:count(列名),针对具体某一列进行count统计,当然如果该列值如果存在NULL值,不会作为count计数。
第二种是: count(*),即使存在NULL的列,也会列入计数。
我们给几个常见的统计的使用离子
select count(clickcount0),sum(clickcount0) from rpt_hitfake_auctionall_d where thedate>='20130201' and thedate<=20130202 limit 0,1
select count(clickcount0),count(*) from rpt_hitfake_auctionall_d where thedate>='20130201' and thedate<=20130202 limit 0,1
分类汇总
1. mdrill目前支持多维分类汇总统计,也就是sql中的group by
举例如下:
select thedate,count(thedate) as cnt,sum(clickcount0) from rpt_hitfake_auctionall_d where thedate>='20130201' and thedate<=20130202 group by thedate limit 0,20
2. 另外分类汇总后,mdrill可以按照某一列的值进行排序,如果分类汇总后的组数小于1万组,为准确排序,如果超过1万组则为近似的排序和计算,有可能存在排序的顺序和计算的结果不正确的情况
针对超过1W组后获取的汇总数值有可能不准确的情况,业务方要在第一次查询过后,根据返回的数据,进行第二次查询,用以获取准确的结果,当然之后的mdrill我们会逐步实现这些。
使用示例如下:
select thedate,count(thedate) as cnt,sum(clickcount0) as sum from rpt_hitfake_auctionall_d where thedate>='20130201' and thedate<=20130202 group by thedate order by sum desc limit 0,20
mdrill的过滤
1. 目前mdrill的过滤支持如下几种
=:等于
<>:不等于
>=:大于等于
<=:小于等于
>:大于
<:小于
in:属于列表
not in:属于列表
like:模糊匹配
2. 目前mdrill的过滤表达式 为如下的格式
分区过滤 and 条件一 and 条件二 and ….条件N
也就是说最外层 必须有分区过滤 并且只能是and的关系
但是每个条件里面可以是用括号嵌套的关系,
比如说
分区过滤 and 条件一 and (条件二 or 条件三 or (条件四 and 条件五))
给出一个我们经常使用的例子
select category_level3_name,count(higoempty_count_l) from rpt_hitfake_auctionall_d where thedate>='20130201' and thedate<=20130202 and category_level3_name like '暗黑%' group by category_level3_name limit 0,100
JDBC查询(依赖的jar包请去lib下找)
mdrill的SQL支持JDBC的方式,需要先启动监控与jdbc服务,启动服务的方法如下
nohup ./bluewhale mdrillui 1107 ../lib/adhoc-web-0.18-beta.war >ui.log &
String connstr = "jdbc:mdrill://localhost:1107"; Class.forName("com.alimama.mdrill.jdbc.MdrillDriver"); Connection con = DriverManager.getConnection(connstr, "", ""); Statement stmt = con.createStatement(); HigoQueryResultSet res = null; res = (HigoQueryResultSet) stmt.executeQuery("select ipv,price from rpt_hitfake_auctionall_d where thedate = '20130201' limit 0,20"); System.out.println("totalRecords:"+res.getTotal()); List<String> colsNames = res.getColumnNames(); for (int i = 0; i < colsNames.size(); i++) { System.out.print(colsNames.get(i)); System.out.print("\t"); } System.out.println(); while (res.next()) { for (int i = 0; i < colsNames.size(); i++) { System.out.print(res.getString(colsNames.get(i))); System.out.print("\t"); } System.out.println(); } con.close();
相关推荐
DM8 SQL语言使用手册.pdf DM8 SQL语言使用手册是国产化数据库达梦SQL语言的使用指南,旨在帮助用户快速掌握DM_SQL语言的使用。下面是本手册中涉及的重要知识点: 1. 结构化查询语言DM_SQL简介 DM_SQL是一种基于...
达梦数据库DM7_SQL语言使用手册 达梦数据库DM7_SQL语言使用手册是达梦数据库管理系统的SQL语言使用指南,旨在帮助用户快速掌握DM_SQL语言的使用和应用。下面是从该手册中提取的重要知识点: 结构化查询语言DM_SQL...
因此,我将以【标题】和【描述】部分为基础,为用户构建一个关于SQL Server使用手册的知识点概览。 SQL Server是一款广泛使用的数据库管理系统(DBMS),由微软公司开发,适用于企业级应用以及数据仓库等场景。使用...
SQL参考手册是SAP HANA数据库的官方文档,它为数据库管理员和开发者提供了关于如何使用SQL来与SAP HANA数据库交互的详细信息。 首先,SQL参考手册涵盖了SQL的基本元素。SQL是一种标准化的编程语言,用于管理和操作...
达梦7 数据库sql使用手册。 目录 I 第 1 章 结构化查询语言 DM_SQL 简介 1 1.1 DM_SQL 语言的特点 1 1.2 保留字与标识符 2 1.3 DM_SQL 语言的功能及语句 2 1.4 DM_SQL 所支持的数据类型 3 1.4.1 常规数据类型 ...
《SQL参考手册中文版》是IT领域中一本重要的参考资料,主要涵盖了SQL(Structured Query Language)语言的各种概念、语法和操作。SQL是用于管理和处理关系数据库的标准编程语言,它在数据查询、更新、插入和删除等...
### SQL Developer 使用手册知识点概述 #### 一、SQL Developer 简介 - **软件版本与发布日期**:本手册介绍的是 Oracle SQL Developer 版本 4.0,发布于 2013 年 12 月。 - **版权信息**:此文档受版权保护,未经...
SQL 实验手册 2014 本资源摘要信息对应的实验手册涵盖了 SQL 实验的全面内容,从基础的实验到高级的实验,涵盖了多种数据库管理系统,包括 Microsoft SQL Server、Oracle、Sybase 和 MySQL。 SQL 实验基础 SQL ...
这部分内容主要体现了知识产权保护意识和合法性要求,确保用户合法使用手册内容。 其次,手册详细介绍了SQL的基础语法,包括数据类型、SQL语言基础、操作符和函数等重要知识点。 在数据类型方面,文档介绍了数值...
sql完全手册sql完全手册sql完全手册sql完全手册sql完全手册sql完全手册sql完全手册sql完全手册sql完全手册
《DM8 SQL语言使用手册》是一本专注于DM8数据库管理系统中的SQL语言应用的详尽指南。DM8是由达梦公司开发的一款高性能、高可用性的关系型数据库管理系统,它支持标准的SQL语法,同时具备一系列特有的功能和优化机制...
阿里云odpsSql手册1摘要 大数据计算服务MaxCompute SQL概要介绍_MAXCompute SQL是一种面向海量数据(TB级别)的计算服务,适用于实时性要求不高的场合。 MaxCompute SQL的每个作业的准备、提交等阶段需要花费较长...
《SQL Server精华 (CHM).chm》可能涵盖了SQL Server的主要特性,如数据库的设计与创建、T-SQL(Transact-SQL)语法、索引的构建与优化、存储过程的编写、触发器的应用、视图的使用、数据备份与恢复策略、安全性管理...
SAP HANA数据库SQL参考手册是为SAP HANA平台上的SQL用户提供的全面指南,尤其适合SAP顾问、系统管理员和硬件合作伙伴等专业人士使用。该手册深入解析了在HANA环境中如何有效地运用SQL语言,涵盖了从基本语法到高级...
本手册和SQL语法手册是学习和操作KingbaseES V8的重要参考资料。 在KingbaseES V8中,用户可以接触到以下几个核心知识点: 1. **数据库管理系统基础**:理解数据库管理系统的概念,包括数据存储、数据查询、事务...
SAP HANA SQL 使用手册 SAP HANA SQL 使用手册是根据SAP官方文档重新整理的资源,旨在提供更加清晰的阅读体验和目录。以下是根据手册中提到的知识点: SAP HANA 数据库概述 SAP HANA 数据库是一个基于内存的关系...
sql完全手册sql完全手册sql完全手册sql完全手册sql完全手册sql完全手册sql完全手册sql完全手册sql完全手册
达梦数据库是国产数据库的杰出代表,其SQL语言使用手册详细介绍了DM_SQL语言的特点、支持的数据类型、表达式、运算符优先级、数据库模式以及具体的语法命令和操作示例,使用户能够熟练掌握并使用达梦数据库进行数据...
10. 性能调优:手册也会涉及SQL性能优化,包括编写高效的查询语句、使用EXPLAIN PLAN分析查询执行计划、索引选择策略以及使用绑定变量等。 总的来说,Oracle官方SQL帮助手册是一部全面、深入的技术指南,无论是初学...