Flink个人学习整理-Join和Hive Catalog篇(十五)

本文介绍了Flink SQL中如何进行Join操作,并详细讲解了状态管理,包括默认状态保留时间和如何设置状态保存时间。同时,展示了如何使用HiveCatalog进行Hive数据的操作,如展示Hive中的表格。这些内容对于理解和应用Flink与Hive的集成具有实际指导意义。
摘要由CSDN通过智能技术生成

Flink个人学习整理-Join和Hive Catalog篇(十五)

Flink Join

FlinkSQL中的状态永久保存 默认:PT0S 永久保存

public class FlinkSQL06_Join {
    public static void main(String[] args) throws Exception {
        //  获取运行时环境
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        env.setParallelism(1);
        StreamTableEnvironment tableEnvironment = StreamTableEnvironment.create(env);

        //  默认FlinkSQL中的状态永久保存 PT0S
        tableEnvironment.getConfig().getIdleStateRetention();

        //  设置 FlinkSQL中的状态保存10S --(数据空闲10S)
       tableEnvironment.getConfig().setIdleStateRetention(Duration.ofSeconds(10));

        //  TableA
        SingleOutputStreamOperator<TableA> aDS = env.socketTextStream("localhost", 9999)
                .map(line -> {
                    String[] strings = line.split(",");
                    return new TableA(strings[0], strings[1]);
                });

        //  TableB
        SingleOutputStreamOperator<TableB> bDS = env.socketTextStream("localhost", 9998)
                .map(line -> {
                    String[] strings = line.split(",");
                    return new TableB(strings[0],Integer.parseInt(strings[1]));
                });

        //  将流数据转换为表,并创建表名
        tableEnvironment.createTemporaryView("tableA",aDS);
        tableEnvironment.createTemporaryView("tableB",bDS);

        //  双流Join
        tableEnvironment.sqlQuery(" select * from tableA a join tableB b on a.id = b.id")
                .execute()
                .print();

        env.execute();

    }
}

Hive Catalog

public class FlinkSQL01_Catalog {
    public static void main(String[] args) throws Exception {

        //  获取运行时环境
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        env.setParallelism(1);
        StreamTableEnvironment tableEnvironment = StreamTableEnvironment.create(env);

        //  创建HiveCatalog
        //  名称 - 库名 - 配置信息路径
        HiveCatalog hiveCatalog = new HiveCatalog("myclusterHive", "default", "input");

        //  注册Catalog
        tableEnvironment.registerCatalog("myclusterHive",hiveCatalog);

        //  使用Catalog
        tableEnvironment.useCatalog("myclusterHive");

        //  执行SQL,操作Hive数据
        tableEnvironment.executeSql("show tables")
                .print();

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值