返回 导航

SpringBoot / Cloud

hangge.com

SpringBoot - 使用hive-jdbc操作Impala教程(附样例)

作者:hangge | 2024-10-30 08:30
    如果想要在某一个 Web 项目中提供基于 Impala 的即席查询功能,那么需要使用 JDBC 代码的方式操作 Impala。本文演示如何在 SpirngBoot 项目中集成 hive-jdbc 来操作 Impala

1,准备工作

Spring Boot 项目的 pom.xml 文件中添加 hive-jdbc 依赖:
<!-- Hive JDBC 依赖 -->
<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-jdbc</artifactId>
    <version>3.1.2</version>
</dependency>

2,编写代码

我们便写如下测试代码,利用 JDBC 操作 Impala 进行表的创建、数据插入、以及数据查询操作:
@RestController
public class HelloController {
    @GetMapping("/test")
    public void test() throws Exception {
        //指定 jdbcurl 链接,需要连接到 impalad 服务
        String jdbcUrl = "jdbc:hive2://192.168.121.130:21050/;auth=noSasl";
        //获取链接
        Connection conn = DriverManager.getConnection(jdbcUrl);

        //获取 Statement
        Statement stmt = conn.createStatement();

        // 创建表
        String createTableSQL = "CREATE TABLE IF NOT EXISTS t3 (id INT, name STRING)";
        stmt.executeUpdate(createTableSQL);

        // 插入测试数据
        String insertDataSQL = "INSERT INTO t3 (id, name) " +
                "VALUES (1, 'hangge'), (2, 'lilei'), (3, 'bob')";
        stmt.executeUpdate(insertDataSQL);

        // 查询数据
        String querySQL = "SELECT * FROM t3";
        ResultSet res = stmt.executeQuery(querySQL);

        // 循环读取结果
        while (res.next()) {
            System.out.println(res.getInt("id") + "\t" + res.getString("name"));
        }
    }
}

3,运行测试

(1)启动服务,首先访问如下接口:
http://localhost:8080/test

(2)控制台输出如下内容,说明连接并操作 Impala 成功:
评论

全部评论(0)

回到顶部