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开发离线、实时数据融合分析的数据大屏应用。
相关文章
|
2月前
|
SQL 分布式计算 BI
Dataphin中集成SelectDB以支持报表分析和API查询
本文介绍了一家零售企业如何利用SelectDB进行BI分析及数据服务API的查询。通过Dataphin的数据集成、SQL研发等功能,将CRM、ERP等系统数据汇聚加工,并推送至SelectDB构建销售数据集市层,以支持报表分析及API查询。SelectDB具备实时、统一、弹性及开放特性,适用于多种实时分析场景。文章详细描述了在Dataphin中集成SelectDB的整体方案、数据源配置、数据集成、数据开发及数据服务流程。
116 0
|
3月前
|
分布式计算 关系型数据库 Serverless
实时数仓 Hologres产品使用合集之如何将ODPS视图表数据导入到Hologres内表
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
3月前
|
存储 分布式计算 关系型数据库
实时数仓 Hologres产品使用合集之创建外部表时提示不支持ODPS的datetime数据类型,该怎么解决
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
4月前
|
分布式计算 大数据 数据挖掘
MaxCompute产品使用合集之如何解决MC通过外部表方式访问Hologres时,数据量达到3000万条左右导致查询速度慢
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5月前
|
机器学习/深度学习 分布式计算 DataWorks
MaxCompute产品使用问题之如何将DataWorks中的Hologres表数据导入到MaxCompute
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
4月前
|
机器学习/深度学习 分布式计算 大数据
MaxCompute产品使用合集之如何从Dataphin使用界面查看版本
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
3月前
|
SQL 分布式计算 数据库
畅捷通基于Flink的实时数仓落地实践
本文整理自畅捷通总架构师、阿里云MVP专家郑芸老师在 Flink Forward Asia 2023 中闭门会上的分享。
8313 15
畅捷通基于Flink的实时数仓落地实践
|
3月前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版产品使用问题之使用CTAS同步MySQL到Hologres时出现的时区差异,该如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
3月前
|
SQL 关系型数据库 MySQL
实时数仓 Hologres操作报错合集之Flink CTAS Source(Mysql) 表字段从可空改为非空的原因是什么
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
3月前
|
SQL 关系型数据库 测试技术
实时数仓 Hologres操作报错合集之执行Flink的sink操作时出现报错,是什么原因
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。