Java 中如何使用 SQL 查询 TXT

关键词导读:txt Java计算txt SQL查询txt

Java不能直接使用SQL查询文本,一般常规做法:在数据库创建临时表,Java解析文本入库,再使用SQL对其查询、过滤、分组等。

但实现过程太麻烦了。主要不方便体现在:

1、Java代码写起来很长,开发环境配置也复杂,一般对人员要求较高。

2、为了获得SQL的便利性,安装数据库、创建临时表,虽然不难,却很繁琐。

3、一些临时性、突发性需求,搞起来周期长,甚至某些场景下不允许安装数据库,就很尴尬,全部用Java写,难度大。

比如要处理这么个场景:查询1996-07-23后且单笔金额大于10000的订单,部分源数据如下:

O_ORDERKEY       O_CUSTKEY        O_ORDERDATE        O_TOTALPRICE

10262   RATTC   1996-07-22       14487.0

10263   ERNSH   1996-07-23       43818.0

10264   FOLKO   2007-07-24       1101.0

10265   BLONP   1996-07-25       5528.0

10266   WARTH   1996-07-26       7719.0

10267   FRANK   1996-07-29       20858.0

10268   GROSR   1996-07-30       19887.0

10269   WHITC   1996-07-31       456.0

10270   WARTH   1996-08-01       13654.0

...

期望的结果:

 Java 中如何使用 SQL 查询 TXT

如果使用集算器 SPL 会简单很多,它对文件(txt、Excel等)直接提供了SQL式查询与计算的能力,让程序员享受绝对的便利,不再考虑这些烦心的事。比如上面问题,1行就搞定了:

 

A

1

$()select * from /workspace/orders.txt where O_ORDERDATE>=date(‘1996-07-23‘) and O_TOTALPRICE >10000

其实还有很多情况用Java计算文本、Excel不太方便,甚至关联计算、入库等需求,但用集算器SPL却很简单,感兴趣可以参考:SPL 结构化文本计算

集算器还很容易嵌入到Java应用程序中,Java如何调用SPL脚本有使用和获得它的方法。

关于集算器安装使用、获得免费授权和相关技术资料,可以参见如何使用集算器

Java 中如何使用 SQL 查询 TXT

上一篇:使用canal增量同步mysql数据库信息到ElasticSearch


下一篇:Nginx listen、server_name的配置