多个异构数据库如何关联查询[亲测有效]

多个异构数据库如何关联查询[亲测有效]DBlink 只适合同种数据库关联,难以关联异构库。其他方式不是改变部署架构,就是增加开发工作量,实施起来困难很多。 开发难度小的方式貌似是 ETL,把异构库变成同构库,就可以用熟悉的方式写关联 S…

多个异构数据库如何关联查询

DBlink 只适合同种数据库关联,难以关联异构库。其他方式不是改变部署架构,就是增加开发工作量,实施起来困难很多。

开发难度小的方式貌似是 ETL,把异构库变成同构库,就可以用熟悉的方式写关联 SQL。但这种方式需要改变原来的部署架构,硬加一个 ETL 层和一个数据集市层,一般还得加个管理员去维护定时调度,或者额外写代码判断“数据是否 ETL 完毕”。更大的问题是,这种方式需要把实时计算变成延迟计算,甲方爸爸知道了恐怕会拍桌子。

彻底的解决方案貌似是微服务,把高耦合的 ODBC/JDBC 接口变成低耦合的 http 接口,这样就可以用统一的 json 或 xml 去传输数据。但这种方式要针对每张表开发数据服务接口,要针对每种算法开发客户端接口,还要用陌生的框架和类库,要解决数据库外的权限安全……工作量顶天了。而且,具体的运算还得硬写。

较现实的方法还可以用高级语言比如 JAVA,先用 SQL 把异构数据取过来,再用 arraylist 转成 2 个类,接下来就可以进行 list 之间的 join 了。但这件事等于拿 JAVA 手工替代 SQL,简单的合并还凑合,关联查询就难写了,况且还有子查询、关联后分组汇总等实用算法。总之,JAVA 缺乏结构化类库,替代 SQL 的成本非常高。

如果使用集算器来实现异构库关联,则可以保持原部署架构,开发工作量也不大。首先,SPL 可用统一的数据结构访问任意的数据库表,这就解决异构的问题。其次,SPL 具有丰富的结构化类库,很容易实现关联查询以及后续的实用算法,经常比 SQL 还简单。最后,集算器提供了 JDBCODBC 接口,程序员只需引入驱动程序,就可以在原来的代码上实现异构库关联。

比如 java 通过集算器的 JDBC 驱动,访问 Oracle 的 orders 表,并关联 MySQL 的 customer 表,最后对关联结果分组汇总:

con=DriverManager.getConnection(“jdbc:esproc:local://”);

ResultSet rs = con.executeQuery(“orcl.query(/“select * from orders/”).join(cust,my.query(/“select * from customer/”):custid,city).groups(city;sum(amount))”);

关于多数据库关联,可参 分库后的统计查询

关于集算器 JDBC 嵌入 JAVA,可参 Java 如何调用 SPL 脚本

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8194.html

(0)
上一篇 2023-03-05
下一篇 2023-03-06

相关推荐

  • Python实例化定义:快速创建可重用的对象

    Python实例化定义:快速创建可重用的对象在Python中,我们可以直接使用类创建对象来实现某种功能。当我们需要创建大量类似的对象时,实例化定义便可以很好地帮助我们快速创建可重用的对象。

    2024-02-06
    88
  • Python控制小数点位数的方法

    Python控制小数点位数的方法在日常编程中,我们有时需要对输出的小数点位数进行控制。Python中提供了多种方法来实现此功能。这篇文章将从多个方面介绍Python控制小数点位数的方法,以便更好地掌握这个重要的编程技巧。

    2024-06-13
    60
  • Python中的次方运算

    Python中的次方运算Python是一种高级编程语言,是学习编程的首选语言之一。在Python中进行次方运算非常简单且灵活,而且Python内置了强大的数学库,也可以通过第三方库实现更多高级数学运算。本文将介绍如何在Python中进行次方运算及其相关的技巧和应用。

    2024-06-29
    44
  • docker下MySQL修改配置[亲测有效]

    docker下MySQL修改配置[亲测有效]概述 连接docker中的mysql终端(docker连接终端) 修改mysql配置 (vim使用和安装) mysql大小写简单介绍 (库名/表面 字段/内容 大小写使用) docker下mysql终

    2023-03-08
    150
  • 用Python计算100的平方根

    用Python计算100的平方根Python中可以通过调用math模块中的sqrt()函数来计算一个数的平方根。在上面的代码中,我们导入了math模块,并使用sqrt()方法对100进行计算,最终打印出结果为10。

    2024-04-11
    77
  • Python add函数

    Python add函数Python是世界上使用最广泛的编程语言之一,由于其优秀的性能和易用性,它被广泛用于数据分析、机器学习以及Web开发领域。在Python编程中,常常需要对数字进行加减运算,这时就需要使用Python的add函数。

    2024-07-11
    44
  • 使用Python的collections.deque优化代码效率

    使用Python的collections.deque优化代码效率a href=”https://beian.miit.gov.cn/”苏ICP备号-1/a Copyright www.python100.com .Some Rights Reserved.

    2024-06-10
    51
  • Python实现list转string的方法

    Python实现list转string的方法a href=”https://beian.miit.gov.cn/”苏ICP备号-1/a Copyright www.python100.com .Some Rights Reserved.

    2024-08-01
    28

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注