基本概念
本文為您介紹Hologres中,賬號、用戶角色、實例、數(shù)據(jù)庫、Schema、內(nèi)部表、外部表、分區(qū)表的基本概念。
賬號
阿里云賬號
阿里云賬號即主賬號,用于創(chuàng)建和管理Hologres實例,可以授權給其他用戶管理員權限。
主賬號支持的表達格式如下表所示。
賬號格式
描述
示例
ALIYUN$<AccountName>@aliyun.com
<AccountName>為主賬號的登錄名稱。
ALIYUN$company@aliyun.com
<AccountName>@aliyun.com
company@aliyun.com
<Account ID>
主賬號的ID。
1344445678xxx
RAM用戶
RAM用戶即子賬號。阿里云賬號授予RAM用戶一定權限后,RAM用戶可以在權限范圍內(nèi)創(chuàng)建和管理實例中的數(shù)據(jù)庫和表。
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>
用戶角色
超級管理員
系統(tǒng)默認設置購買實例的主賬號為超級管理員Superuser。Superuser擁有整個實例的所有權限,例如創(chuàng)建數(shù)據(jù)庫、刪除數(shù)據(jù)庫、創(chuàng)建角色以及為角色授權。
普通用戶
普通用戶需要被Superuser授權后才能訪問實例,并在權限范圍內(nèi)進行數(shù)據(jù)開發(fā)。普通用戶也可以被授權為Superuser。
實例
實例(Instance)是您使用和管理數(shù)據(jù)庫存儲服務的實體。您對數(shù)據(jù)庫的所有操作都需要在實例中完成。
數(shù)據(jù)庫
數(shù)據(jù)庫是按照數(shù)據(jù)結構來組織、存儲和管理數(shù)據(jù)的倉庫。您可以在數(shù)據(jù)庫中創(chuàng)建、更新或刪除表,以及執(zhí)行與函數(shù)相關的操作。
購買Hologres實例后,系統(tǒng)自動創(chuàng)建postgres數(shù)據(jù)庫。該數(shù)據(jù)庫分配到的資源較少,僅用于管理,開發(fā)實際業(yè)務需要新建數(shù)據(jù)庫。新建數(shù)據(jù)庫請參見CREATE DATABASE。
Schema
Schema是數(shù)據(jù)庫對象的集合,相當于文件系統(tǒng)中的目錄。實例中的表和函數(shù)等對象存放于各個Schema中。
成功創(chuàng)建數(shù)據(jù)庫后,系統(tǒng)默認創(chuàng)建命名為public的Schema,您對實例對象的所有操作默認都在該Schema中執(zhí)行。您也可以新建Schema,詳情請參見CREATE SCHEMA。
Schema不能嵌套Schema。
同一個Schema中的對象名稱不能重復。
不同Schema中的對象名稱可以重復。
表
表是由行和列組成的數(shù)據(jù)存儲單元。列的數(shù)量和順序是固定的,每一列擁有一個名稱。行的數(shù)量是變化的,表示在給定的時刻,表中存儲的數(shù)據(jù)量。
表的每一列都有一個數(shù)據(jù)類型,表示該列的取值類型,詳情請參見數(shù)據(jù)類型匯總。
Hologres中的表包括以下兩種類型:
內(nèi)部表
指數(shù)據(jù)存儲在Hologres中的表。表中的數(shù)據(jù)類型可以是Hologres支持的任意一種類型。
外部表
指在Hologres中不存儲數(shù)據(jù),只進行字段映射的表。外部表的數(shù)據(jù)都是只讀的,您在外部表中不能執(zhí)行DML語句或創(chuàng)建索引。
您可以在Hologres中創(chuàng)建外部表,加速查詢外部數(shù)據(jù)源的數(shù)據(jù),例如查詢MaxCompute的數(shù)據(jù)。
Hologres中創(chuàng)建外部表請參見CREATE FOREIGN TABLE。
分區(qū)表
分區(qū)表是根據(jù)鍵值屬性劃分父表為許多小的子集,這些子集稱為分區(qū)。不同類型的數(shù)據(jù)存放于不同分區(qū),Hologres當前僅支持對單個鍵值進行列表分區(qū)。查詢數(shù)據(jù)時,您可以通過分區(qū)鍵值過濾查詢語句,排除無關的分區(qū),從而提升查詢速度。
Hologres中創(chuàng)建或刪除分區(qū)表請參見CREATE PARTITION TABLE、DROP PARTITION TABLE。
引擎組件
Hologres是一個分布式實時數(shù)倉,在內(nèi)部會有很多組件,實際業(yè)務中,無需所有組件都有所了解,只需要在實際業(yè)務中了解需要使用的組件,助您更好的理解和使用Hologres。
接入節(jié)點(Frontend,F(xiàn)E)
Hologres接入節(jié)點,主要用于SQL的認證、解析、優(yōu)化,一個實例有多個FE接入節(jié)點。在生態(tài)上兼容Postgres 11,因此您可以使用Postgres標準語法進行開發(fā),也可以用Postgres兼容的開發(fā)工具和BI工具直接連接Hologres。
執(zhí)行引擎(Query Engine,QE)主要有3個,執(zhí)行引擎的技術原理請參見Hologres執(zhí)行引擎技術揭秘。
HQE(Hologres Query Engine)
Hologres自研執(zhí)行引擎,采用可擴展的MPP架構全并行計算,向量化算子發(fā)揮CPU極致算力,從而實現(xiàn)極致的查詢性能。(QE主要由HQE組成)。
PQE(Postgres Query Engine)
用于兼容Postgres提供擴展能力,支持PG生態(tài)的各種擴展組件,如PostGIS,UDF(PL/JAVA,PL/SQL,PL/Python)等。部分HQE還沒有支持的函數(shù)和算子,會通過PQE執(zhí)行,每個版本都在持續(xù)優(yōu)化中,終極目標是去掉PQE。
SQE(Seahaws Query Engine)
無縫對接MaxCompute的執(zhí)行引擎,實現(xiàn)對MaxCompute的本地訪問,無需遷移和導入數(shù)據(jù),就可以高性能和全兼容的訪問各種MaxCompute文件格式,以及Hash/Range clustered table等復雜表,實現(xiàn)對PB級離線數(shù)據(jù)的交互式分析,技術原理請參見Hologres加速查詢MaxCompute技術揭秘。
存儲引擎Storage Engine(SE)
主要用于管理和處理數(shù)據(jù), 包括創(chuàng)建、查詢、更新和刪除(簡稱 CRUD)數(shù)據(jù)等,關于存儲引擎詳細的技術原理請參見Hologres存儲引擎技術揭秘。