本文以一个简单的流程为您介绍如何使用实时数仓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),详情请参见简单权限模型概述;一种是基于Schema级别的简单权限模型(SLPM),详情请参见基于Schema级别的简单权限模型概述。
创建数据库时,为了方便权限管理,建议您选择SPM(简单权限模型)。
单击确认。
您可以在DB授权页面,查看已创建的数据库。
连接开发工具。
Hologres兼容Postgres,提供JDBC/ODBC Driver。新建数据库后,您可以使用实例连接开发工具进行数据开发。您可以根据业务需求选择合适的开发工具,详情请参见概述。
本次试验以Hologres的自研开发工具HoloWeb为您演示,如何使用实例连接开发工具,步骤如下:
在Hologres管理控制台的概览页面,单击前往HoloWeb,进入HoloWeb开发界面。
单击 。
配置连接实例对话框的参数。
参数
描述
是否必选
网络类型
公网:支持华东2(上海)、华南1(深圳)、华北2(北京)、华东1(杭州)、华北3(张家口)、新加坡、中国(香港)、马来西亚(吉隆坡)、印度尼西亚(雅加达)及美国(硅谷)等地域。
图标的为公网类型的实例。
VPC:仅支持配置为HoloWeb所登录的地域。
图标的为VPC类型的实例,该实例不支持编辑详细信息和删除。
否
实例名称
选择当前账号已创建的实例。
否
名称
选择实例名称后,名称默认显示为所选实例的名称。您也可以重新自定义连接名称。
是
描述
连接的描述信息。
否
域名
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工具请参见概述。
本次实验以Quick BI为例,为您介绍如何连接BI工具。步骤如下:
添加数据源。
添加Hologres数据源详情请参见阿里云数据源Hologres。
可视化分析数据。
数据类型映射
当前Hologres支持的数据类型与MaxCompute数据类型映射关系,请参见数据类型汇总。