本文以一个简单的流程为您介绍如何使用交互式分析Hologres共享集群(MaxCompute BI加速版)。

前提条件

使用限制

MaxCompute BI加速版的使用限制如下:
  • 不支持使用Hologres的内部表功能,仅支持新建外部表加速查询MaxCompute数据。
  • 实例为共享资源,不支持升配及降配。
  • 查询分区表时,每次最多扫描1024个分区。
  • 目前不支持MAP、LIST及STRUCT数据类型。MaxCompute与Hologres的数据类型映射请参见数据类型汇总
  • 每个查询中对单张表的最大数据扫描量为200GB。
  • 提交的查询语句大小不超过100KB。
  • 默认查询超时时间为30分钟,您可以通过statement_timeout参数修改查询超时时间。
  • 单个查询语句的Join及Group By的总数量最大值为20。

MaxCompute BI加速版的使用流程

  1. 购买实例。
    1. 使用阿里云主账号登录阿里云官网
    2. 进入Hologres产品详情页
    3. 单击立即开通,进入购买页面。
    4. 商品类型选择共享集群(MaxCompute BI加速版),输入实例名称,选择目标地域,单击立即购买
  2. 新建数据库。
    成功购买实例后,您可以进入Hologres的管理控制台,查看实例状态。
    成功创建实例后,系统默认生成一个名为postgres的数据库,用于监控管理,实际业务需要您新建数据库,操作如下:
    1. Hologres引擎管理页面,单击实例名称。
      您也可以单击目标实例操作列的管理,进入实例详情页。
    2. 在实例详情页左侧导航栏,单击DB管理
    3. DB管理页面,单击新增Database
    4. 新增Database对话框,输入Database名称,并根据实际业务选择是否开启简单权限模型新建

      Hologres为您提供了专家模式授权简单权限模型两套授权体系。

      专家模式授权与PostgreSQL的权限模型完全一致,简称专家模式,详情请参见专家模式授权

      简单权限模型是Hologres基于实际业务,为了简化授权操作而抽象的一套简单权限模型(SPM),详情请参见简单权限模型概述

      创建数据库时,为了方便权限管理,建议您开启简单权限模型

    5. 单击确定
      您可以在DB管理页面,查看已创建的数据库。
  3. 连接开发工具。
    Hologres兼容Postgres,提供JDBC/ODBC Driver。新建数据库后,您可以使用实例连接开发工具进行数据开发。您可以根据业务需求选择合适的开发工具,详情请参见概述
    本次试验以Hologres的自研开发工具HoloWeb为您演示,如何使用实例连接开发工具,步骤如下:
    1. 在Hologres管理控制台的Hologres引擎管理页面,单击登录Hologres数据库,进入HoloWeb开发界面。
    2. 单击连接管理 > 数据连接数据连接
    3. 配置新建连接对话框的参数。新建连接
      参数 描述
      连接名称 自定义的连接名称。
      连接描述 连接的描述信息。
      网络类型 选择需要连接的网络类型及地域。网络类型如下:
      • 公网
      • VPC
      实例名称 根据实际业务选择所选地域已创建的实例。

      选择实例后,会自动显示该实例的主机端口

      主机 Hologres实例的网络域名。

      进入Hologres管理控制台的实例详情页,从实例配置获取主机。

      端口 Hologres实例的网络端口。

      进入Hologres管理控制台的实例详情页,从实例配置获取端口。

      AccessKey ID 系统会自动显示当前账号的AccessKey ID。

      您也可以单击AccessKey 管理获取AccessKey ID。

      AccessKey Secret 系统会自动显示当前账号的AccessKey Secret。

      您也可以单击AccessKey 管理获取。

      测试连通性 检测数据连接是否成功:
      • 成功:显示测试通过
      • 不成功:显示测试不通过
    4. 单击确认
  4. MaxCompute加速查询。
    实例成功连接HoloWeb后,您可以创建外部表,加速查询MaxCompute的数据。
    本次实验以在HoloWeb中新建外部表查询MaxCompute公共数据集中public_data项目的表数据为例,步骤如下:
    说明 获取表的方法请参见公开数据集
    1. 新建外部表。
      1. 单击连接管理 > MaxCompute加速 > 创建外部表,使用可视化的方式创建外部表。
      2. 新建外部表的编辑页面,配置各项参数。表参数描述如下表所示。
        参数 描述
        连接名 已配置的连接名称。
        数据库 Hologres的数据库名称。
        表名 新建的Hologres外部表名称。
        描述 新建的Hologres外部表信息描述。
        模式 模式名称。

        您可以选择默认创建的模式public,也可以选择新建的模式名称。

        类型 外部表类型。

        目前仅支持MaxCompute。

        服务器列表 创建外部查询MaxCompute数据是通过外部服务器来实现的。您可以直接调用Hologres底层已创建的名为odps_server的外部表服务器。详细原理请参见Postgres FDW
        MaxCompute的项目名和表名。

        格式为project.table_name

        说明
        • 目前暂不支持跨地域查询外部表数据。
        • 输入表名称后,会显示外部源表的所有字段。您可以选择同步外部源表的部分或所有字段至Hologres。
      3. 输入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');
    2. 预览外部表数据。
      成功新建外部表后,选择连接管理 > 我的连接
      鼠标双击新建的外部表,在表编辑页面单击数据预览,查看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');
    3. 加速查询外部表数据。
      加速查询外部表数据的示例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;
  5. 连接BI工具进行可视化分析。
    Hologers兼容Postgres,支持直接对接BI工具。新建外部表加速查询MaxCompute后,您可以根据业务情况选择连接合适的BI工具,进行可视化分析。Hologers支持的BI工具请参见概述
    本次实验以Quick BI为例,为您介绍如何连接BI工具。步骤如下:
    1. 登录Quick BI管理控制台
    2. 添加数据源。
      1. 在Quick BI管理控制台页面,单击顶部菜单栏的工作空间
      2. 工作空间页面,单击左侧导航栏的数据源
      3. 数据源页面,单击右上角的+新建数据源
      4. 选择云数据库 > PostgreSQL
      5. 配置添加PostgreSQL数据源对话框的各项参数。添加数据源参数说明如下表所示。
        参数 描述
        显示名称 自定义的显示名称。
        数据库地址 连接的Hologres实例的公共网络地址。
        端口 连接的Hologres实例的公共网络端口。
        数据库 连接的Hologres实例的数据库名称。
        Schema 默认为public
        用户名 当前账号的AccessKey ID。

        您可以单击AccessKey 管理,获取AccessKey ID。

        密码 当前账号的AccessKey Secret。

        您可以单击AccessKey 管理,获取AccessKey Secret。

        vpc数据源 不勾选
        SSL 不勾选
        参数配置完成后,您可以单击连接测试查看连接情况,如果显示数据源连通性正常,则表明Hologres与Quick BI成功连接。
      6. 单击确定
    3. 可视化分析数据。
      成功连接数据源后,在数据源 > 我的数据源页面,单击已创建的数据源,显示当前数据库中的所有表。您可以使用即席分析SQL的方式可视化分析数据,步骤如下:
      1. 数据源页面,单击右上角的即席分析SQL,进入即席分析SQL页面。
      2. 您可以根据业务需求输入查询SQL语句,并单击执行
      3. 获取需要查询的数据后,单击创建数据集
      4. 配置保存自定义SQL对话框的名称位置SQL参数。
      5. 单击确定

      成功创建数据集后,您可以在数据集中将需要展示的数据制作成报表,可视化分析表数据,详情请参见即席分析SQL建模

      本次试验使用即席查询SQL的方式创建数据集,如下图所示。即席查询根据业务需求展示的报表示例如下。报表展示

数据类型映射

当前Hologres支持的数据类型与MaxCompute数据类型映射关系,请参见数据类型汇总