Hologres外部表
MaxCompute外部表支持使用数据库JDBC驱动机制访问Hologres数据源数据。
背景信息
Hologres是兼容PostgreSQL协议的实时交互式分析数据仓库,在底层与MaxCompute无缝连接。
您可以使用在MaxCompute上创建Hologres外部表的方式,基于PostgreSQL JDBC驱动及STS认证信息查询Hologres数据源的数据。该方式无冗余存储,无需导入导出数据,可实现快速获取查询结果。
前提条件
创建Hologres外部表前,请确认已经满足如下条件:
-
已准备好Hologres数据库及目标表。
创建Hologres数据库信息,请参见创建数据库。
创建Hologres表信息,请参见CREATE TABLE。
假设已准备好的Hologres实例信息如下:
- Hologres数据库名称:
mc_test
。 - Hologres数据库的Schema:
public
。 - Hologres数据库经典网络连接地址:
hgprecn-cn-oew210ut****-cn-hangzhou-internal.hologres.aliyuncs.com:80
。 - Hologres表名称:
holo
。表数据如下:
- Hologres数据库名称:
-
已准备好待创建Hologres外部表的目标MaxCompute项目。
-
已安装MaxCompute客户端。
使用限制
Hologres外部表的使用限制如下:
- MaxCompute不支持对创建的Hologres外部表执行更新(UPDATE)、删除(DELETE)操作。
- Hologres的分区表和MaxCompute的分区表没有对应关系。Hologres外部表不支持分区。
注意事项
Hologres外部表使用过程中需要注意:
-
对于Hologres的父、子表,Hologres外部表中会指定表名,并执行SQL语句。父、子表都可以映射至Hologres外部表,但是父表只能读不能写。
-
如果在执行查询Hologres外部表或向Hologres外部表插入数据时,报错
FAILED: Generating job conf failed, gen jobconf failed: External table location scheme "jdbc:postgresql" is not supported
,原因是未打开对SQL执行计划优化升级的功能jobconf2
。大部分项目已默认打开此功能,部分项目还未打开此功能。如果需要打开此功能,请在Session级别增加如下4个属性。set odps.sql.jobconf.odps2=true; set odps.sql.jobconf.odps2.enforce=true; set odps.sql.split.hive.bridge=true; set odps.sql.hive