This topic describes the terms related to Hologres, including account, role, instance, database, schema, internal table, foreign table, partitioned table, table group, and shard count.
Account
- Alibaba Cloud account
An Alibaba Cloud account is used to create and manage Hologres instances. You can use an Alibaba Cloud account to grant permissions to RAM users.
The following table describes the formats of Alibaba Cloud accounts in Hologres.Format Description Example ALIYUN$<AccountName>@aliyun.com <AccountName> indicates 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
RAM users can create and manage objects, such as databases and tables, in an instance based on their permissions granted by Alibaba Cloud accounts.
The following table describes the formats of RAM users in Hologres.Format Description Example p4_<Account ID> - In this format, p is in lowercase.
- <Account ID> indicates the ID of the Alibaba Cloud account.
p4_12345678xxx
<subUserName>@<Account Name>.onaliyun.com - <subUserName> indicates the logon name of the RAM user.
- <AccountName> indicates the logon name of the Alibaba Cloud account.
- <Account ID> indicates the ID 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>
Role
- Superuser
By default, the system sets the Alibaba Cloud account that is used to purchase an instance as a superuser of the instance. The superuser has all permissions on the instance. The superuser can create databases, delete databases, create roles, and grant permissions to roles.
- Regular user
A regular user can log on to a Hologres instance and perform allowed data analytics operations only after the regular user obtains the required permissions from a superuser. A regular user can also be assigned the superuser role.
Instance
In Hologres, an instance is an entity in which you can use and manage databases. All database operations are performed in the instance.
Database
A database is a data repository that organizes, stores, and manages data based on data structures. In a database, you can create, update, and delete tables. You can also execute functions.
When you purchase a Hologres instance, a default database named postgres is created. This database is allocated a few resources and is used only for management purposes. You can create a database based on your business needs. For more information about how to create a database, see CREATE DATABASE.
Schema
A schema is a collection of database objects, similar to a directory in a file system. Objects such as tables and functions in an instance are stored in schemas.
- A schema cannot contain nested subschemas.
- Objects in a schema must have unique names.
- Objects in different schemas can have the same name.
Table
A table is a unit that stores data in columns and rows. The number and order of columns are fixed, and each column has a name. The number of rows is variable, which reflects the data amount stored at a given moment.
Each column has a data type. A data type constrains the set of possible values that can be assigned to a column. For more information, see Data types.
- Internal table
Internal tables store data in Hologres. The data types of internal tables must be supported by Hologres.
- Foreign table
Foreign tables map external data sources and do not store data in Hologres. Foreign tables are read-only. Therefore, you cannot perform DML operations or create indexes for foreign tables.
You can create foreign tables in Hologres to query data directly from external data sources such as MaxCompute.
For more information about how to create a foreign table in Hologres, see CREATE FOREIGN TABLE.
Partitioned table
Partitioned tables are parent tables that are divided into multiple segments based on partition keys. These segments are called partitions. Different types of data are stored in different partitions. In Hologres, only one partition key can be used for list partitioning. When you query data, you can specify filters based on partition key values in query statements to exclude irrelevant partitions. This improves the query speed.
For more information about how to create and delete a partitioned table in Hologres, see CREATE TABLE and DROP PARTITION TABLE.
Engine
- Frontend (FE)
An FE authenticates, parses, and optimizes SQL statements. A Hologres instance has multiple FEs. Hologres is ecologically compatible with PostgreSQL 11. You can use the standard PostgreSQL syntax for development or use PostgreSQL-compatible development tools and Business Intelligence (BI) tools to connect to Hologres.
- Query Engine (QE)
- Hologres Query Engine (HQE)
Developed by Alibaba Cloud, HQE uses a scalable Massively Parallel Processing (MPP) architecture to implement full parallel computing. HQE uses vectorization operators to make maximum use of CPUs and achieve ultimate query performance. HQE is the main module of Hologres QE.
- PostgreSQL Query Engine (PQE)
PQE provides compatibility with PostgreSQL. PQE supports a variety of PostgreSQL extensions, such as PostGIS and user-defined functions (UDFs) that are written in PL/Java, PL/SQL, and PL/Python. The functions and operators that are not supported by HQE can be executed by using PQE. HQE has been continuously optimized in each version. The final goal is to integrate all features of PQE.
- Seahawks Query Engine (SQE)
SQE allows Hologres to seamlessly connect to MaxCompute. This provides high-performance access to all types of MaxCompute files, without the need to migrate or import data. This also allows Hologres to access complex tables such as hash tables and range-clustered tables, and implement interactive analysis of PB-level batch data.
- Hologres Query Engine (HQE)
- Storage Engine (SE)
SE manages and processes data. SE allows you to perform create, read, update, and delete (CRUD) operations on data.