一、pom.xml
<dependency>
<groupId>impala</groupId>
<artifactId>impala-jdbc41</artifactId>
<version>2.5.41</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/ImpalaJDBC41.jar</systemPath>
</dependency>
<dependency>
<groupId>metastore</groupId>
<artifactId>hive_metastore</artifactId>
<version>1.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/hive_metastore.jar</systemPath>
</dependency>
<dependency>
<groupId>hive_service</groupId>
<artifactId>hive_service</artifactId>
<version>1.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/hive_service.jar</systemPath>
</dependency>
<dependency>
<groupId>libfb303</groupId>
<artifactId>libfb303</artifactId>
<version>0.9.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/libfb303-0.9.0.jar</systemPath>
</dependency>
<dependency>
<groupId>libthrift</groupId>
<artifactId>libthrift</artifactId>
<version>0.9.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/libthrift-0.9.0.jar</systemPath>
</dependency>
<dependency>
<groupId>ql</groupId>
<artifactId>ql</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/ql.jar</systemPath>
</dependency>
<dependency>
<groupId>tcliserviceclient</groupId>
<artifactId>tcliserviceclient</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/TCLIServiceClient.jar</systemPath>
</dependency>
<dependency>
<groupId>zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/zookeeper-3.4.6.jar</systemPath>
</dependency>
二、yml配置
可不指定用户名密码
spring:
datasource:
impala:
driver-class-name: com.cloudera.impala.jdbc41.Driver
jdbc:impala://10.1.3.114:21050/default
或
jdbc:impala://10.1.3.114:21050
三、报错解决
{
"code": 10000,
"message": "\r\n### Error querying database. Cause: java.sql.SQLException: [Simba][ImpalaJDBCDriver](500051) ERROR processing query/statement. Error Code: 0, SQL state: TStatus(statusCode:ERROR_STATUS, sqlState:HY000, errorMessage:AnalysisException: Could not resolve table reference: 'dim_dd_role'\n), Query: SELECT role_id,role_name,role_key,role_sort,status,role_object,remark,create_time,update_time,create_user,update_user,delete_flag FROM dim_dd_role \n \n WHERE (status = 1).\r\n### The error may exist in com/shop/management/mapper/DimDDRoleMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT role_id,role_name,role_key,role_sort,status,role_object,remark,create_time,update_time,create_user,update_user,delete_flag FROM dim_dd_role WHERE (status = ?)\r\n### Cause: java.sql.SQLException: [Simba][ImpalaJDBCDriver](500051) ERROR processing query/statement. Error Code: 0, SQL state: TStatus(statusCode:ERROR_STATUS, sqlState:HY000, errorMessage:AnalysisException: Could not resolve table reference: 'dim_dd_role'\n), Query: SELECT role_id,role_name,role_key,role_sort,status,role_object,remark,create_time,update_time,create_user,update_user,delete_flag FROM dim_dd_role \n \n WHERE (status = 1).\n; uncategorized SQLException; SQL state [HY000]; error code [500051]; [Simba][ImpalaJDBCDriver](500051) ERROR processing query/statement. Error Code: 0, SQL state: TStatus(statusCode:ERROR_STATUS, sqlState:HY000, errorMessage:AnalysisException: Could not resolve table reference: 'dim_dd_role'\n), Query: SELECT role_id,role_name,role_key,role_sort,status,role_object,remark,create_time,update_time,create_user,update_user,delete_flag FROM dim_dd_role \n \n WHERE (status = 1).; nested exception is java.sql.SQLException: [Simba][ImpalaJDBCDriver](500051) ERROR processing query/statement. Error Code: 0, SQL state: TStatus(statusCode:ERROR_STATUS, sqlState:HY000, errorMessage:AnalysisException: Could not resolve table reference: 'dim_dd_role'\n), Query: SELECT role_id,role_name,role_key,role_sort,status,role_object,remark,create_time,update_time,create_user,update_user,delete_flag FROM dim_dd_role \n \n WHERE (status = 1).",
"data": null,
"traceId": "7262c3aabaf0b69d"
}
使用mybatisplus提供的标准方法查询报错
dimDDRoleMapper.selectList(Wrappers.lambdaQuery(DimDDRoleEntity.class).eq(DimDDRoleEntity::getStatus, 1))
改为在mapper文件中自己写sql
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.shop.management.pojo.auth.DimDDRoleEntity;
import java.util.List;
@DS("impala")
public interface DimDDRoleMapper extends BaseMapper<DimDDRoleEntity> {
List<DimDDRoleEntity> selectList();
}
需要在表名前加上库名dim_gsdyf.dim_dd_role
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.shop.management.mapper.DimDDRoleMapper">
<select id="selectList" resultType="com.shop.management.pojo.auth.DimDDRoleEntity">
SELECT role_id,role_name,role_key,role_sort,status,role_object,remark,create_time,update_time,create_user,update_user,delete_flag
FROM dim_gsdyf.dim_dd_role WHERE (status = 1) </select>
</mapper>