Verticaのオブジェクト階層
Verticaは列指向データベースであるため、データは列ごとに管理されます。各列のデータや統計情報等は「.gt」という拡張子のファイルに格納されており、複数の.gtファイルのまとまりを「コンテナ」と呼びます。そのコンテナが複数集まって「プロジェクション」を構成しています。そして各プロジェクションは対象の「テーブル」に紐づいています。テーブル
SQLを実行する際にFROM句で検索、更新対象として指定します。しかし、Verticaのテーブルは実際にはデータを保持していない論理スキーマであり、SQLがテーブルに対して発行された場合は、オプティマイザが対応するプロジェクションにアクセスし、データの検索等を行います。プロジェクション
コンテナの集合体であり、1つのプロジェクションには1つのテーブルの全列(あるいは特定の列)のデータが格納されています。Verticaではデータはテーブルではなく対応するプロジェクションに格納されています。コンテナ
複数の.gtファイルからなるオブジェクト単位です。.gtファイル
.gtファイルには、実際のデータ、インデックス情報、及び統計情報が格納されています。なお、VerticaにはOracleの表領域のような考え方はなく、ファイルの格納先はデータディレクトリ内でVertica
が自動で決定するため、ユーザが設定する必要はありません。
検証バージョンについて
この記事の内容はVertica 12.0で確認しています。更新履歴
2023/05/15 Vertica12.0用に検証バージョンを修正2019/04/15 本記事を公開