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

简介: 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轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
相关文章
|
8月前
|
存储 缓存 分布式计算
OSS大数据分析集成:MaxCompute直读OSS外部表优化查询性能(减少数据迁移的ETL成本)
MaxCompute直读OSS外部表优化方案,解决传统ETL架构中数据同步延迟高、传输成本大、维护复杂等问题。通过存储格式优化(ORC/Parquet)、分区剪枝、谓词下推与元数据缓存等技术,显著提升查询性能并降低成本。结合冷热数据分层与并发控制策略,实现高效数据分析。
229 2
|
11月前
|
SQL 大数据 数据挖掘
玩转大数据:从零开始掌握SQL查询基础
玩转大数据:从零开始掌握SQL查询基础
404 35
|
12月前
|
SQL 分布式计算 数据挖掘
阿里云 MaxCompute MaxQA 开启公测,公测可申请 100CU 计算资源解锁近实时高效查询体验
阿里云云原生大数据计算服务 MaxCompute 推出 MaxQA(原 MCQA2.0)查询加速功能,在独享的查询加速资源池的基础上,对管控链路、查询优化器、执行引擎、存储引擎以及缓存机制等多个环节进行全面优化,显著减少了查询响应时间,适用于 BI 场景、交互式分析以及近实时数仓等对延迟要求高且稳定的场景。现正式开启公测,公测期间可申请100CU(价值15000元)计算资源用于测试,欢迎广大开发者及企业用户参与,解锁高效查询体验!
阿里云 MaxCompute MaxQA 开启公测,公测可申请 100CU 计算资源解锁近实时高效查询体验
|
分布式计算 运维 API
针对MaxCompute经典网络域名下线,Dataphin应对策略的公告
针对MaxCompute经典网络域名下线,Dataphin应对策略的公告
467 7
|
负载均衡 大数据
大数据散列分区查询频率
大数据散列分区查询频率
173 5
|
存储 大数据 数据管理
大数据分区提高查询性能
大数据分区提高查询性能
374 2
|
存储 负载均衡 大数据
大数据水平分区提高查询性能
【11月更文挑战第2天】
263 4
|
存储 分布式计算 安全
MaxCompute Bloomfilter index 在蚂蚁安全溯源场景大规模点查询的最佳实践
MaxCompute 在11月最新版本中全新上线了 Bloomfilter index 能力,针对大规模数据点查场景,支持更细粒度的数据裁剪,减少查询过程中不必要的数据扫描,从而提高整体的查询效率和性能。
|
存储 JSON 监控
大数据-167 ELK Elasticsearch 详细介绍 特点 分片 查询
大数据-167 ELK Elasticsearch 详细介绍 特点 分片 查询
927 4
|
关系型数据库 MySQL 分布式数据库
PolarDB 并行查询问题之大数据量的实时分析查询挑战如何解决
PolarDB 并行查询问题之大数据量的实时分析查询挑战如何解决
171 2