本文以一个简单的流程为您介绍如何使用实时数仓Hologres共享集群(MaxCompute BI加速版)能力。
前提条件
-
阿里云账号注册。
-
实名认证。
-
开通Quick BI,详情请参见Quick BI购买、升级、降级、续费、欠费。
使用限制
共享集群(MaxCompute BI加速版)的使用限制如下:
-
不支持使用Hologres的内部表功能,仅支持新建外部表加速查询MaxCompute数据。
-
实例为共享资源,不支持升配及降配。
-
查询分区表时,每次最多扫描1024个分区。
-
目前不支持MAP、LIST及STRUCT数据类型。MaxCompute与Hologres的数据类型映射请参见数据类型汇总。
-
不支持读取MaxCompute加密数据。
-
每个查询中对单张表的最大数据扫描量为200GB。
-
提交的查询语句大小不超过100KB。
-
默认查询超时时间为30分钟,您可以通过statement_timeout参数修改查询超时时间。
-
单个查询语句的Join及Group By的总数量最大值为20。
-
不支持使用COPY命令进行导入导出数据。
-
仅支持创建hive_compatible extension,不支持创建其他extension,详情请参见GET_JSON_OBJECT。
-
支持对表进行手动Analyze操作,不支持对表进行Auto Analyze操作。
-
共享集群不支持DML操作,仅支持如下DDL。
-
DATABASE
-
CREATE DATABASE。
-
ALTER DATABASE。
-
DROP DATABASE。
-
-
SCHEMA
-
CREATE SCHEMA。
-
ALTER SCHEMA。
-
DROP SCHEMA。
-
-
FOREIGN TABLE
-
CREATE FOREIGN TABLE。
-
DROP FOREIGN TABLE。
-
IMPORT FOREIGN SCHEMA。
-
-
共享集群(MaxCompute BI加速)的使用流程
-
购买实例。
-
使用阿里云主账号登录阿里云官网。
-
单击立即购买,进入购买页面。
-
商品类型选择共享集群(湖仓加速版),输入实例名称,选择目标地域,单击立即购买。
-
-
新建数据库。
成功购买实例后,您可以进入Hologres的管理控制台,查看实例状态。
成功创建实例后,系统默认生成一个名为postgres的数据库,用于监控管理,实际业务需要您新建数据库,操作如下:
-
在实例列表页面,单击实例名称。
您也可以单击目标实例操作列的管理,进入实例详情页。
-
在实例详情页左侧导航栏,单击数据库管理。
-
在DB授权页面,单击新增数据库。
-
在新增数据库对话框,选择实例名,输入数据库名称,并根据实际业务选择对应的权限模型。
Hologres为您提供了专家模式授权和简单权限模型两套授权体系。
专家模式授权与PostgreSQL的权限模型完全一致,简称专家模式,详情请参见专家权限模型。
简单权限模型基于对业务理解和实践经验分为两种。一种是简单权限模型(SPM),详情请参见简单权限模型(SPM);一种是基于Schema级别的简单权限模型(SLPM),详情请参见Schema级别的简单权限模型(SLPM)。
创建数据库时,为了方便权限管理,建议您选择SPM(简单权限模型)。
-
单击确认。
您可以在DB授权页面,查看已创建的数据库。
-
-
连接开发工具。
Hologres兼容Postgres,提供JDBC/ODBC Driver。新建数据库后,您可以使用实例连接开发工具进行数据开发。您可以根据业务需求选择合适的开发工具,详情请参见连接Hologres。
本次试验以Hologres的自研开发工具HoloWeb为您演示,如何使用实例连接开发工具,步骤如下:
-
在Hologres管理控制台的概览页面,单击前往HoloWeb,进入HoloWeb开发界面。
-
单击。
-
配置连接实例对话框的参数。
参数
描述
是否必选
网络类型
-
公网:支持华东2(上海)、华南1(深圳)、华北2(北京)、华东1(杭州)、华北3(张家口)、新加坡、中国(香港)、马来西亚(吉隆坡)、印度尼西亚(雅加达)及美国(硅谷)等地域。
图标的为公网类型的实例。 -
VPC:仅支持配置为HoloWeb所登录的地域。
图标的为VPC类型的实例,该实例不支持编辑详细信息和删除。
否
实例名
选择当前账号已创建的实例。
说明购买实例后,HoloWeb页面需加载实例信息,可能会出现延迟显示实例名称的情况。此时,您可通过手动配置域名等信息连接目标实例。
否
名称
选择实例名后,名称默认显示为所选实例的名称。您也可以重新自定义连接名称。
是
描述
连接的描述信息。
否
域名
Hologres实例的网络域名。
您可以进入Hologres管理控制台的实例详情页,从网络信息中获取域名。
如果您配置了实例名称,则系统自动为您匹配该实例的域名。您也可以选择手动输入域名。
是
端口
Hologres实例的网络端口。
您可以进入Hologres管理控制台的实例详情页,从网络信息获取端口。
如果您配置了实例名称,则系统自动为您匹配该实例的端口。您也可以选择手动输入端口地址。
是
登录方式
-
当前账户免密登录:无需输入账号及密码,直接使用当前账户登录。
-
账户密码登录:您可以输入自己或其他账户的账号及密码,并登录。
是
账号
登录方式配置为账户密码登录时,需要配置该参数。
当前账号的AccessKey ID。
您可以单击AccessKey 管理,获取AccessKey ID。
否
密码
登录方式配置为账户密码登录时,需要配置该参数。
当前账号的AccessKey Secret。
否
测试连通性
检测连接是否成功:
-
显示测试通过表示连接成功。
-
显示测试不通过表示连接失败。
否
连接后登录
您可以选择是否登录该实例。
-
是:该实例会登录并展示在左侧已登录实例列表中。
-
否:该实例会展示在左侧未登录实例列表中。
是
-
-
单击确定。
-
-
MaxCompute加速查询。
实例成功连接HoloWeb后,您可以创建外部表,加速查询MaxCompute的数据。
本次实验以在HoloWeb中新建外部表查询MaxCompute公共数据集中public_data项目的表数据为例,步骤如下:
-
新建外部表。
-
单击,使用可视化的方式创建外部表。
-
在新建外部表的编辑页面,根据加速方式不同,配置对应各项参数。
整库加速
分类
参数
描述
加速方式
选择加速方式
Hologres支持三种加速方式:
-
整库加速
-
部分加速
-
单表加速
选择整库加速。
MaxCompute数据源
项目名
MaxCompute的项目(Project)名称。
Schema Name
MaxCompute的Schema名称。
对于已开启Schema的MaxCompute项目,此处可配置当前项目下有权限的所有Schema名称;未开启Schema的项目,无需配置此参数。关于Schema详情,请参见Schema操作。
目标表位置
Holo Schema
模式名称。
您可以选择默认创建的public模式,也可以选择新建的模式名称。
高级选项
表名冲突
三种表名冲突解决方式:
-
忽略,继续创建其他表
-
更新,修改同名表
-
报错,不再重复创建
数据类型不支持
两种数据类型不支持处理方式:
-
报错,导入失败
-
忽略,跳过不支持字段所在表
部分加速
分类
参数
描述
加速方式
选择加速方式
Hologres支持三种加速方式:
-
整库加速
-
部分加速
-
单表加速
选择部分加速。
MaxCompute数据源
项目名
MaxCompute的项目(Project)名称。
Schema Name
MaxCompute的Schema名称。
对于已开启Schema的MaxCompute项目,此处可配置当前项目下有权限的所有Schema名称;未开启Schema的项目,无需配置此参数。关于Schema详情,请参见Schema操作。
目标表位置
Holo Schema
模式名称。
您可以选择默认创建的public模式,也可以选择新建的模式名称。
高级选项
表名冲突
三种表名冲突解决方式:
-
忽略,继续创建其他表
-
更新,修改同名表
-
报错,不再重复创建
数据类型不支持
两种数据类型不支持处理方式:
-
报错,导入失败
-
忽略,跳过不支持字段所在表
搜索
通过表名模糊搜索,最多支持200张表,超出将不再显示。
单表加速
分类
参数
描述
加速方式
选择加速方式
Hologres支持三种加速方式:
-
整库加速
-
部分加速
-
单表加速
选择单表加速。
MaxCompute数据源
项目名
MaxCompute的项目(Project)名称。
Schema Name
MaxCompute的Schema名称。
对于已开启Schema的MaxCompute项目,此处可配置当前项目下有权限的所有Schema名称;未开启Schema的项目,无需配置此参数。关于Schema详情,请参见Schema操作。
表名
MaxCompute的对应Schema下的数据表。支持基于表前缀模糊搜索。
Hologres 目标表
Schema
模式名称。
您可以选择默认创建的public模式,也可以选择新建的模式名称。
表名
Hologres需要加速的单表表名。
目标表描述
Hologres需要加速的单表描述。
-
-
单击提交。
您也可以新建一个Query查询窗口,使用SQL语句批量创建外部表。示例语句如下。创建Query查询窗口请参见SQL窗口 。
IMPORT FOREIGN SCHEMA public_data LIMIT to( customer, customer_address, customer_demographics, inventory,item, date_dim, warehouse) FROM server odps_server INTO PUBLIC options(if_table_exist 'update'); -
-
预览外部表数据。
成功新建外部表后,在元数据管理页面左侧实例管理目录下,鼠标双击新建的外部表,在表编辑页面单击数据预览,查看MaxCompute表的数据。

您也可以在Query查询模块中新建SQL窗口,使用SQL命令批量创建外部表,创建SQL窗口详情请参见SQL窗口。批量创建外部表的示例语句如下。
IMPORT FOREIGN SCHEMA public_data LIMIT to( customer, customer_address, customer_demographics, inventory,item, date_dim, warehouse) FROM server odps_server INTO PUBLIC options(if_table_exist 'update'); -
加速查询外部表数据。
加速查询外部表数据的示例SQL语句如下。
# SQL1: 查询首选客户分布情况,按人数降序排列。 SELECT c_preferred_cust_flag, count(*) AS cnt FROM customer WHERE c_preferred_cust_flag IS NOT NULL GROUP BY c_preferred_cust_flag ORDER BY cnt DESC LIMIT 10; # SQL2: 查询客户年龄人数大于1000的分布情况,按人数降序排列。 SELECT c_birth_year, count(*) AS cnt FROM customer WHERE c_birth_year IS NOT NULL GROUP BY c_birth_year HAVING count(*) > 1000 ORDER BY cnt DESC LIMIT 10; # SQL3: 查询客户所在城市的人数大于10的分布情况,按人数降序排序。 SELECT ca_city, count(*) AS cnt FROM customer , customer_address WHERE c_current_addr_sk = ca_address_sk AND ca_city IS NOT NULL GROUP BY ca_city HAVING count(*) > 10 ORDER BY cnt DESC LIMIT 10; # SQL4: 查询首选客户出生于1980~1990年且所在城市的人数大于10的分布情况,按人数降序排列。 SELECT ca_city, count(*) AS cnt FROM customer , customer_address WHERE c_current_addr_sk = ca_address_sk AND c_birth_year >= 1980 AND c_birth_year < 1990 AND c_preferred_cust_flag = 'Y' AND ca_city IS NOT NULL GROUP BY ca_city HAVING count(*) > 10 ORDER BY cnt DESC LIMIT 10;
-
-
连接BI工具进行可视化分析。
Hologres兼容Postgres,支持直接对接BI工具。新建外部表加速查询MaxCompute后,您可以根据业务情况选择连接合适的BI工具,进行可视化分析。Hologres支持的BI工具请参见BI分析及可视化。
本次实验以Quick BI为例,为您介绍如何连接BI工具。步骤如下:
-
添加数据源。
添加Hologres数据源详情请参见阿里云数据源Hologres。
-
可视化分析数据。
成功连接数据源后,您可以使用即席分析SQL的方式可视化分析数据。
数据类型映射
当前Hologres支持的数据类型与MaxCompute数据类型映射关系,请参见数据类型汇总。