本文以一个简单的流程为您介绍如何使用交互式分析Hologres共享集群(MaxCompute BI加速版)。
前提条件
- 阿里云账号注册,详情请参见阿里云账号注册流程。
- 实名认证,详情请参见个人实名认证或企业实名认证和个体工商户认证。
- 开通Quick BI,详情请参见Quick BI购买、升级、降级、续费、欠费。
使用限制
- 不支持使用Hologres的内部表功能,仅支持新建外部表加速查询MaxCompute数据。
- 实例为共享资源,不支持升配及降配。
- 查询分区表时,每次最多扫描1024个分区。
- 目前不支持MAP、LIST及STRUCT数据类型。MaxCompute与Hologres的数据类型映射请参见数据类型汇总。
- 每个查询中对单张表的最大数据扫描量为200GB。
- 提交的查询语句大小不超过100KB。
- 默认查询超时时间为30分钟,您可以通过statement_timeout参数修改查询超时时间。
- 单个查询语句的Join及Group By的总数量最大值为20。
- 不支持使用COPY命令进行导入导出数据。
- 仅支持创建hive_compatible extension,不支持创建其他extension,详情请参见GET_JSON_OBJECT。
- 不支持对表进行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。
- DATABASE
共享集群(MaxCompute BI加速版)的使用流程
- 购买实例。
- 使用阿里云主账号登录阿里云官网。
- 进入Hologres产品详情页。
- 单击立即购买,进入购买页面。
- 商品类型选择共享集群(MaxCompute BI加速版),输入实例名称,选择目标地域,单击立即购买。
- 新建数据库。成功购买实例后,您可以进入Hologres的管理控制台,查看实例状态。成功创建实例后,系统默认生成一个名为postgres的数据库,用于监控管理,实际业务需要您新建数据库,操作如下:
- 在Hologres引擎管理页面,单击实例名称。您也可以单击目标实例操作列的管理,进入实例详情页。
- 在实例详情页左侧导航栏,单击DB管理。
- 在DB管理页面,单击新增Database。
- 在新增Database对话框,输入Database名称,并根据实际业务选择是否开启简单权限模型。
- 单击确定。您可以在DB管理页面,查看已创建的数据库。
- 在Hologres引擎管理页面,单击实例名称。
- 连接开发工具。Hologres兼容Postgres,提供JDBC/ODBC Driver。新建数据库后,您可以使用实例连接开发工具进行数据开发。您可以根据业务需求选择合适的开发工具,详情请参见概述。本次试验以Hologres的自研开发工具HoloWeb为您演示,如何使用实例连接开发工具,步骤如下:
- 在Hologres管理控制台的Hologres引擎管理页面,单击登录Hologres数据库,进入HoloWeb开发界面。
- 单击连接管理 > 数据连接。
- 配置新建连接对话框的参数。
参数 描述 连接名称 自定义的连接名称。 连接描述 连接的描述信息。 网络类型 选择需要连接的网络类型及地域。网络类型如下: - 公网
- VPC
实例名称 根据实际业务选择所选地域已创建的实例。 选择实例后,会自动显示该实例的主机和端口。
主机 Hologres实例的网络域名。 进入Hologres管理控制台的实例详情页,从实例配置获取主机。
端口 Hologres实例的网络端口。 进入Hologres管理控制台的实例详情页,从实例配置获取端口。
AccessKey ID 系统会自动显示当前账号的AccessKey ID。 您也可以单击AccessKey 管理获取AccessKey ID。
AccessKey Secret 系统会自动显示当前账号的AccessKey Secret。 您也可以单击AccessKey 管理获取。
测试连通性 检测数据连接是否成功: - 成功:显示测试通过。
- 不成功:显示测试不通过。
- 单击确认。
- MaxCompute加速查询。实例成功连接HoloWeb后,您可以创建外部表,加速查询MaxCompute的数据。本次实验以在HoloWeb中新建外部表查询MaxCompute公共数据集中public_data项目的表数据为例,步骤如下:说明 获取表的方法请参见公开数据集。
- 新建外部表。
- 单击连接管理 > MaxCompute加速 > 创建外部表,使用可视化的方式创建外部表。
- 在新建外部表的编辑页面,配置各项参数。
参数描述如下表所示。
参数 描述 连接名 已配置的连接名称。 数据库 Hologres的数据库名称。 表名 新建的Hologres外部表名称。 描述 新建的Hologres外部表信息描述。 模式 模式名称。 您可以选择默认创建的模式public,也可以选择新建的模式名称。
类型 外部表类型。 目前仅支持MaxCompute。
服务器列表 创建外部查询MaxCompute数据是通过外部服务器来实现的。您可以直接调用Hologres底层已创建的名为odps_server的外部表服务器。详细原理请参见Postgres FDW。 表 MaxCompute的项目名和表名。 格式为project.table_name。
说明- 目前暂不支持跨地域查询外部表数据。
- 输入表名称后,会显示外部源表的所有字段。您可以选择同步外部源表的部分或所有字段至Hologres。
- 输入MaxCompute表的名称,就可以索引出表的字段,您可以根据实际业务,选择需要同步的表字段,单击提交表。
您也可以新建一个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工具。步骤如下:
- 登录Quick BI管理控制台。
- 添加数据源。
- 在Quick BI管理控制台页面,单击顶部菜单栏的工作空间。
- 在工作空间页面,单击左侧导航栏的数据源。
- 在数据源页面,单击右上角的+新建数据源。
- 选择云数据库 > PostgreSQL。
- 配置添加PostgreSQL数据源对话框的各项参数。
参数说明如下表所示。
参数 描述 显示名称 自定义的显示名称。 数据库地址 连接的Hologres实例的公共网络地址。 端口 连接的Hologres实例的公共网络端口。 数据库 连接的Hologres实例的数据库名称。 Schema 默认为public。 用户名 当前账号的AccessKey ID。 您可以单击AccessKey 管理,获取AccessKey ID。
密码 当前账号的AccessKey Secret。 您可以单击AccessKey 管理,获取AccessKey Secret。
vpc数据源 不勾选 SSL 不勾选 - 单击确定。
- 可视化分析数据。成功连接数据源后,在数据源 > 我的数据源页面,单击已创建的数据源,显示当前数据库中的所有表。您可以使用即席分析SQL的方式可视化分析数据,步骤如下:
- 在数据源页面,单击右上角的即席分析SQL,进入即席分析SQL页面。
- 您可以根据业务需求输入查询SQL语句,并单击执行。
- 获取需要查询的数据后,单击创建数据集。
- 配置保存自定义SQL对话框的名称、位置及SQL参数。
- 单击确定。
成功创建数据集后,您可以在数据集中将需要展示的数据制作成报表,可视化分析表数据,详情请参见自定义SQL。
本次试验使用即席查询SQL的方式创建数据集,如下图所示。根据业务需求展示的报表示例如下。
数据类型映射
当前Hologres支持的数据类型与MaxCompute数据类型映射关系,请参见数据类型汇总。