创建Hologres外部表(映射到OSS)

Hologres外部表允许您访问存储在外部数据源(OSS)中的数据。外部表的创建通常依赖于已经设置好的外部服务器(Foreign Server),本文为您介绍如何使用HoloWeb可视化操作外部表,并进行数据预览。

前提条件

  • 实例已创建Foreign Server,详情请参见创建Foreign Server

  • Foreign Server的DLF Catalog中已存在数据库和数据表,创建数据库和数据表的操作请参见元数据管理

使用限制

Hologres不支持跨地域查询外部表数据。

创建外部表

  1. 登录Hologres管理控制台

  2. 在顶部菜单栏左侧,选择相应的地域。

  3. 在左侧导航栏单击前往HoloWeb,进入HoloWeb开发页面。

  4. 在HoloWeb顶部菜单栏单击元数据管理 > OSS数据湖加速 > 创建外部表image

    您可根据需要选择加速方式为整库加速部分加速单表加速,参数说明如下:

    整库加速

    类别

    参数名

    描述

    加速方式

    整库加速

    将DLF指定数据库下的表全量创建为Hologres外部表。

    DLF数据源

    Server Name

    已创建的Foreign Server,用于指定外部数据源的连接信息。

    DB Name

    Foreign Server中指定DLF Catalog下的数据库名称。

    目标位置

    Holo Schema

    默认为public,可在下拉列表中选择有权限的其他Schema。

    高级选项

    表名冲突

    创建表时,如果数据库中已存在当前创建的表名称,您可以根据需要选择如下处理方式:

    • 忽略,继续创建其他表:忽略当前创建的表,继续创建其他表。

    • 更新,修改同名表:更新已有表的数据。

    • 报错,不再重复创建:产生报错,不再重复创建。

    数据类型不支持

    创建表时,如果存在不支持的数据类型,您可根据需要选择如下处理方式:

    • 报错,导入失败:产生报错,数据导入失败。

    • 忽略,跳过不支持字段所在表:忽略不支持字段所在的表,继续导入数据。

    部分加速

    类别

    参数名

    描述

    加速方式

    部分加速

    支持选择部分表来创建外部表,可通过表名模糊搜索。

    DLF数据源

    Server Name

    已创建的Foreign Server,用于指定外部数据源的连接信息。

    DB Name

    Foreign Server中指定DLF Catalog下的数据库名称。

    目标位置

    Holo Schema

    默认为public,可在下拉列表中选择有权限的其他Schema。

    高级选项

    表名冲突

    创建表时,如果数据库中已存在当前创建的表名称,您可以根据需要选择如下处理方式:

    • 忽略,继续创建其他表:忽略当前创建的表,继续创建其他表。

    • 更新,修改同名表:更新已有表的数据。

    • 报错,不再重复创建:产生报错,不再重复创建。

    数据类型不支持

    创建表时,如果存在不支持的数据类型,您可根据需要选择如下处理方式:

    • 报错,导入失败:产生报错,数据导入失败。

    • 忽略,跳过不支持字段所在表:忽略不支持字段所在的表,继续导入数据。

    搜索

    通过表名模糊搜索目标表进行勾选。

    单表加速

    类别

    参数名

    描述

    加速方式

    单表加速

    给指定的某一张表创建Hologres外部表。

    DLF数据源

    Server Name

    已创建的Foreign Server,用于指定外部数据源的连接信息。

    DB Name

    Foreign Server中指定DLF Catalog下的数据库名称。

    Table Name

    DLF数据库中创建的表名。

    Hologres目标表

    Schema

    默认为public,可在下拉列表中选择有权限的其他Schema。

    表名

    新建的Hologres外部表名称。

    说明

    输入目标DLF表名后,将会自动填入DLF表名,如您需要修改表名,可以重命名。

    目标表描述

    新建的Hologres外部表描述,可自定义修改。

  5. 单击提交,即可在左侧对应模式下,刷新出新建的外部表。

  6. (可选)您可鼠标双击已创建的外部表,单击查询表,进入SQL查询窗口,使用标准的PostgreSQL语言进行开发。

    说明

    输入表名称后,会显示外部源表的所有字段,创建外部表时也将默认创建所有字段。如果您需要创建部分字段,请使用单表加速或SQL语句创建外部表,使用SQL创建外部表的方式请参见CREATE FOREIGN TABLE

外部表相关操作

编辑外部表

  1. 在HoloWeb页面的左侧导航栏,选择已登录实例列表。

  2. 单击目标实例 > 目标数据库 > 目标模式下的外表,显示所有已创建的外部表。

  3. 鼠标双击目标外部表,在详情页面单击编辑表

  4. 您可以根据业务需求,更改需要映射的外部源表的字段分区

  5. 单击提交,完成对当前外部表的编辑。

修改外部表名称

  1. 在HoloWeb页面左侧导航栏的已登录实例列表中查询目标外部表,查询目标外部表的操作请参见编辑外部表的步骤1~2。

  2. 鼠标右键单击目标外部表,选择重命名

  3. 修改表名对话框中填入新名称。

  4. 单击确认

删除外部表

  1. 在HoloWeb页面左侧导航栏的已登录实例列表中查询目标外部表,查询目标外部表的操作请参见编辑外部表步骤的1~2。

  2. 鼠标右键单击目标外部表,选择删除表

  3. 删除表对话框中单击确认

数据预览

  1. 在HoloWeb页面左侧导航栏的已登录实例列表中查询目标外部表,查询目标外部表的操作请参见编辑外部表步骤的1~2。

  2. 鼠标双击目标外部表,在外部表的详情页面单击数据预览

常见问题

  • 问题描述:在HoloWeb中访问目标外部表时,提示无RAM DLF API相关权限。页面报错包含如下信息:

    You are not authorized to perform the operation. Please use RAM to authorize the operation.Action: [dlf:xxx].
  • 解决方法:需要在RAM上授予AliyunDLF相关OpenAPI层权限,详情请参见权限说明