共享集群(MaxCompute BI加速版)

本文以一个简单的流程为您介绍如何使用实时数仓Hologres共享集群(MaxCompute 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加速)的使用流程

  1. 购买实例。

    1. 使用阿里云主账号登录阿里云官网

    2. 进入Hologres产品详情页

    3. 单击立即购买,进入购买页面。

    4. 商品类型选择共享集群(湖仓加速版),输入实例名称,选择目标地域,单击立即购买

  2. 新建数据库。

    成功购买实例后,您可以进入Hologres的管理控制台,查看实例状态。

    成功创建实例后,系统默认生成一个名为postgres的数据库,用于监控管理,实际业务需要您新建数据库,操作如下:

    1. 实例列表页面,单击实例名称。

      您也可以单击目标实例操作列的管理,进入实例详情页。

    2. 在实例详情页左侧导航栏,单击数据库管理

    3. DB授权页面,单击新增数据库

    4. 新增数据库对话框,选择实例名,输入数据库名称,并根据实际业务选择对应的权限模型。

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

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

      简单权限模型基于对业务理解和实践经验分为两种。一种是简单权限模型(SPM),详情请参见简单权限模型概述;一种是基于Schema级别的简单权限模型(SLPM),详情请参见基于Schema级别的简单权限模型概述

      创建数据库时,为了方便权限管理,建议您选择SPM(简单权限模型)。

    5. 单击确认

      您可以在DB授权页面,查看已创建的数据库。

  3. 连接开发工具。

    Hologres兼容Postgres,提供JDBC/ODBC Driver。新建数据库后,您可以使用实例连接开发工具进行数据开发。您可以根据业务需求选择合适的开发工具,详情请参见概述

    本次试验以Hologres的自研开发工具HoloWeb为您演示,如何使用实例连接开发工具,步骤如下:

    1. 在Hologres管理控制台的概览页面,单击前往HoloWeb,进入HoloWeb开发界面。

    2. 单击元数据管理 > 连接实例

    3. 配置连接实例对话框的参数。

      参数

      描述

      是否必选

      网络类型

      • 公网:支持华东2(上海)、华南1(深圳)、华北2(北京)、华东1(杭州)、华北3(张家口)、新加坡、中国(香港)、马来西亚(吉隆坡)、印度尼西亚(雅加达)及美国(硅谷)等地域。

        公网实例图标的为公网类型的实例。

      • VPC:仅支持配置为HoloWeb所登录的地域。

        VPC网络图标的为VPC类型的实例,该实例不支持编辑详细信息和删除。

      实例名称

      选择当前账号已创建的实例。

      名称

      选择实例名称后,名称默认显示为所选实例的名称。您也可以重新自定义连接名称。

      描述

      连接的描述信息。

      域名

      Hologres实例的网络域名。

      您可以进入Hologres管理控制台的实例详情页,从网络信息中获取域名。

      如果您配置了实例名称,则系统自动为您匹配该实例的域名。您也可以选择手动输入域名。

      端口

      Hologres实例的网络端口。

      您可以进入Hologres管理控制台的实例详情页,从网络信息获取端口。

      如果您配置了实例名称,则系统自动为您匹配该实例的端口。您也可以选择手动输入端口地址。

      登录方式

      • 当前账户免密登录:无需输入账号及密码,直接使用当前账户登录。

      • 账户密码登录:您可以输入自己或其他账户的账号及密码,并登录。

      账号

      登录方式配置为账户密码登录时,需要配置该参数。

      当前账号的AccessKey ID。

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

      密码

      登录方式配置为账户密码登录时,需要配置该参数。

      当前账号的AccessKey Secret。

      测试连通性

      检测连接是否成功:

      • 显示测试通过表示连接成功。

      • 显示测试不通过表示连接失败。

      连接后登录

      您可以选择是否登录该实例。

      • :该实例会登录并展示在左侧已登录实例列表中。

      • :该实例会展示在左侧未登录实例列表中。

    4. 单击确定

  4. MaxCompute加速查询。

    实例成功连接HoloWeb后,您可以创建外部表,加速查询MaxCompute的数据。

    本次实验以在HoloWeb中新建外部表查询MaxCompute公共数据集中public_data项目的表数据为例,步骤如下:

    说明

    获取表的方法请参见公开数据集

    1. 新建外部表。

      1. 单击元数据管理 > MaxCompute加速 > 创建外部表,使用可视化的方式创建外部表。

      2. 新建外部表的编辑页面,根据加速方式不同,配置对应各项参数。

        整库加速

        分类

        参数

        描述

        加速方式

        选择加速方式

        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需要加速的单表描述。

      3. 单击提交

      您也可以新建一个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工具进行可视化分析。

    Hologres兼容Postgres,支持直接对接BI工具。新建外部表加速查询MaxCompute后,您可以根据业务情况选择连接合适的BI工具,进行可视化分析。Hologres支持的BI工具请参见概述

    本次实验以Quick BI为例,为您介绍如何连接BI工具。步骤如下:

    1. 登录Quick BI管理控制台

    2. 添加数据源。

      添加Hologres数据源详情请参见阿里云数据源Hologres

    3. 可视化分析数据。

      成功连接数据源后,您可以使用即席分析SQL的方式可视化分析数据,详情请参见新建即席分析自定义SQL

数据类型映射

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