• 大数据-玩转数据-Flink Catalog


    阿里实时计算

    一、Catalog

    Catalog 提供了元数据信息,例如数据库、表、分区、视图以及数据库或其他外部系统中存储的函数和信息。
    数据处理最关键的方面之一是管理元数据。 元数据可以是临时的,例如临时表、或者通过 TableEnvironment 注册的 UDF。 元数据也可以是持久化的,例如 Hive Metastore 中的元数据。Catalog 提供了一个统一的API,用于管理元数据,并使其可以从 Table API 和 SQL 查询语句中来访问。前面用到Connector其实就是在使用Catalog

    二、Catalog类型

    GenericInMemoryCatalog
    GenericInMemoryCatalog 是基于内存实现的 Catalog,所有元数据只在 session 的生命周期内可用。
    JdbcCatalog
    JdbcCatalog 使得用户可以将 Flink 通过 JDBC 协议连接到关系数据库。PostgresCatalog 是当前实现的唯一一种 JDBC Catalog。
    HiveCatalog
    HiveCatalog 有两个用途:作为原生 Flink 元数据的持久化存储,以及作为读写现有 Hive 元数据的接口。 Flink 的 Hive 文档 提供了有关设置 HiveCatalog 以及访问现有 Hive 元数据的详细信息。

    导入需要的依赖

    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-connector-hive_${scala.binary.version}</artifactId>
        <version>${flink.version}</version>
    </dependency>
    <!-- Hive Dependency -->
    <dependency>
        <groupId>org.apache.hive</groupId>
        <artifactId>hive-exec</artifactId>
        <version>3.1.2</version>
    </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在hadoop100启动hive元数据

    nohup hive --service metastore >/dev/null 2>&1 &
    
    • 1

    连接 Hive

    StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
    env.setParallelism(1);
    StreamTableEnvironment tEnv = StreamTableEnvironment.create(env);
    
    String name            = "myhive";  // Catalog 名字
    String defaultDatabase = "flink_test"; // 默认数据库
    String hiveConfDir     = "c:/conf"; // hive配置文件的目录. 需要把hive-site.xml添加到该目录
    
    // 1. 创建HiveCatalog
    HiveCatalog hive = new HiveCatalog(name, defaultDatabase, hiveConfDir);
    // 2. 注册HiveCatalog
    tEnv.registerCatalog(name, hive);
    // 3. 把 HiveCatalog: myhive 作为当前session的catalog
    tEnv.useCatalog(name);
    tEnv.useDatabase("flink_test");
    tEnv.sqlQuery("select * from stu").execute().print();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
  • 相关阅读:
    python之路~~~~~正则表达式绕waf案例分析
    如何使用HTML制作个人网站( web期末大作业)
    SpringBoot 整合Thymeleaf教程及使用
    深入理解 Python 虚拟机:协程初探——不过是生成器而已
    Unity开发过程中的一些小知识点
    STM32F407ZGT6|定时器中断
    Python字典,元组与集合
    SQLI手动注入和python sqlmap代码注入
    如何批量查询搜狗收录?提升搜狗收录8个方法介绍
    如何在 Windows 中安装 PostgreSQL?
  • 原文地址:https://blog.csdn.net/s_unbo/article/details/133471068