Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

在规格文件上直接执行SQL,无数据库依赖,基于Java8的流计算和Lamdba表达式。

Notifications You must be signed in to change notification settings

mircode/sql-file

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

3 Commits

Repository files navigation

文件SQL

一、简介

主要用于日常格式化文本分析,包括分隔符文件,JSON文件,以及分隔符JSON混排文件。项目没有额外Jar包依赖,代码简洁,功能强大。可作为日常分析小工具使用。支持多种形式的数据采集格式,如JSON,分隔符,正则分隔,自定JavaScript分隔,自定Format.class分隔等。

演示

二、代码结构

代码结构

三、目录介绍

目录结构

四、使用说明

测试文件内容如下:

使用说明

五、创建表

## 分隔符
create table log.txt (id,name,ip,segment,num) fmt |;
## JSON格式
create table log.json (id,name,ip,segment,num) fmt json;

创建表

六、更新表

## Java类提取
update table log.txt (id,name,ip,segment,num) fmt format.class;
desc log.txt;
select * from log.txt;

更改表

## JavaScript脚本提取
update table log.txt (id,name,ip,segment,num) fmt format.js;
desc log.txt;
select * from log.txt;

更改表

## 正则提取
update table log.txt (id,name,ip,segment,num) fmt ~(.*?)|(.*?)|(.*?)|(.*?)|(.*);
desc log.txt more;
select * from log.txt;

更改表

七、简单查询

# 简单查询
select name,ip from log.txt;
select name,ip from log.json;
select name,ip from log.{txt,json}; 

简单查询

# JSON提取
select name,json_path(segment,$.service) from log.txt;
select name,json_path(segment,$.service) from log.json;
select name,json_path(segment,$.service) from log.{json,txt};

简单查询

八、条件查询

select * from log.txt where name='taobao' or name='ctrip';
select * from log.json where name='taobao' or name='ctrip';
select * from log.{txt,json} where name='taobao' or name='ctrip';

条件查询

九、聚合查询

select name,sum(num) as total,avg(num),max(num),min(num),count(num) from log.txt group by name;
select name,sum(num) as total,avg(num),max(num),min(num),count(num) from log.json group by name;
select name,sum(num) as total,avg(num),max(num),min(num),count(num) from log.{txt,json} group by name;

聚合查询

十、保存结果

select name,ip,num from log.txt into tmp.tb;
select name,ip,num from tmp.tb where name='taobao';

保存结构

十一、删除表

drop table log.txt;
drop table log.json;

About

在规格文件上直接执行SQL,无数据库依赖,基于Java8的流计算和Lamdba表达式。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

Languages

AltStyle によって変換されたページ (->オリジナル) /