このトピックでは、自動圧縮を指定した場合と指定しない場合の非パーティション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%です。