本文为您介绍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 TABLE、DROP 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存储引擎技术揭秘。