热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用方解石将MongoDB表与MySQL表联接

我在MongoDB中有Employee表,其中有employee_id,名称列。我在MySQL中有另一个表Salary,带有e

我在MongoDB中有Employee表,其中有employee_id,名称列。
我在MySQL中有另一个表Salary,带有emp_id,金额列。
我必须使用方解石适配器在2个表之间进行联接。

请建议如何完成此操作。

编辑:我尝试过的代码和异常。

型号:

{
"version":"1.0","defaultSchema":"spark_sql","schemas":[
{
"type":"jdbc","name":"spark_sql","jdbcUser":"root","jdbcPassword":"root","jdbcUrl":"jdbc:mysql://localhost/spark_sql","jdbcSchema":"spark_sql"
},{
"name":"employee_salary","type":"custom","factory":"org.apache.calcite.adapter.mongodb.MongoSchemaFactory","operand":{
"host":"localhost:27017","database":"employee_salary"
}
},{
"name":"syncnicia","database":"syncnicia"
}
},{
"name":"subodh34","factory":"com.syncnicia.testbais.excel.ExcelSchemaFactory","operand":{
"directory":"sheets/"
}
},{
"type":"jdbc","name":"SQL_Schema","jdbcUser":"admin","jdbcPassword":"admin","jdbcUrl":"jdbc:sqlserver://192.168.0.13","jdbcSchema":"SQL_Schema"
}
]
}

Java:

Connection cOnnection= DriverManager.getconnection("jdbc:calcite:model=src/main/resources/model.json");
CalciteConnection calciteCOnnection= connection.unwrap(CalciteConnection.class);
Statement statement7 = calciteConnection.createStatement();
ResultSet resultset7 = statement7.executeQuery("SELECT * FROM \"spark_sql\".\"employee\" as e JOIN \"employee_salary\".\"salary\" as es ON e.\"emp_id\" = es.\"_MAP['employee_id']\"");

例外:

java.sql.SQLException: Error while executing SQL "SELECT 1 FROM "employee_salary"."salary" as "s" JOIN "employee_salary"."employee" as "e" ON "e"."_MAP['emp_id']" = "s"."_MAP['employee_id']"": From line 1,column 97 to line 1,column 112: Column '_MAP['emp_id']' not found in table 'e'
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:163)
at org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:227)
at com.syncnicia.testbais.main.EntryClass.byModel(EntryClass.java:95)
at com.syncnicia.testbais.main.EntryClass.main(EntryClass.java:27)
Caused by: org.apache.calcite.runtime.CalciteContextException: From line 1,column 112: Column '_MAP['emp_id']' not found in table 'e'





推荐阅读
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • MongoDB用户验证auth的权限设置及角色说明
    本文介绍了MongoDB用户验证auth的权限设置,包括readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase、cluster相关的权限以及root权限等角色的说明和使用方法。 ... [详细]
  • 本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ... [详细]
  • step1.为mongodb添加admin管理员root@12.154.29.163:~#mongoMongoDBshellversionv3.4.2connectingto:mo ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文讨论了在使用PHP cURL发送POST请求时,请求体在node.js中没有定义的问题。作者尝试了多种解决方案,但仍然无法解决该问题。同时提供了当前PHP代码示例。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 本文提供了关于数据库设计的建议和注意事项,包括字段类型选择、命名规则、日期的加入、索引的使用、主键的选择、NULL处理、网络带宽消耗的减少、事务粒度的控制等方面的建议。同时还介绍了使用Window Functions进行数据处理的方法。通过遵循这些建议,可以提高数据库的性能和可维护性。 ... [详细]
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • 开发笔记:(002)spring容器中bean初始化销毁时执行的方法及其3种实现方式
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了(002)spring容器中bean初始化销毁时执行的方法及其3种实现方式相关的知识,希望对你有一定的参考价值。 ... [详细]
  • http头_http头部注入
    1、http头部注入分析1、原理 ... [详细]
author-avatar
手机用户2502911805
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有