基本概念

本文为您介绍Hologres中,账号、用户角色、实例、数据库、Schema、内部表、外部表、分区表的基本概念。

账号

  • 阿里云账号

    阿里云账号即主账号,用于创建和管理Hologres实例,可以授权给其他用户管理员权限。

    主账号支持的表达格式如下表所示。

    账号格式

    描述

    示例

    ALIYUN$<AccountName>@aliyun.com

    <AccountName>为主账号的登录名称。

    ALIYUN$company@aliyun.com

    <AccountName>@aliyun.com

    company@aliyun.com

    <Account ID>

    主账号的ID。

    1344445678xxx

  • RAM用户

    RAM用户即子账号。阿里云账号授予RAM用户一定权限后,RAM用户可以在权限范围内创建和管理实例中的数据库和表。

    RAM用户支持的表达格式如下表所示。

    账号格式

    描述

    示例

    p4_<Account ID>

    • p使用小写字母。

    • <Account ID>为主账号的ID。

    p4_12345678xxx

    <subUserName>@<Account Name>.onaliyun.com

    • <subUserName>为子账号的登录名称。

    • <AccountName>为主账号的登录名称。

    • <AccountID>为主账号的ID。

    holouser@company.onaliyun.com

    <subUserName>@<Account Name>

    <subUserName>@<Account ID>.onaliyun.com

    RAM$<subUserName>

    RAM$<AccountName>:<subUserName>

    RAM$<Account ID>:<subUserName>

    <subUserName>@<Account ID>

用户角色

  • 超级管理员

    系统默认设置购买实例的主账号为超级管理员Superuser。Superuser拥有整个实例的所有权限,例如创建数据库、删除数据库、创建角色以及为角色授权。

  • 普通用户

    普通用户需要被Superuser授权后才能访问实例,并在权限范围内进行数据开发。普通用户也可以被授权为Superuser。

实例

实例(Instance)是您使用和管理数据库存储服务的实体。您对数据库的所有操作都需要在实例中完成。

数据库

数据库是按照数据结构来组织、存储和管理数据的仓库。您可以在数据库中创建、更新或删除表,以及执行与函数相关的操作。

购买Hologres实例后,系统自动创建postgres数据库。该数据库分配到的资源较少,仅用于管理,开发实际业务需要新建数据库。新建数据库请参见CREATE DATABASE

Schema

Schema是数据库对象的集合,相当于文件系统中的目录。实例中的表和函数等对象存放于各个Schema中。

成功创建数据库后,系统默认创建命名为public的Schema,您对实例对象的所有操作默认都在该Schema中执行。您也可以新建Schema,详情请参见CREATE SCHEMA

说明
  • Schema不能嵌套Schema。

  • 同一个Schema中的对象名称不能重复。

  • 不同Schema中的对象名称可以重复。

表是由行和列组成的数据存储单元。列的数量和顺序是固定的,每一列拥有一个名称。行的数量是变化的,表示在给定的时刻,表中存储的数据量。

表的每一列都有一个数据类型,表示该列的取值类型,详情请参见数据类型汇总

Hologres中的表包括以下两种类型:

  • 内部表

    指数据存储在Hologres中的表。表中的数据类型可以是Hologres支持的任意一种类型。

  • 外部表

    指在Hologres中不存储数据,只进行字段映射的表。外部表的数据都是只读的,您在外部表中不能执行DML语句或创建索引。

    您可以在Hologres中创建外部表,加速查询外部数据源的数据,例如查询MaxCompute的数据。

    Hologres中创建外部表请参见CREATE FOREIGN TABLE

分区表

分区表是根据键值属性划分父表为许多小的子集,这些子集称为分区。不同类型的数据存放于不同分区,Hologres当前仅支持对单个键值进行列表分区。查询数据时,您可以通过分区键值过滤查询语句,排除无关的分区,从而提升查询速度。

Hologres中创建或删除分区表请参见CREATE PARTITION TABLEDROP PARTITION TABLE

引擎组件

Hologres是一个分布式实时数仓,在内部会有很多组件,实际业务中,无需所有组件都有所了解,只需要在实际业务中了解需要使用的组件,助您更好的理解和使用Hologres。

  • 接入节点(Frontend,FE)

    Hologres接入节点,主要用于SQL的认证、解析、优化,一个实例有多个FE接入节点。在生态上兼容Postgres 11,因此您可以使用Postgres标准语法进行开发,也可以用Postgres兼容的开发工具和BI工具直接连接Hologres。

  • 执行引擎(Query Engine,QE)主要有3个,执行引擎的技术原理请参见Hologres执行引擎技术揭秘

    • HQE(Hologres Query Engine)

      Hologres自研执行引擎,采用可扩展的MPP架构全并行计算,向量化算子发挥CPU极致算力,从而实现极致的查询性能。(QE主要由HQE组成)。

    • PQE(Postgres Query Engine)

      用于兼容Postgres提供扩展能力,支持PG生态的各种扩展组件,如PostGIS,UDF(PL/JAVA,PL/SQL,PL/Python)等。部分HQE还没有支持的函数和算子,会通过PQE执行,每个版本都在持续优化中,终极目标是去掉PQE。

    • SQE(Seahaws Query Engine)

      无缝对接MaxCompute的执行引擎,实现对MaxCompute的本地访问,无需迁移和导入数据,就可以高性能和全兼容的访问各种MaxCompute文件格式,以及Hash/Range clustered table等复杂表,实现对PB级离线数据的交互式分析,技术原理请参见Hologres加速查询MaxCompute技术揭秘

  • 存储引擎Storage Engine(SE)

    主要用于管理和处理数据, 包括创建、查询、更新和删除(简称 CRUD)数据等,关于存储引擎详细的技术原理请参见Hologres存储引擎技术揭秘