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 中。

    <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-sql-jdbc-driver-bundle</artifactId> <version>${flink.version}</version> </dependency>
  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的。

相关推荐
慕y2741 分钟前
Java学习第十五部分——MyBatis
java·学习·mybatis
A__tao4 分钟前
SQL 转 Java 实体类工具
java·数据库·sql
喝可乐的布偶猫9 分钟前
Java类变量(静态变量)
java·开发语言·jvm
TDengine (老段)32 分钟前
TDengine STMT2 API 使用指南
java·大数据·物联网·时序数据库·iot·tdengine·涛思数据
喝可乐的布偶猫43 分钟前
韩顺平之第九章综合练习-----------房屋出租管理系统
java·开发语言·ide·eclipse
叁沐1 小时前
MySQL 06 全局锁和表锁:给表加个字段怎么有这么多阻碍?
mysql
Code季风1 小时前
深入理解微服务中的服务注册与发现(Consul)
java·运维·微服务·zookeeper·架构·go·consul
光军oi1 小时前
java微服务(Springboot篇)——————IDEA搭建第一个Springboot入门项目
java·spring boot·微服务
用户Taobaoapi20142 小时前
母婴用品社媒种草效果量化:淘宝详情API+私域转化追踪案例
大数据·数据挖掘·数据分析
future14122 小时前
C#每日学习日记
java·学习·c#