This page explains the core concepts in Hologres: accounts, user roles, instances, databases, schemas, tables, partitioned tables, and engine components.
Accounts
Hologres supports two account types.
Alibaba Cloud account
An Alibaba Cloud account, also known as a root account, is the primary account used to purchase and manage Hologres instances. It can grant administrative permissions to other users.
The following formats are accepted for an Alibaba Cloud account:
| Format | Description | Example |
|---|---|---|
ALIYUN$<AccountName>@aliyun.com | <AccountName> is the logon name of the Alibaba Cloud account. | ALIYUN$company@aliyun.com |
<AccountName>@aliyun.com | company@aliyun.com | |
<Account ID> | The ID of the Alibaba Cloud account. | 1344445678xxx |
RAM user
A Resource Access Management (RAM) user, also known as a sub-account, can create and manage databases and tables within an instance, within the scope of permissions granted by an Alibaba Cloud account.
The following formats are accepted for a RAM user:
| Format | Description | Example |
|---|---|---|
p4_<Account ID> | p is a lowercase letter. <Account ID> is the ID of the Alibaba Cloud account. | p4_12345678xxx |
<subUserName>@<Account Name>.onaliyun.com | <subUserName> is the logon name of the RAM user. <AccountName> is the logon name of the Alibaba Cloud account. | holouser@company.onaliyun.com |
<subUserName>@<Account Name> | ||
<subUserName>@<Account ID>.onaliyun.com | ||
RAM$<subUserName> | ||
RAM$<AccountName>:<subUserName> | ||
RAM$<Account ID>:<subUserName> | ||
<subUserName>@<Account ID> |
User roles
Superuser
The Alibaba Cloud account used to purchase an instance is automatically the Superuser. A Superuser has full permissions on the instance, including creating and deleting databases, creating roles, and granting permissions to roles.
Regular user
A regular user can access an instance and perform data development within the permissions granted by a Superuser. A regular user can also be granted Superuser permissions.
Instance
An instance is the entity that manages database storage services. All database operations are performed within an instance.
Database
A database is where data is organized, stored, and managed. Within a database, you can create, update, and delete tables, and run operations related to functions.
When you purchase a Hologres instance, the system automatically creates a database named postgres. This database is allocated a small number of resources and is intended for management purposes only. Create a separate database for your business development. For instructions, see CREATE DATABASE.
Schema
A schema is a collection of database objects — similar to a directory in a file system. Tables, functions, and other objects within an instance are organized in schemas.
When a database is created, the system automatically creates a default schema named public. All instance object operations run in this schema by default. You can also create additional schemas. For instructions, see CREATE SCHEMA.
Schemas cannot be nested. Object names must be unique within a schema, but objects in different schemas can share the same name.
Tables
A table is a data storage unit consisting of rows and columns. The column structure is fixed — each column has a name and a data type that constrains the values in that column. The number of rows varies as data is added or removed. For supported data types, see Data type summary.
Hologres supports two table types:
| Table type | Data storage | DML support | Index support | When to use |
|---|---|---|---|---|
| Internal table | Stored in Hologres. Supports all data types that Hologres supports. | Yes | Yes | Use for data that you write, transform, or serve directly from Hologres. |
| Foreign table | Not stored in Hologres. Maps to fields in an external data source. Data is read-only. | No | No | Use to accelerate queries on data in external sources such as MaxCompute without migrating data. |
To create a foreign table, see CREATE FOREIGN TABLE.
Partitioned tables
A partitioned table is a parent table divided into smaller subsets called partitions, based on a key value. Different data is stored in different partitions. Hologres currently supports list partitioning on a single key value only.
When querying data, filter by partition key to skip irrelevant partitions and improve query performance.
To create or delete a partitioned table, see CREATE PARTITION TABLE and DROP PARTITION TABLE.
Engine components
Hologres is a distributed real-time data warehouse. Its query processing pipeline flows through three layers: the Frontend handles SQL parsing, the Query Engine executes queries, and the Storage Engine manages data.
Frontend (FE)
The Frontend (FE) handles SQL authentication, parsing, and optimization. An instance runs multiple FEs. Hologres is compatible with the PostgreSQL 11 ecosystem, which means you can use standard PostgreSQL syntax, PostgreSQL-compatible development tools, and Business Intelligence (BI) tools to connect directly to Hologres.
Query Engine (QE)
The Query Engine (QE) executes queries. It routes each query to one of three sub-engines based on the query type:
| Sub-engine | Full name | Handles |
|---|---|---|
| HQE | Hologres Query Engine | The primary execution engine. Uses a scalable Massively Parallel Processing (MPP) architecture with vectorized operators to maximize CPU computing power. Handles most queries. |
| PQE | Postgres Query Engine | Provides PostgreSQL extension compatibility, including PostGIS and user-defined functions (UDFs) such as PL/JAVA, PL/SQL, and PL/Python. Handles functions and operators not yet supported by HQE. Continuous optimizations are made in each version. The ultimate goal is to deprecate PQE. |
| SQE | Seahawks Query Engine | Provides native access to MaxCompute. Supports MaxCompute file formats and complex table types such as hash-clustered and range-clustered tables — with no data migration required. Enables interactive analysis of petabyte-scale offline data. |
Storage Engine (SE)
The Storage Engine (SE) manages and processes data, handling create, read, update, and delete (CRUD) operations.