hermes
Hemres SQL API端口介绍
获取当前入库表情况:
http://hermesserver:port /tablemanager
获取表入库数据量:
http://hermesserver:port /hermes?type=count
获取线上数据时间日期:
http://hermesserver: port /hermes?type=datelist&projectname=name
实时数据接入接口
Kafka数据接入
Hippo数据接入
调用方式:
GET方式:
POST方式:
Kafka和Hippo建表配置
调用方式:
GET方式:
POST方式:
Hermes Sql 实例
SQL |
Select count(*) from tablename where thedate=’20150706’ |
select sum(money) from tablename where thedate in (’20150706’,’20150707’) |
Hermes SQL 专有名词
名称 | 说明 | 备注 |
Hermespartion(thedate) | Hermespartion,数据查询日期指定,相当于date参数 | 注意日期用单引号扣起来,且查询语句中必须加上hermespartion条件 |
hermespartion=’20150706’ or hermespartion in (’20150706’, ’20150707’) or thedate=’20150706’ | -- | -- |
注意:过滤条件可以进行and与or的组合(但最外层必须是and ),例子如下:</br>hermespartion in (20140908) and hermestopic='qqface' and (ddwuid='1' or ddwuid='2' or (dwinserttime>=20140908202626 and dwinserttime<=20140908203026)) | -- | -- |
Hermes SQL 条件查询
条件语句 | 说明备注 |
in(…)集合查询 | 括号内包含查询条件的集合,(时间分区字段hermespartion,thedate,多日期查询必须使用in语句) |
hermespartion in (20140908,20140910) and hermestopic='qqface' and (ddwuid='1' or ddwuid='2' or (dwinserttime>=20140908202626 and dwinserttime<=20140908203026)) | -- |
>,<,>=,<=,[],{}区间查询 | 对于带有范围的过滤筛选推荐使用下列含有TO的查询,能提升查询效率,注意两种括号的区别,前者不包含边界值,但后者则包含 |
dwinserttime like '([20140916000000 TO 20140916115000] )' </br>dwinserttime like '({20140916000000 TO 20140916115000})' </br>实在不能避免可以考虑下面的写法,但是对于重复值很少的列,查询起来会比较慢</br>dwinserttime>=20140916115000 and dwinserttime <=20140916000000 | -- |
like模糊匹配 | szlogstr like 'iris ' 注意如何该列排重后的值得数量特别多,禁止将通配符写在最前面,否则查询性能很低</br>ddwuin like '6938433??' 如要要进行类似QQ号码的定长匹配,可以用?来代替,*是匹配0~多个字符,而?则表示只匹配一个字符 |
空字符串的匹配</br>select s1_syn,hermes_rawdata from hermeslink_90day where hermespartion='20150203' and hermestopic='qqface' and s1_syn like '({ TO @space@})' limit 0,100</br>Null字符串的匹配</br>select s3_syn,hermes_rawdata from hermeslink_90day where hermespartion='20150203' and hermestopic='qqface' and s3_syn <>'' limit 0,100 | -- |
limit 0,N返回记录条数 | 默认返回20条查询到的结果记录,上限是返回 10000条记录 |
<> | 不等于查询如:</br>zlogstr<>'2100' and szlogstr<>'2534' and szlogstr<>'1002' </br>logstr<>’*’ 匹配空值 |
like ([ TO ]) | 查询所有非空值:eg: f120014 like '([ TO ])' |
hermesall=1 | 是否全表扫描数据,不加此参数返回limit条结果之后不在扫描集群其他数据 |
Hermes 支持的SQL操作
Sql 操作 | 说明 | 备注 |
count统计操作 | 对表进行count统计 | 注意下count()与count(age)的区别,前者不管列的值是否是null,计数都会加1,而且因为不需要读取字段的值,性能很高,后者需要判断改字段的值是否为null,如果是null则不会进行累加计数,所以大部分场景都推荐使用count() |
select count(*),count(ddwuid) from sngsearch03 where hermespartion=20140921 limit 0,100 | -- | -- |
avg 取平均值 | 对表字段进行取平均值操作 | -- |
sum求和 | 字段求和 | -- |
min取最小值 | 字段取最小值 | -- |
max取最大值 | 字段取最大值 | -- |
select sum(acnt),average(acnt),max(acnt),min(acnt) from sngsearch03 where hermespartion= 20140921 and hermestopic='qqface' limit 0,100 | -- | -- |
group by分类操作 | 分类汇总,支持对多列进行group by | -- |
order by排序操作 | 对查询的结果进行排序 | 排序的列目前只能是单列 |
select x1,count(*),sum(acnt) from sngsearch03 where hermespartion=20140921 and hermestopic='qqface' group by x1 order by x1 limit 0,100 | -- | -- |
Hermes数据导出功能
接口 | 说明 |
Sql查询语句 | select count(*) from tablename where thedate=20171025 |
导出参数 | hermeskv='projectname: tablename ' //导出表名</br>hermeskv='yyyymmdd: 20171025’ //导出时间分区</br>hermeskv='higo.export.userpackageid:export_test1' //导出包id,唯一标识不可重复</br>hermeskv='higo.export.fields:qq,uin' //导出字段, 导出多个字段用逗号分割 |
自定义导出参数(可选) | hermeskv=' hermes.export.kafka.broker:10.241.88.165:9092' // kafka broker 地址端口</br>hermeskv=' hermes.export.kafka.topic:export_topic' // 导出kafka topic名 |
http://hermesserver:port/sql?sql=select count(*) from tablename where thedate=20171025 and hermeskv='projectname:tablename' and hermeskv='yyyymmdd:20171025' and hermeskv='higo.export.userpackageid:export_test1' and hermeskv='higo.export.fields:qq,uin' | -- |
导出任务状态进度查询
接口 | 说明 |
查询接口 | http:// hermesserver:port /exportstatus |
参数 | projectname=t_webitil_490 //导出任务时所指定的projectname</br>user.data.package.userpackageIds=kaynewu213 //导出任务id |
删除参数 | cmd=delete //如果需要终止或者删除某个导出任务可加上该参数 |
返回值:
userPackageProgressStatus:
示例:
自定义导出kafka topic 导出数据格式(业务直接从kafka消费出来的数据格式)
Last updated