このトピックでは、アカウント、ロール、インスタンス、データベース、スキーマ、内部テーブル、外部テーブル、パーティションテーブル、テーブルグループ、シャード数など、Hologres に関連する用語について説明します。
アカウント
- Alibaba Cloud アカウント
Alibaba Cloud アカウントは、Hologres インスタンスの作成と管理に使用されます。 Alibaba Cloud アカウントを使用して、RAM ユーザーに権限を付与できます。
次の表に、Hologres における Alibaba Cloud アカウントの形式を示します。形式 説明 例 ALIYUN$<AccountName>@aliyun.com <AccountName> は、Alibaba Cloud アカウントのログオン名を示します。 ALIYUN$company@aliyun.com<AccountName>@aliyun.com company@aliyun.com<Account ID> Alibaba Cloud アカウントの ID。 1344445678xxx - RAM ユーザー
RAM ユーザーは、Alibaba Cloud アカウントによって付与された権限に基づいて、インスタンス内のデータベースやテーブルなどのオブジェクトを作成および管理できます。
次の表に、Hologres における RAM ユーザーの形式を示します。形式 説明 例 p4_<Account ID> - この形式では、p は小文字です。
- <Account ID> は、Alibaba Cloud アカウントの ID を示します。
p4_12345678xxx<subUserName>@<Account Name>.onaliyun.com - <subUserName> は、RAM ユーザーのログオン名を示します。
- <AccountName> は、Alibaba Cloud アカウントのログオン名を示します。
- <Account ID> は、Alibaba Cloud アカウントの 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>
ロール
- スーパーユーザー
デフォルトでは、システムはインスタンスを購入するために使用された Alibaba Cloud アカウントをインスタンスのスーパーユーザーとして設定します。 スーパーユーザーは、インスタンスに対するすべての権限を持っています。 スーパーユーザーは、データベースの作成、データベースの削除、ロールの作成、ロールへの権限の付与を行うことができます。
- 一般ユーザー
一般ユーザーは、スーパーユーザーから必要な権限を取得した後にのみ、Hologres インスタンスにログオンして、許可されたデータ分析操作を実行できます。 一般ユーザーにもスーパーユーザーロールを割り当てることができます。
インスタンス
Hologres では、インスタンスはデータベースを使用および管理できるエンティティです。 すべてのデータベース操作はインスタンス内で実行されます。
データベース
データベースは、データ構造に基づいてデータを整理、保存、管理するデータリポジトリです。 データベースでは、テーブルの作成、更新、削除を行うことができます。 また、関数を実行することもできます。
Hologres インスタンスを購入すると、[postgres] という名前のデフォルトデータベースが作成されます。 このデータベースには少数のリソースが割り当てられており、管理目的でのみ使用されます。 ビジネスニーズに基づいてデータベースを作成できます。 データベースの作成方法の詳細については、「CREATE DATABASE」をご参照ください。
スキーマ
スキーマは、ファイルシステムのディレクトリと同様に、データベースオブジェクトの集合です。 インスタンス内のテーブルや関数などのオブジェクトは、スキーマに格納されます。
- スキーマにはネストされたサブスキーマを含めることはできません。
- スキーマ内のオブジェクトは一意の名前を持つ必要があります。
- 異なるスキーマ内のオブジェクトは同じ名前を持つことができます。
テーブル
テーブルは、列と行にデータを格納する単位です。 列の数と順序は固定されており、各列には名前が付いています。 行数は可変であり、特定の時点で格納されているデータ量を反映します。
各列にはデータ型があります。 データ型は、列に割り当てることができる値のセットを制限します。 詳細については、「データ型」をご参照ください。
- 内部テーブル
内部テーブルは、Hologres にデータを格納します。 内部テーブルのデータ型は、Hologres でサポートされている必要があります。
- 外部テーブル
外部テーブルは外部データソースをマッピングし、Hologres にデータを格納しません。 外部テーブルは読み取り専用です。 したがって、外部テーブルに対して DML 操作を実行したり、インデックスを作成したりすることはできません。
Hologres に外部テーブルを作成して、MaxCompute などの外部データソースから直接データをクエリできます。
Hologres に外部テーブルを作成する方法の詳細については、「CREATE FOREIGN TABLE」をご参照ください。
パーティションテーブル
パーティションテーブルは、パーティションキーに基づいて複数のセグメントに分割された親テーブルです。 これらのセグメントはパーティションと呼ばれます。 異なるタイプのデータは異なるパーティションに格納されます。 Hologres では、リストパーティションには 1 つのパーティションキーのみを使用できます。 データをクエリするときに、クエリステートメントでパーティションキー値に基づいてフィルターを指定して、無関係なパーティションを除外できます。 これにより、クエリ速度が向上します。
Hologres でパーティションテーブルを作成および削除する方法の詳細については、「CREATE PARTITION TABLE」および「CREATE/DROP PARTITION TABLE」をご参照ください。
エンジン
- フロントエンド (FE)
FE は、SQL ステートメントの認証、解析、最適化を行います。 Hologres インスタンスには複数の FE があります。 Hologres は、PostgreSQL 11 と生態学的に互換性があります。 標準の PostgreSQL 構文を使用して開発したり、PostgreSQL 互換の開発ツールや Business Intelligence (BI) ツールを使用して Hologres に接続したりできます。
- クエリエンジン (QE)
- Hologres クエリエンジン (HQE)
Alibaba Cloud によって開発された HQE は、スケーラブルな超並列処理 (MPP) アーキテクチャを使用して、完全並列コンピューティングを実装します。 HQE はベクトル化演算子を使用して CPU を最大限に活用し、究極のクエリパフォーマンスを実現します。 HQE は、Hologres QE のメインモジュールです。
- PostgreSQL クエリエンジン (PQE)
PQE は、PostgreSQL との互換性を提供します。 PQE は、PostGIS や PL/Java、PL/SQL、PL/Python で記述されたユーザー定義関数 (UDF) など、さまざまな PostgreSQL 拡張機能をサポートしています。 HQE でサポートされていない関数と演算子は、PQE を使用して実行できます。 HQE は各バージョンで継続的に最適化されています。 最終的な目標は、PQE のすべての機能を統合することです。
- Seahawks クエリエンジン (SQE)
SQE を使用すると、Hologres を MaxCompute にシームレスに接続できます。 これにより、データを移行またはインポートすることなく、あらゆるタイプの MaxCompute ファイルに高パフォーマンスでアクセスできます。 また、これにより、Hologres はハッシュテーブルや範囲クラスタテーブルなどの複雑なテーブルにアクセスし、PB レベルのバッチデータのインタラクティブ分析を実装できます。
- Hologres クエリエンジン (HQE)
- ストレージエンジン (SE)
SE は、データの管理と処理を行います。 SE を使用すると、データに対して作成、読み取り、更新、削除 (CRUD) 操作を実行できます。