Dataphin中如何使用Hologres外表查询MaxCompute

本文涉及的产品
智能数据建设与治理Dataphin,200数据处理单元
简介: Hologres支持通过创建外部表来加速MaxCompute数据的查询,此方法用户直接在Hologres环境中访问和分析存储在MaxCompute中的数据,从而提高查询效率并简化数据处理流程。本文将介绍在 Dataphin 产品中如何实现这一操作。

背景信息

大数据计算服务(MaxCompute)是一种快速、完全托管的EB级数据仓库,致力于批量结构化数据的存储和计算,提供海量数据仓库的解决方案及分析建模服务。Hologres是兼容PostgreSQL协议的实时交互式分析引擎,与MaxCompute存储原生对接,支持使用创建外部表的方式实现MaxCompute加速查询,无冗余存储,无需导入导出数据,即可快速获取查询结果,采用标准PostgreSQL协议,无缝对接几乎所有主流BI工具。


在 Dataphin 产品中,支持 2 种 Hologres 外表查询的方式,1、通过创建外表语句,将 MaxCompute 注册到 Hologres 中进行查询;2、将 MaxCompute 指定 project 的表全量加载到 Hologres 中,然后进行查询。


准备工作

已开通 MaxCompute 和 Hologres,创建了 MaxCompute 项目并为用户授予访问 MaxCompute 项目和表权限。同时,在 Dataphin 产品中已创建项目,并将指定 Hologres 项目 schema 指定为项目计算源。


方法一:通过创建外表语句,进行查询

在Hologres中创建一张用于映射MaxCompute数据的外部表。示例语句如下

CREATE FOREIGN TABLE weather1 (
 city text,
 temp_lo int4,
 temp_hi int4
)
SERVER odps_server
OPTIONS (project_name '<projectname>',table_name 'weather');


参数说明如下表所示

参数

描述

SERVER

外部表服务器。

您可以直接调用Hologres底层已创建的名为odps_server的外部表服务器。

project_name

MaxCompute表所在的项目名称。

table_name

需要查询的MaxCompute表名称。


注意:这里的 project_name 是 MaxCompute 的 project 名称,而不是用户在 Dataphin 产品中创建的项目名称。Hologres的字段类型必须与MaxCompute的字段类型保持一致。Hologres仅支持加速查询MaxCompute的内部表数据,不支持加速查询MaxCompute的外部表和视图。

成功创建外部表后,您可以直接查询外部表,即可查询到MaxCompute的数据。示例语句如下。

SELECT * FROM weather1;


示例:


参考文献:通过创建外部表加速查询MaxCompute数据


方法二:将 MaxCompute 指定 project 的表全量加载到 Hologres 中

  • 外部表全量自动加载场景下:
  • 不建议设置自动加载时间小于5分钟。
  • 不建议将表超过1000张的MaxCompute的项目设置为默认Project。
  • 针对已加载的Hologres外表,如果MaxCompute中该表有表结构改变,指定Project全量加载将不会自动对该外表结构更新,需要使用import命令手动更新该表。
  • 开启指定Project全量自动加载。


若是需要加速的MaxCompute表较多,可以开启Project全量数据自动加载。该功能需要指定MaxCompute Project名称,同时如果Project中有新增MaxComute外表,可以通过参数周期性巡检,并在查询外表时自动加载,实现Project的全量和增量加速。


使用步骤如下:

1)开启外部表自动加载。

在Project全量加载前,需要先使用如下命令开启外部表自动加载。

ALTER DATABASE <database name> SET hg_experimental_enable_auto_load_foreign_table = on;

database name为需要开启MaxCompute外部表自动加载的数据库名称。


2)开启指定Project全量自动加载。

开启外部表自动加载后,通过如下参数自动将指定MaxCompute Project的所有表加载为Hologres的外部表,当查询外部表时,系统将会自动将Project中的所有表加载为Hologres外部表,实现全量加载。

ALTER DATABASE <database name> 
SET hg_experimental_default_odps_project_list='<odps_project_name_1>,<odps_project_name_2>...';


参数说明如下。

参数

说明

database name

需要设置MaxCompute外部表自动加载的数据库名称。

odps_project_name_1

MaxCompute的项目名称。

odps_project_name_2

MaxCompute的项目名称。

MaxCompute项目名称为空,即不周期性的加载任何Project中表的元数据。


3)开启周期性巡检。

配置指定project全量加载后,如果Project中有新增MaxCompute表,可以通过如下时间参数进行周期性巡检。在超过设置的巡检时间后,系统会在查询对应外部表时,自动加载新增的MaxCompute为Hologres外部表,实现增量外部表加速。

解释-- 查看数据库的自动加载间隔时间
show hg_experimental_load_all_foreign_table_interval_time;
-- 修改数据库的自动加载间隔时间
ALTER DATABASE <database name> SET hg_experimental_load_all_foreign_table_interval_time = '5min';

database name为需要设置MaxCompute外部表自动加载的数据库名称。默认间隔时间5分钟,即5分钟内有新增MaxCompute表,在5分钟之后查询发起时,会自动将新增的MaxCompute表加载为Hologres外表。


4)查看自动加载Project。

您可以使用如下SQL查看已设置自动加载的Project。

show hg_experimental_default_odps_project_list;

示例:

参考文献:外部表自动加载(Auto Load)

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
相关文章
|
1天前
|
分布式计算 大数据 数据挖掘
MaxCompute产品使用合集之如何解决MC通过外部表方式访问Hologres时,数据量达到3000万条左右导致查询速度慢
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
26天前
|
存储 分布式计算 大数据
MaxCompute产品使用问题之创建了oss外表,格式指定的parquet,然后执行的写入,发现不是标准parquet的格式,该怎么办
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
26天前
|
机器学习/深度学习 分布式计算 DataWorks
MaxCompute产品使用问题之如何将DataWorks中的Hologres表数据导入到MaxCompute
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
26天前
|
SQL 分布式计算 DataWorks
MaxCompute操作报错合集之访问holo外表时 , 为什么没有使用到直读
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
2月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之如何将Hologres字段转换为小写
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
22天前
|
存储 SQL 消息中间件
Hologres+Flink企业级实时数仓核心能力介绍
通过Hologres+Flink构建易用、统一的企业级实时数仓。
|
3天前
|
消息中间件 SQL 大数据
实时计算 Flink版产品使用问题之Flink+DataHub+Hologres相比于Flink+Hologres加入了DataHub组件,有什么优势
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
Java 数据处理 Apache
实时计算 Flink版产品使用问题之lookup Join hologres的维表,是否可以指定查bitmap
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
JSON 关系型数据库 MySQL
实时计算 Flink版产品使用问题之在使用CDAS语法同步MySQL数据到Hologres时,如果开启了字段类型宽容模式,MySQL中的JSON类型会被转换为什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2月前
|
SQL 运维 Cloud Native
基于OceanBase+Flink CDC,云粒智慧实时数仓演进之路
本文讲述了其数据中台在传统数仓技术框架下做的一系列努力后,跨进 FlinkCDC 结合 OceanBase 的实时数仓演进过程。
22620 2
 基于OceanBase+Flink CDC,云粒智慧实时数仓演进之路

热门文章

最新文章