MDSS-V0.3使用手册-v4.doc_第1页
MDSS-V0.3使用手册-v4.doc_第2页
MDSS-V0.3使用手册-v4.doc_第3页
MDSS-V0.3使用手册-v4.doc_第4页
MDSS-V0.3使用手册-v4.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

海量数据存储检索系统SQL-LIKE语言使用手册MDSS-V0.3目 录1SQL-LIKE语言使用手册41.1MDSS-V0.3系统功能概述41.2SQL-LIKE中的数据类型41.3SQL-LIKE语法使用说明51.3.1CREATE51.3.2INSERT61.3.3SELECT61.3.4聚合函数71.3.5时间表达式函数81.4SQL-LIKE使用中注意的问题91.4.1where中多个条件的优先级说明91.4.2几点使用限制说明92MDSS-V0.3 SHELL操作手册112.1进入shell系统112.2SHELL操作方法1130.3版本新增功能153.1几个常用命令的符号链接153.1.1进入SHELL命令153.1.2检索结果文件导出命令153.1.3根据文件构建检索条件并导出检索结果命令153.2域名分级检索功能163.2.1域名分级定义163.2.2MDSS中域名分级函数的使用164命令行操作方法184.1基本功能184.2语法184.3举例191 SQL-LIKE语言使用手册1.1 MDSS-V0.3系统功能概述SQL-LIKE是为MDSS系统设计的数据检索语言,MDSS-v0.3系统主要功能如下:n 提供二维表格数据模型;n 以一条记录为原子操作;n 利用分布式存储框架,实现数据和索引的分布存储、并发检索功能;n 在单一表空间内利用SQL-LIKE语言实现:精确查询,模式查询,多属性查询,区间查询,统计排序,函数聚合等检索功能;n 支持近期数据的快查(近期缓存在集群内存中)功能;1.2 SQL-LIKE中的数据类型 目前MDSS-V0.3 SQL-LIKE语言支持六种基本数据类型包括:INTEGER或INT、IPV4_ADDR、IPV6_ADDR、CHAR、STORE、TIMESTAMP六类:INTEGER或INT,IPV4_ADDR、IPV6_ADDR、CHAR支持where条件查询,STORE不支持where条件查询,直接保存数据,每种类型使用规则如下:l 整数类型:关键字:INTEGER或INTn 例如:ID INTEGER;n 说明:INTEGER类型字段支持算术比较(,=),支持统计查询(SUM,COUNT,AVG);l IP字段类型:关键字:IPV4_ADDR, IPV6_ADDR。 IPV4_ADDR保存IPV4类型的IP地址,IPV6_ADDR保存IPV6类型的IP地址n 例如:sip IPV4_ADDR;n 说明:支持IP类型数据的区间检索、子网检索;sip= to 55,表示sip在整个10.10.10.*段的IP地址;l 索引类型:关键字CHARn 说明:CHAR类型字段建立索引,支持精确查询,模糊查询;l 存储类型:关键字:STOREn 说明:STORE类型字段直接存储到数据文件中,不支持where查询条件;l 时间类型:关键字TIMESTAMPn 说明:记录以字符串形式记录的时间信息,以秒为单位, TIMESTAMP使用“年月日时分秒”时间字符串表示,如“20110514060606”表示2011年5月14日6点6分6秒;1.3 SQL-LIKE语法使用说明 SQL-LIKE是为海量数据存储系统MDSS设计的数据检索操作语言。SQL-LIKE通过提取标准SQL语言中的核心操作逻辑,支持针对单表空间的多维属性查询、统计操作。SQL-LIKE具体实现如下三类功能操作:表空间管理、数据查询统计、数据管理等操作,基本使用规则如下:l 命令、关键字不区分大小写,用户自定义的字段名区分大小写;l 每条命令以“;”作为命令结束标记符号;l 表名、字段名中不能出现#, $,¥,|,%,*,等字符;l 数据中如果有特殊字符,需要加两个单引号括起来,如Aabc abc,表示Aabc abc作为一个字段,插入到数据库中,但是不载入数据库;l 区间查询使用“ to ”表示,支持数字、IP类型、以及时间戳类型的检索; SQL-LIKE基本操作命令包括:CREATE,INSERT以及SELECT三类;1.3.1 CREATE命令作用:创建表空间;基本格式:CREATE TABLE TABLENAME (FIELDNAME FIELDTYPE , FIELDNAME FIELDTYPE,);n FIELDNAME:字段名,不能以?,*等通配符开始;n FIELDTYPE:字段类型,包含INTEGER, IPV4_ADDR, IPV4_ADDR,TIMESTAMP,INDEX, STORE六类基本类型,具体含义如1.1节。1.3.2 INSERT命令作用:插入记录基本格式:INSERT INTO TABLENAME VALUES(VALUE1 , VALUE1);“VALUE1 , VALUE1”构成的value列表使用“,”分隔,value列表使用括号括起来。1.3.3 SELECT命令作用:检索记录;基本格式:SELECT FIELDSLIST FROM TABLENAME WHERE (CONDITION) GROUP BY FIELDNAME ORDER BY FIELDNAME ASC | DESC TOP K | LIMIT K;n FIELDSLIST: DISTINCT | * | COUNT ( FIELDNAME | * ) | SUM ( FIELDNAME)| AVG ( FIELDNAME)| ,FIELDNAME,各个字段名之间,统计函数与其余字段之间使用“,”分割开;支持COUNT,SUM,AVG,MAX,MIN统计查询函数;DISTINCT关键字直接放在SELECT后,如“select distinct ”表示针对整个FIELDS LIST列表的去重;放到聚合函数里,SUM(DISTINCT FIELDNAME)表示针对统计字段的去重;支持字段名检索;n WHERE CONDITION AND|OR|NOT CONDITION :where子句支持多个逻辑查询条件的组合,CONDITION表示每个逻辑查询条件;多个条件之间使用逻辑操作符号AND,OR,NOT连接;如:where domain = www.baidu.* and port=8080;当where中有多个逻辑条件时,计算顺序是从左到右依次进行(可以理解为优先级从左向右依次降低),比如:检索IP地址池中所有类型为A的DNS记录,可以写作:select * from domaintable where IP=ip1 or IP=ip2 or IP=ip3 or or IP=ipn and type = A; 当逻辑表达式中有not时,做and not处理;n CONDITIONINGETER类型支持关系运算:=,等关系比较;IP地址类型字段支持子网查询,如“sip= to 55”检索127.10.10网段所有的IP地址;CHAR支持模糊查询:*表示字符串,?表示单个字符串;n ORDER BY结果集排序,排序标识关键字为:ASC或DESC,默认是升序ASC。目前支持对单一字段进行排序;n GROUP BY结果集分组关键字;可以针对多个字段进行分组;n TOP K 返回符合条件的前K条记录;1.3.4 聚合函数MDSS-V0.3主要的聚合函数包括:COUNT,SUM,AVG,MAX,MIN,LENGTH;n COUNT统计符合条件的记录数;n SUM,AVG,MAX,MIN函数可以针对INT类型进行计算;n LENGTH取字符串的长度;目前统计函数可以同时出现多个:如:select name3,avg(name1),sum(name2) from tablename where name3 10 group by name3;1.3.5 时间表达式函数为了提高检索灵活性,SQL-Like语言支持时间表达式的计算,支持如下时间函数:1、取当前时间函数:%CURRENT_TIME%CURRENT_TIME 是表示获取当前系统时间。如果其后需要进行四则运算(目前系统不支持除法运算),需要把四则运算放到 %号里边。CURRENT_TIME 后边跟着的数值的单位为秒。注意:%号一定是要成对出现举例:Select count(*) from t1 where time = %CURRENT_TIME - 2*3600 -1800% to %CURRENT_TIME%;假设当前时间为:2011年6月1号10点30分整,则该sql会被翻译为:Select count(*) from t1 where time = 20110601080000 to 20110601103000;2、支持时间函数:to_date()To_date函数会带参数,参数格式为:年-月-日 时:分:秒,举例:Select count(*) from t1 where time = to_date(2011-6-1 10:3:00) to to_date(2011-6-2 10:3:00);该sql会被翻译为:Select count(*) from t1 where time = 20110601100300 to 20110602100300;3、取当前时间的零点:%CURRENT_DAY%取当天时间的零点函数,具体含义与%CURRENT_TIME%相同。1.4 SQL-LIKE使用中注意的问题1.4.1 where中多个条件的优先级说明当where中有多个逻辑条件时,通过and or not连接,从左到右优先级依次降低,取双目逻辑操作符号做集合运算(具体含义见1.2 where部分的说明);1.4.2 几点使用限制说明1. 聚合函数使用限制与统计函数SUM,AVG等同时出现在select子句中的字段名必须同时出现在GROUP BY中子句中;如:select name1, sum(name2) from tablename where name110 group by name1;/name1必须出现在group by子句中2. 时间检索条件的限制MDSS-V0.3针对网络流数据做了基于时间存储的优化处理,在检索条件中使用TIMESTAMP等字段类型的时间检索条件会提高检索效率,但是时间检索条件只能使用一次。使用多个时间检索条件优化技术无效。3. AS关键字的限制MDSS-V0.3中AS支持聚合函数重命名并排序的操作;但是别名不能出现在where子句中:select domain,sum(count) as CNT domain from domaintable where type=A group by domain order by CNT;4. 目前MDSS不支持的功能SQL-LIKE不支持标准SQL中的如下功能:(1)SQL-LIKE不支持JOIN操作MDSS-v0.3 不支持多个表之间的JOIN操作;(2)SQL-LIKE不支持嵌套查询MDSS-v0.3 不支持多个SELECT语句嵌套查询;2 MDSS-V0.3 SHELL操作手册为了方便数据的管理,开发了的SHELL字符管理操作界面,基本功能如下:2.1 进入shell系统存储系统部署在/home/mdss/目录下:运行目录下的shell/executeSQL进入shell管理界面;为了增加系统操作的方便性,0.3版本在查询机上建立系统符号链接,直接运行以“mdss_”开头的相关命令,运行相关程序,具体使用如下。在任意目录下运行如下命令,进入SHELL系统,功能同上。rootYMX-SEV-0002 # mdss_shelll2.2 SHELL操作方法1. 命令:mdsshelp功能:显示使用手册: 2. 命令:mdssquit功能:退出shell;3. 命令:mdsslist功能:显示所有表空间的名字;4. 命令:mdss 功能:创建表空间命令;mdsscreate table ipinfo(id char, addr char, ip ipv4_addr , num int,time TIMESTAMP,content STORE);5. 命令:mdss show 功能:查看名为table的表的结构mdssshow ipinfo6. 命令:mdss drop 功能:删除名为table的表;mdssdrop ipinfo7. 命令:mdss 功能:执行一条插入语句:mdssinsert into ipinfo values (1,,2,20,1297927567,more and more);注意:该语法中所有数据都不加双引号。值中包含特殊字符时,要用中括号把该数据括起来;8. 命令:mdss 功能:执行一条查询语句;mdss select id, addr from ipinfo where addr=www.* and time= 20110511000000 to 20110512000000;查询某一天内addr字段中以www.开头的所有记录,显示每条记录的id与addr字段内容。9. 执行sql-like脚本的文件功能:运行一个文件名为file的查询脚本;脚本文件是根据sql-like语言写的文本文件,可用于批量数据的导入操作。10. 分批检索命令:mdss c功能:当结果集过大,会自动分批显示查询结果,每个批次默认70万条记录;11. 设置每页显示记录条数:mdssp N功能:将每页显示记录设为N条;12. 分页检索命令:mdss N功能:显示分页检索中的下一页;13. 分页检索命令:mdssj N功能:跳至第N页显示;14. 删除数据命令:mdssdel 功能:删除table表中在start_time和end_time时间段内的数据;15. 快查命令功能:对于近期数据,时间区间为5分钟,可以使用快速查找命令,查找命令以:开头;mdss:select count(*) from quicktest;3 0.3版本新增功能对于常用的几种操作方式,在系统目录下建立符号链接,快速运行相关程序。3.1 几个常用命令的符号链接为了增加系统操作的方便性,0.3版本在查询机上建立系统符号链接,直接执行相关操作命令。MDSS系统的命令是以“mdss_”开头的,具体功能如下:3.1.1 进入SHELL命令进入SHELL系统,功能同2.1 rootYMX-SEV-0002 # mdss_shelll3.1.2 检索结果文件导出命令把一条检索语句的检索结果输入到指定文件中。 rootYMX-SEV-0002 # mdss_search Usage:mdss_search SQL_CMD output_file.Example:mdss_search select * from dnsdomaindb; result3.1.3 根据文件构建检索条件并导出检索结果命令rootYMX-SEV-0002 # mdss_search_from_fileUsage: -n,-name: Assign the table name -f,-file: Assign the field and file -t,-time: Assign the time and interval -o,-output: Assign the output file一个具体的使用例子如下:rootYMX-SEV-0002 #mdss_search_from_file -n dnsdomaindb -f DOMAIN=domain.txt -t TIME=20110618190000 to 20110618200000 -o result.txt含义:表示检索表名为:dnsdomaindb;字段名为DOMAIN,字段值为domain.txt文件记录的值,多个值之间使用n分隔(换行),逻辑上是或关系;时间是20110618190000 to 20110618200000区间内;检索结果导出到result.txt中;如果domain.txt保存如下内容:d1d2相当于如下SQL-LIKE检索语句:select * from dnsdomaindb where DOMAIN=d1 or DOMAIN=d2 and TIME=20110618190000 to 20110618200000;3.2 域名分级检索功能3.2.1 域名分级定义为了支持域名分级检索,MDSS-v0.3引入域名分级检索功能。字符串中的“.”表示域名分级标示。其中,从后面数第一个点后面的字符串是第一级域名;后面数第二个点后面的字符串是第二级域名;如,“www.MP3.”第一级域名是:com;第二级域名是:;第三级域名是:MP3. ;3.2.2 MDSS中域名分级函数的使用MDSS中使用专有函数表示域名分级检索,定义描述如下:函数名称函数作用LEVEL1(字段名)取第一级域名,字符串区分大小写LEVEL1_NO(字段名)取第一级域名,字符串不区分大小写LEVEL2(字段名)取第二级域名,字符串区分大小写LEVEL2_NO(字段名)取第二级域名,字符串不区分大小写LEVEL3(字段名)取第三级域名,字符串区分大小写LEVEL3_NO(字段名)取第三级域名,字符串不区分大小写域名分级函数,可以出现在select子句中,也可以出现在group by子句中,具体示例如下:SELECT SUM(DCOUNT) AS CNT, DOMAIN FROM dnsdomaindb WHERE TYPE=A AND TIME= 20110707100000 TO 20110707110000 GROUP BY LEVEL1(DOMAIN) ORDER BY CNT DESC;含义:在dnsdomaindb表中检索时间2011-07-07:10:00:00到2011-07-07:11:00:00内,满足TYPE=A的记录,并根据第一级域名进行分组统计域名解析次数,域名字符区分大小写,结果根据域名统计次数做降序排列。4 命令行操作方法为了支持批量数据查询和查询数据自定义格式导出,MDSS具有命令行导出,导入的功能。4.1 基本功能1. 按照基本sql语句给出查询结果,将查询结果显示在终端或者存储于文件中。2. 支持从文本中读取sql语句的查询,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论