flink-jdbc-driver

Flink JDBC 驱动程序是一个 Java 库,使客户端能够通过 SQL 网关将 Flink SQL 发送到 Flink 集群。

首先启动:1.flink集群,随意任何集群。

2.启动flink-sql-gateway:

XML 复制代码
sql-gateway.sh start -Dsql-gateway.endpoint.rest.address=localhost

验证sql- gateway

复制代码
curl http://localhost:8083/v1/info
  1. Maven 依赖项

    Flink JDBC 驱动是一个通过 JDBC API 访问 Flink 集群的库。有关 Java 中 JDBC 的一般用法,请参见 JDBC 教程

  2. 在项目的pom.xml中添加以下依赖项,或者下载 flink-jdbc-driver-bundle-{VERSION}.jar 并将其添加到你的 Classpath 中。

    org.apache.flink flink-sql-jdbc-driver-bundle ${flink.version}
  3. 使用特定 URL 连接到 Java 代码中的 Flink SQL 网关。

  4. 执行您想要的任何语句。

java 复制代码
public class Main {
    public static void main(String[] args) throws SQLException {
        Properties properties = new Properties();
        properties.setProperty("table.exec.sink.not-null-enforcer","DROP");
        DataSource dataSource = new FlinkDataSource("jdbc:flink://ip:8083", properties);
        try (Connection connection = dataSource.getConnection()) {
            try (Statement statement = connection.createStatement()) {

                /*statement.execute("CREATE TABLE student (\n" +
                        "  id VARCHAR(255),\n" +
                        "  sid VARCHAR(255),\n" +
                        "  name VARCHAR(255),\n" +
                        "  PRIMARY KEY (id) NOT ENFORCED" +
                        ") WITH (\n" +
                        "   'connector' = 'jdbc',\n" +
                        "   'url' = 'jdbc:mysql://ip:3306/test?characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true',\n" +
                        "   'username' = 'test',\n" +
                        "   'password' = 'test@123',\n " +
                        "   'table-name' = 'student' " +
                        ")");
                statement.execute("CREATE TABLE students (\n" +
                        "  id VARCHAR(255),\n" +
                        "  sid VARCHAR(255),\n" +
                        "  name VARCHAR(255),\n" +
                        "  PRIMARY KEY (id) NOT ENFORCED" +
                        ") WITH (\n" +
                        "   'connector' = 'jdbc',\n" +
                        "   'url' = 'jdbc:mysql://ip:3306/test?characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true',\n" +
                        "   'username' = 'test',\n" +
                        "   'password' = 'test@123',\n " +
                        "   'table-name' = 'students' " +
                        ")");*/

                statement.execute("CREATE TABLE students (\n" +
                        "  name STRING,\n" +
                        "  sid BIGINT,\n" +
                        "  PRIMARY KEY (sid) NOT ENFORCED" +
                        ") WITH (\n" +
                        "   'connector' = 'paimon',\n" +
                        "   'path' = 'hdfs://ip:8072/paimon/hive/olap_mz.db/students'\n" +
                        ")");
                //statement.execute("INSERT INTO students VALUES ('1', 's1', 'Hi'), ('2', 's2','Hello')");
                try (ResultSet rs = statement.executeQuery("SELECT st.sid,count(st.sid) as coun FROM students st group by st.sid")) {
                    while (rs.next()) {
                        System.out.println(rs.getLong(1) +","+rs.getLong(2) );
                    }
                    statement.close();
                }
                connection.close();

            }

        }


    }
}

注释的是mysql的,运行的是paimon的。

相关推荐
代码方舟25 分钟前
O2O二手车交易平台B端车商管理后台:基于天远车信盟出险构建自动化车况评估网关
java·运维·人工智能·自动化
爱学堂IT分享27 分钟前
图灵Java互联网架构师六期
java·开发语言
坐吃山猪29 分钟前
【多线程】Semaphore使用
java·数据库·oracle·多线程
DO_Community1 小时前
AMD旗舰GPU仅需4美元每小时,DigitalOcean上线Spot GPU实例
大数据·人工智能·agent·ai编程
秋名RG1 小时前
Java 核心特性一览
java·开发语言
霸道流氓气质1 小时前
Spring AI 技术细节:RAG QuestionAnswerAdvisor 设计与实现
java·人工智能·spring
有书Show1 小时前
GEO发稿平台哪家好:2026生成式引擎优化新规下的平台评估维度
大数据·人工智能
斑马1391 小时前
Linux软件编程学习笔记(十二)——TCP并发服务器模型
java·服务器·网络
冬栈程序设计1 小时前
Springboot宿舍管理系统【670099】 -附源码(开箱即用)
java·毕业设计·springboot·课程设计·程序设计·大作业
2601_962284502 小时前
北京Java全栈开发培训 Web前端开发 软件测试就业培训班
java·软件测试·web前端·全栈开发·就业培训