配置Hologres Catalog后,您就可以在Flink全托管控制台直接读取Hologres元数据,不用再手动注册Hologres表,可以提高作业开发的效率且保证数据的正确性。本文为您介绍如何在Flink全托管模式下配置、查看及删除Hologres Catalog。

背景信息

Catalog提供了元数据信息,例如数据库、表、分区、视图以及数据库或其他外部系统中存储的函数和信息。详情请参见Catalogs

本文从以下方面为您介绍如何管理Hologres Catalog:

使用限制

  • 仅Flink 1.13及以上版本支持配置Hologres Catalog。
  • 不支持修改Catalog DDL。

配置Hologres Catalog

  1. 登录实时计算管理控制台
  2. Flink全托管页签,单击目标工作空间操作列下的控制台
  3. 在左侧导航栏,单击作业开发
  4. 在页面左上角,单击新建,文件类型选择SQL。
  5. 在文本编辑区域,输入配置Hologres Catalog的命令。
    CREATE CATALOG <catalogname> WITH (
      'type' = 'hologres',
      'endpoint' = '<endpoint>', 
      'username' = '<AccessKey>',
      'password' = '<AccessSecret>',
      'dbname' = '<dbname>'
    );
    catalogname为Hologres Catalog名称。仅支持小写字母a-z和数字0-9,不含大写字母、中划线(-)、下划线(_)等特殊字符。WITH参数详情如下表所示。
    参数 说明 是否必填
    type 类型,固定值为hologres。
    endpoint Hologres的Endpoint地址。

    详情请参见实例配置

    username 阿里云账号的AccessKey。
    password 阿里云账号的AccessSecret。
    dbname 您访问Hologres的默认数据库名称。
    ignore-non-persisted-options 在使用Hologres Catalog时创建带有不可持久化选项的表时,是否忽略非可持久化选项。参数取值如下:
    • true(默认值):可以成功创建出表,而忽略所有非可持久化选项。
    • false:会报创建表失败的错误。
    说明 Hologres Catalog表选项的可持久化意味着当再次从Catalog读取该表的相关信息时,可以重新获取您在DDL中定义的一致的信息。目前仅支持endpoint、username、password和dbname可持久化选项。
  6. 单击执行
    执行完会提示Query has been executed。如果您需要删除Hologres Catalog,详情请参见删除Hologres Catalog
  7. 在左侧,单击Schemas页签。
  8. 单击刷新图标,刷新查看新建的Hologres Catalog。
    刷新按钮位置

查看Hologres Catalog

Hologres Catalog配置成功后,您可以通过以下步骤查看Hologres元数据。

  1. 登录实时计算管理控制台
  2. Flink全托管页签,单击目标工作空间操作列下的控制台
  3. 在左侧导航栏,单击作业开发
  4. 单击Schemas页签。
  5. 在顶部菜单栏下拉框中,切换到目标Hologres Catalog名称,本文以holo为例。
    holo
  6. 查看不同Hologres Catalog下的数据库、表和函数信息。
    表名
    说明 如果Schema为public时,则表名称前面就省略了Schema的前缀,即直接显示tableName。

使用Hologres Catalog

  • 创建Hologres表。
    • 使用USE CATALOG HoloName命令直接引用Hologres数据服务。
      USE CATALOG ${catalog_name};
      CREATE TABLE `${db_name}`.`${schema_name.table_name}`(
        ...
       ) WITH (
         'connector' = 'hologres'
       );
      USE语法详情请参见USE语句
    • DDL语句中直接引用Hologres数据服务信息。
      CREATE TABLE `${catalog_name}`.`${db_name}`.`${schema_name.table_name}` (
        ...
      ) WITH (
        'connector' = 'hologres'
      );
      说明
  • 从Hologres表中读取数据。
    INSERT INTO ${other_sink_table}
    SELECT ...
    FROM `${catalog_name}`.`${db_name}`.`${schema_name.table_name}`
  • 写入结果数据至Hologres表。
    INSERT INTO `${catalog_name}`.`${db_name}`.`${schema_name.table_name}`
    SELECT ... 
    FROM ${other_source_table}
说明
  • 如果Schema为public时,在填写${schema_name.table_name}时,可以省略模式名称的前缀,直接填写tableName,即${table_name}。
  • 通过Hologres Catalog读取出来的表支持消费update数据,读取出来的Hologres表的ignoredelete属性自动被设置为了true,mutatetype属性被自动设置为了insertorupdate。ignoredelete和mutatetype属性含义详情请参见宽表Merge和局部更新功能

删除Hologres Catalog

  1. 登录实时计算管理控制台
  2. Flink全托管页签,单击目标工作空间操作列下的控制台
  3. 在左侧导航栏,单击作业开发
  4. 在页面左上角,单击新建,文件类型选择SQL。
  5. 在文本编辑区域,输入以下命令。
    DROP CATALOG ${catalog_name}
    其中,catalog_name为您要删除的在Flink全托管开发控制台上显示的Hologres Catalog名称。
    说明 删除Hologres Catalog不会影响已运行的作业,但对未上线或者作业需要暂停恢复的作业,均产生影响,请您谨慎操作。
  6. 单击执行
  7. 在左侧,单击Schemas页签。
  8. 单击刷新图标,刷新查看新建的Hologres Catalog是否已被删除。
    刷新按钮位置