📖
tbds
  • 前言
  • 部署
    • 安装步骤
  • 平台管理
    • 用户管理
    • 项目管理
    • 系统设置
  • 组件访问开发
    • kafka
    • hadoop
    • hbase
    • accessKey
    • hive
    • spark
    • ftp
    • portalApi
    • hermes
    • 代码访问组件demos
      • hbase
      • hdfs
      • kafka
      • hive
  • 数据接入
    • 数据接入
      • TDBank产品化介绍及使用指引
      • TDBank数据接入指引
      • TDBank采集接口详解
      • OGG Flume Adapter 部署文档
      • DB Demo
      • HDFS Demo
    • Hippo管理
    • 进度监控
    • 血缘分析
  • 实时计算
    • 任务管理
    • 库表模板管理
  • 数据分析
    • 数据交互
    • ideX
  • 任务调度
    • 操作指引
    • 工作流
      • 基本概念
      • 任务基本信息
      • 任务调度设置
      • 任务参数配置
        • shell 脚本
        • ftp导入hdfs
        • kafka导入hbase
        • kafka导入hdfs
        • hdfs导出hbase
        • hive sql 脚本
        • hive导入hdfs
        • hdfs导出DB(mysql,postgreSQL,sql server)
        • tstorm任务
        • spark任务
        • mapreduce任务
        • db导入hdfs
        • hdfs导出hive
        • hdfs导出hive-tdsort
        • hive导出mysql
        • mysql导入hive
      • Demo
        • FTP导入HDFS
        • HDFS导出HBASE
        • HDFS导出Mysql
        • HDFS导入HIVE
        • Hive SQL脚本
        • Hive导出MySQL
        • Hive导入HDFS
        • KAFKA导出HBASE
        • KAFKA导出HDFS
        • MYSQL导入HDFS
        • MySQL导入Hive
        • Shell脚本
        • SPARK任务
      • 升级
        • 集成代码更新
        • rpm升级
      • 补充
        • 手动迁移base组件
        • 手动安装runner组件
        • 自定义任务开发文档
        • 时间隐式变量说明
        • 下发并发数说明和调整操作
        • Issues版本说明
        • 设置分组
        • 跨工作流依赖
      • 常见问题定位和解决方式
        • 常用操作
        • 实时接入任务hdfs2hive (tdsort)
        • 实例日志获取失败
        • 实例日志中提示下载文件失败
        • taskSchedule指标为空定位方法
        • 实例依赖失效确认方式
        • 任务实例诊断按钮无调度信息
        • 诊断和定位操作参考
        • 实例一直等待终止定位
        • mongodb 常见问题和处理办法
    • 任务管理
      • 工作流列表
      • 任务管理
      • 任务运行管理
      • 其他
    • 服务器配置
      • 基本概念
      • 操作指南
  • Tstorm
    • Tstorm介绍
    • 开发实例
      • wordcount
  • 数据展现
    • 自助报表
  • 数据资产
    • 库表管理
      • 可管理库表
      • 可读写库表
      • 无归属库表
      • 维表管理
      • 新建表
    • 数据血缘
    • 数据提取
      • 数据地图
      • 任务列表
      • 架构关联
  • 运维中心
    • 系统运维
      • 组件部署
      • 链接归集
      • 诊断
      • 备份
    • 访问管理
    • 文件管理
    • 监控告警
      • 监控
      • 告警
  • 机器学习
    • 系统简介
    • TDInsight功能介绍
      • 工作流
        • 新建工程
        • 新建工作流
        • 创建和配置节点
        • 运行
        • 日志查看
      • 数据输入输出
      • 组件
        • Spark组件
        • Sparkstreaming组件
        • pySpark组件
        • xgboost组件
    • 多实例并发
      • 3种方式驱动实例
      • 实例查询
      • 历史实例
    • TDInsight模型与在线推理
      • 数据流
      • 模型的训练与使用
      • 模型在线服务
    • TDInsight算法/组件说明
      • 数据说明
      • 特征工程
        • 数据预处理
        • 特征提取
        • 特征转换
        • 特征选择
        • 特征评估
      • 机器学习
        • 分类算法
        • 聚类算法
        • 回归算法
        • 推荐算法
        • 关联规则
      • 模型评估
        • Binary Evaluator
        • Multi Evaluator
        • Regression Evaluator
      • 可视化
        • 关系
        • 分布
        • 对比
        • 组合
      • 深度学习算法简介
        • 计算机视觉
        • 自然语言处理
        • 表示学习
Powered by GitBook
On this page
  • Hemres SQL API端口介绍
  • 实时数据接入接口
  • Kafka和Hippo建表配置
  • Hermes Sql 实例
  • Hermes SQL 专有名词
  • Hermes SQL 条件查询
  • Hermes 支持的SQL操作
  • Hermes数据导出功能

Was this helpful?

  1. 组件访问开发

hermes

PreviousportalApiNext代码访问组件demos

Last updated 4 years ago

Was this helpful?

Hemres SQL API端口介绍

  • 使用格式为:

  • 获取当前入库表情况:

    /tablemanager

  • 获取表入库数据量:

    /hermes?type=count

  • 获取线上数据时间日期:

    : port /hermes?type=datelist&projectname=name

实时数据接入接口

  • Kafka数据接入

{
    "topic": "topic",    //  topic
    "serverHost": "10.241.88.165:9092",  // master host 接口
    "group": "groupname"     //消费组名
}
  • Hippo数据接入

{
    "controllerHost": "controllerHost",    //  controllerHost
    "group": "group",  // group
    "userName": "userName",     //userName
    "secretId": "secretId",     //secretId
    "secretKey": "secretKey"     //secretKey
}
  • 调用方式:

  • GET方式:

    http:// hermesserver: port /config?kafkainfo={"topic":"topic","serverHost":"10.241.88.165:9092","group":"tboss_g1"}
  • POST方式:

    curl http://hermesserver:port/config -d 'kafkainfo={"topic":"topic","serverHost":"10.241.88.165:9092","group":"tboss_g1"}'

Kafka和Hippo建表配置

{
    "hermesFields": [ // 表结构所包含字段有哪些,字段顺序需要和入库顺序一致
        {
            "fieldname": "name",  // 字段名
            "type": "string",  //字段类型
            "indexed": true,   //是否建立索引
            "stored": false    //是否存储内容
        },
        {
            "fieldname": "age",
            "type": "int",
            "indexed": true,
            "stored": false
        },
    ],
    "topic": " topic ", //所属topic
    "split": ",",  // 字段分隔符
    "key": "name",  //主键,hermes主键可以有重复
"timefield": "system_default",  //时间分区字段,默认为系统当前时间
"dateFormat": "YYYYMMDD", //时间格式( 支持 YYYY,YYYYMM,YYYYMMDD,YYYYMMDDHH,NULL)
    "json": false,     //接入数据是否为json格式
    "tablename": "person",      // 表名
    "range": 3   // 数据保留周期
}
  • 调用方式:

  • GET方式:

    http://hermesserver:port/config?tableinfo={"hermesFields":[{"fieldname":"name","type":"string","indexed":true,"stored":false},{"fieldname":"age","type":"long","indexed":true,"stored":false}],"topic":"tboss","split":"," ,"key":"name","timefield":"system_default","json":false,"range":3,"dateFormat":"YYYYMMDD","tablename":"person"}
  • POST方式:

    curl http://hermesserver:port/config -d ‘tableinfo={"hermesFields":[{"fieldname":"name","type":"string","indexed":true,"stored":false},{"fieldname":"age","type":"long","indexed":true,"stored":false}],"topic":"tboss","split":"," ,"key":"name","timefield":"system_default","json":false,"range":3,"dateFormat":"YYYYMMDD","tablename":"person"}’

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 /exportstatus

参数

projectname=t_webitil_490 //导出任务时所指定的projectname</br>user.data.package.userpackageIds=kaynewu213 //导出任务id

删除参数

cmd=delete //如果需要终止或者删除某个导出任务可加上该参数

返回值:

{
    "projectName": "t_webitil_490",
    "yyyymmdd": "20171024",
    "userpackageId": "kaynewu213",
    "status": "OK",   //导出结果 OK,ERROR
    "hadConvert": false,
    "currentStatusDesc": " ",
    "process": 1,         //到出进度
    "totalCount": 1572864,    // 导出数据量
    "lastModifyTime": 1508921963363,
    "exportUrl": "http://10.240.130.36:8089/kaynewu213.txt;",  //导出文件下载地址
    "userPackageProgressStatus": "SUCCESS",  //当前导出任务状态
    "share": false
}

userPackageProgressStatus:

INIT,//初始化
EXPORTING, // 正在导出
SUCCESS, // 成功
ERROR, // 错误
FAIL;// 失败

示例:

http://10.240.130.35:8080/exportstatus?projectname=t_webitil_490&user.data.package.userpackageIds=kaynewu213
  • 自定义导出kafka topic 导出数据格式(业务直接从kafka消费出来的数据格式)

    {
      "exportid": "export_test43",   //导出包 id,标识一次用户导出任务
      "uuid": "bb5e84f9-a21a-49c1-bf0a-3d4dda98ab45",  //uuid 标识符
      "type": "HEAD",   // 到处消息类型分为3种;HEAD(头部,total字段标识某个数据分片导出总量) DATA(消息体) END(尾部,标识某个数据分片已导出完成)
      "total": 3,  // 某个数据分片导出总量
      "size": 3,  // 携带导出数据个数
      "data": [ // 导出数据列表
          {
              "pid": "17268",
              "ftime": "2016-10-09 10:32:25"
          },
          {
              "pid": "17268",
              "ftime": "2016-10-09 11:35:39"
          },
          {
              "pid": "17268",
              "ftime": "2016-10-09 11:35:39"
          }
      ]
    }

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/sql?sql=$sqlquery
http://hermesserver:port
http://hermesserver:port
http://hermesserver
http://hermesserver:port/sql?sql=select