パーティション化されていないNoPIテーブルと列パーティション テーブル(自動圧縮あり/なし)の比較 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage

このトピックでは、自動圧縮を指定した場合と指定しない場合の非パーティションNoPIテーブルと列パーティション テーブルを比較します。

次のCREATE TABLE文により、このトピックで検討するテーブルの最初のバージョンalbum_artistを作成します。

このテスト テーブルalbum_artistの最初のバージョンは、パーティション化されていないNoPIテーブルalbum_artist_ord_nopiとして作成します。

CREATE TABLE album_artist_ord_nopi (
  artist       CHARACTER(25) NOT NULL,
  album        CHARACTER(50) NOT NULL,
  release_date DATE          NOT NULL,
  sold         INTEGER       NOT NULL,
  producer     CHARACTER(40))
NO PRIMARY INDEX;

パーティション化されていないNoPIテーブルalbum_artist_ord_nopiにデータを入れた状態は、次のようになります。

album_artist_ord_nopi
part HB row # 1s & 0s artist album release_date sold producer
0 n 2 0,1 Keith Rowe Harsh 06-25-1980 1,850,000 Felix Klopotek
0 n 3 1,1 Derek Bailey Lot ‘74 07-04-2010 1,000,000 Derek Bailey
0 n 1 1,1 Albert Ayler Spiritual Unity 11-28-1964 2,375,000 Bernard Stollman
0 n 5 1,1 Albert Ayler Bells 01-28-1965 975,000 Bernard Stollman
0 n 6 1,1 Albert Ayler Spirits Rejoice 06-25-1965 3,100,000 Bernard Stollman
0 n 8 1,0 Pierre Boulez Pli Selon Pli 07-04-1973 3,250,000 Paul Myers
0 n 7 0,1 Keith Rowe Duos for Doris 04-14-2003 2,500,000 Jon Abbey
0 n 9 1,1 Karlheinz Stockhausen Sternklang 11-28-1976 750,000 Dr. Rudolf Werner
0 n 4 1,1 Bix Beiderbecke Singin’ the Blues 04-14-1990 3,125,000 Tommy Rockwell

説明

行ヘッダーの要素 内容
part コンテナのパーティション番号
HB コンテナのハッシュ バケット番号
Row #n コンテナの行番号
1s & 0s コンテナのプレゼンス ビット

このテスト テーブルalbum_artistの2番目のバージョンは、列パーティション テーブルalbum_artist_cp_nopi_no_ac(自動圧縮なし)として作成します。

CREATE TABLE album_artist_cp_nopi_no_ac (
  artist       CHARACTER(25) NOT NULL NO AUTO COMPRESS,
  album        CHARACTER(50) NOT NULL NO AUTO COMPRESS,
  release_date DATE NOT NULL          NO AUTO COMPRESS,
  sold         INTEGER       NOT NULL NO AUTO COMPRESS,
  producer     CHARACTER(40)          NO AUTO COMPRESS)
NO PRIMARY INDEX
PARTITION BY COLUMN;

列パーティション テーブルalbum_artist_cp_nopi_no_ac(自動圧縮なし)にデータを入れた列コンテナは、次のようになります。


データが入っているパーティション テーブルの列コンテナ

説明

列コンテナの要素 内容
Part n コンテナのパーティション番号
HB コンテナのハッシュ バケット番号
Row #n コンテナの行番号
1s & 0s コンテナのプレゼンス ビット

このテーブルに対してクエリーを行い、コレクションに含まれるKeith Roweのアルバムを調べることができます。

SELECT album
FROM album_artist_cp_nopi_no_ac
WHERE artist = ‘Keith Rowe’;

""

このテスト テーブルalbum_artistの3番目のバージョンは、列パーティション テーブルalbum_artist_cp_nopi_ac(自動圧縮あり)として作成します。

CREATE TABLE album_artist_cp_nopi_ac (
  artist       CHARACTER(25) NOT NULL,
  album        CHARACTER(50) NOT NULL,
  release_date DATE          NOT NULL,
  sold         INTEGER       NOT NULL,
  producer     CHARACTER(40))
NO PRIMARY INDEX
PARTITION BY COLUMN;

列パーティション テーブルalbum_artist_cp_nopi_acに自動圧縮ありでデータを入れた列コンテナは、次のようになります。

artist   album   release_date   sold   producer
Part 1-HB-Row # 1 Part 1-HB-Row # 1 Part 1-HB-Row # 1 Part 1-HB-Row # 1 Part 1-HB-Row # 1
1s and 0s 1s and 0s 1s and 0s 1s and 0s 1s and 0s
Keith Rowe (2) Harsh 06-25-1980 1,850,000 Felix Klopotek
Derek Bailey Lot ‘74 07-04-1980 1,000,000 Derek Bailey
Albert Ayler (3) Spiritual Unity 11-28-1992 2,375,000 Bernard Stollman
Pierre Boulez Bells 06-25-1980 975,000 Bernard Stollman
Karlheinz Stockhausen Spirits Rejoice 01-28-2000 3,100,000 Bernard Stollman
Bix Beiderbecke Pli Selon Pli 07-04-1980 3,250,000 Paul Myers
  Duos for Doris 04-14-1992 2,500,000 Jon Abbey
  Sternklang 11-28-1992 750,000 Dr. Rudolf Werner
  Singin’ the Blues 04-14-1992 3,125,000 Tommy Rockwell
ランレングス符号化 後続スペースの削除 値リストの圧縮 圧縮なし null圧縮

各コンテナの最下段に、Teradata Databaseが選択して適用した自動圧縮のタイプを記載してあります。

次の図は、列パーティション テーブルのコンテナの自動圧縮によって実現できる領域節約の程度を示しています。この例のどこにも記載していないArtistコンテナの項目から成るそれぞれ30文字の29行(合計870バイト)について、Teradata Databaseは、何種類かの自動圧縮方法を使用して最終サイズ53バイトまでコンテナのデータを圧縮します。縮小率は99.4%です。