java跨库join方案_集算器协助java处理多样性数据源之跨库关联
Java的数据计算类库RowSet提供了JoinRowSet和FilteredRowSet类,可以进行跨库的关联计算,但是有很多局限。首先,JoinRowSet只支持inner
join,不支持outter join。其次,db2、mysql和hsql经过测试是可以使用JoinRowSet的,但是oracle
11g和其他数据库关联的的时候虽然不报错,但是结果集为空。而oracle11g的两个数据库用户跨库做join,使用JoinRowSet可以得到正确的结果。所以说不同数据库厂家提供的Jdbc实现可能会影响上述方法的结果。第三,就是编程还是有点复杂。
集算器esProc能很好配合java完成跨库连接。集算器支持各种数据库,包括:oracle、db2、mysql、sqlserver、sybase、postgresql等,均可完成多数据混合的inner
join和outter
join等各种跨库关联运算。下面我们通过例子来看一下具体作法:要将db2中的sales表和mysql数据库中的employee表通过sale.sellerid和employee.eid关联,过滤出state=”California”的所有sales和employee数据。例子虽然是db2和mysql,其他数据库的写法也是类似的。
Sales表的结构和数据如下:
Employee表的结构和数据如下:
实现的思路是:用Java程序调用集算器脚本,连接多个数据库实现关联和过滤计算后将结果以ResultSet的方式返回给Java程序。
esProc代码如下:
A1:连接预先配置好的db2数据源。
A2:连接预先配置好的mysql数据源。实际上对于oracle等其他数据库也同样支持。
A3、A4:分别从db2和mysql中读取sales序表和employee序表。esProc的集成开发环境可以直观的显示出导入的数据,如上图右边部分。
A5:使用集算器的对象引用机制,将sales序表和employee序表通过sellerid=eid关联。
A6:按照state="California"过滤序表。
A7:生成一个新的序表,得到需要的字段。
A8:返回给集算器程序的调用者。
在Java程序中使用esProc
JDBC调用这段程序获得结果的代码如下:(将上述esProc程序保存为test.dfx):
//建立esProcjdbc连接
Class.forName("com.esproc.jdbc.InternalDriver");
con=
DriverManager.getConnection("jdbc:esproc:local://");
//调用esProc程序(存储过程),其中test是dfx的文件名
com.esproc.jdbc.InternalCStatement st;
st
=(com.esproc.jdbc.InternalCStatement)con.prepareCall("call
test()");
//执行esProc存储过程
st.execute();
//获取结果集
ResultSet set = st.getResultSet();
java跨库join方案_集算器协助java处理多样性数据源之跨库关联相关推荐
- 集算器协助Java处理结构化文本之条件过滤
直接用Java实现文本文件中数据按条件过滤会有如下的麻烦: 1.文件不是数据库,不能用SQL访问.当过滤条件变化时需要改写代码.如果要实现象SQL那样灵活的条件过滤,则需要自己实现动态表达式解析和求值 ...
- 集算器协助SQL实现非等值分组
SQL通常只能按源表字段进行分组,如果分组依据来自另一张表.外部参数.条件列表,用SQL就很繁琐.有时分组依据需要动态生成,这些往往要借助高级语言实现.有时分组依据和源表不完全对应(或区间没有交集), ...
- cookie追加数据_集算器 SPL 抓取网页数据
[摘要] 集算器 SPL 支持抓取网页数据,根据抓取定义规则,可将网页数据下载到在本地进行统计分析.具体定义规则要求.使用详细情况,请前往乾学院:集算器 SPL 抓取网页数据! 网站上的数据源是我们进 ...
- 集算器协助MongoDB计算之交叉汇总
MongoDB实现交叉汇总比较困难,如果将数据取出,用Java等高级语言来汇总的话,也相当复杂.因此,可以考虑用集算器esProc辅助MongoDB完成交叉汇总.下面我们通过一个例子来看一下具体做法. ...
- java漏斗代码_集算示例:10 行代码解决漏斗转换计算
销售过程是一个多环节的过程,哪个步骤有了过大瑕疵,都会导致业绩急剧下滑.而诊断出哪个步骤有瑕疵,除了无形的经验,还有量化的诊断方式,就是今天要讨论的主角:转化漏斗模型. 示例数据 为了详细讨论这个漏斗 ...
- 集算器并行处理大文本文件的示例
集算器可以方便地用并行方式处理大文本文件,下面通过一个例子来说明使用方法. 假设有个一千万条销售记录的文本文件sales.txt,其主要字段是SellerID(销售员).OrderDate(订单日期) ...
- 集算器入门之安装与基本使用
集算器是一款程序化数据运算工具,它能够执行各类数据分析与结构化计算,也可以自由访问数据库,完成在线数据分析. 1.集算器的安装 在下面的官方网站可以下载集算器的安装包: http://www.raqs ...
- 润乾集算器与帆软报表集成 (直接通过 jdbc,类 DB 存储过程方式调用)
集算器概述 集算器作为一种大数据计算工具,不仅在润乾产品体系中能发挥它的巨大作用,在其他绝大部分数据处理.数据计算领域的项目.产品中,也都有他助力计算的身影.比如传统的报表工具,报表项目中,80% 的 ...
- oracle测试报告模板,Oracle与集算器对照测试报告
1.测试目的 针对相同的硬件环境和计算任务,对比Oracle和集算器的性能差异,为客户选型提供参考. 2.硬件环境 设备数量:1台 CPU:16核Intel(R) Xeon(R) CPU E5620 ...
最新文章
- Android程序员的技术要求和学习路线
- Ganglia 应用实践
- 【操作】vue-markdown使用
- go学习笔记-标准库
- vim 显示行号_Vim给文件加行号,这通惊为天人的操作没sei了!文末天书慎点
- masked_fill【将mask中值为True的位置对应的待填充的张量设置为value值】
- 售前工程师的成长---一个老员工的经验之谈(5)
- 送你两个神器,关系数据库数据入湖轻松应对
- java http soap_在Spring中发布SOAP HTTP Webservice - Java杂家 - Blo...
- Linux下安装配置PHP环境(下)---PHP
- android 广播的权限,Android Broadcast 和 BroadcastReceiver的权限限制方式
- memcache的安装,配置和使用
- matlab 积分函数曲线,matlab数值积分函数
- 用数据分析的手段,看2019年CSDN博客之星总评选
- i79750h和i511400h哪个好
- Backtrader量化平台教程(三)Indicator
- VVC快速仿射运动补偿
- 在Win32程序中创建OpenGL渲染环境
- mcnpf5输出结果_MCNP学习笔记-计数卡F6
- 最新版CATIA,让您快速创造完整高级机械项目
热门文章
- 波司登,除了羽绒服还是羽绒服
- 迎来“进化”风口的电竞,能否在未来站上传统体育的肩膀?
- 新东方财报背后:增收不增利之下,“下沉”“上线”能有坦途?
- cmd ibm服务器型号,ibm gpfs
- [JDBC] 获取数据库连接方式
- thinkphp scws mysql_thinkphp buildHtml 函数实现网站静态化
- 12道Python基础字符编码数据类型练习题
- Python3NumPy的常用函数
- Python 下JSON的两种编解码方式实例解析
- js ajax上传文件到服务器,使用ajax上传并预览图片后传到服务器上