Redshift入門
Jason Myers
Principal Engineer
CREATE TABLE IDAHO_SITE_ID
(
'pk_siteid' INTEGER PRIMARY KEY,
'fk_monitoringlocation' INTEGER,
'organization_id' VARCHAR(31),
'organizationformalname' VARCHAR(68),
'organization' VARCHAR(16)
);

DISTKEY、PRIMARY KEY を使用| Name | Description | Usage |
|---|---|---|
| ALL | 全ノードにテーブル全体を配置 | 結合で頻用する小さな参照テーブル |
| KEY | DISTKEY 列の値で分散 | DISTKEY で集計・結合する場合 |
| EVEN | 行単位でノードに均等分散 | 適切なキーのない大規模テーブル |
| AUTO | 小規模は ALL。成長時は適切な DISTKEY があれば KEY、なければ EVEN | 既定 |
CREATE TABLE IDAHO_SITE_ID
(
'pk_siteid' INTEGER PRIMARY KEY,
'fk_monitoringlocation' INTEGER,
'organization_id' VARCHAR(31),
'organizationformalname' VARCHAR(68),
'organization' VARCHAR(16)
)
-- データの配布キーを
-- organization_id に設定
DISTKEY(organization_id);
CREATE TABLE IDAHO_SITE_ID
(
'pk_siteid' INTEGER PRIMARY KEY,
'fk_monitoringlocation' INTEGER,
-- organization_id をデータの
-- 配布キーに設定
'organization_id' VARCHAR(31) DISTKEY,
'organizationformalname' VARCHAR(68),
'organization' VARCHAR(16)
);
CREATE TABLE IDAHO_SITE_ID
(
'pk_siteid' INTEGER PRIMARY KEY,
'fk_monitoringlocation' INTEGER,
'organization_id' VARCHAR(31),
'organizationformalname' VARCHAR(68),
'organization' VARCHAR(16)
)
DISTKEY(organization_id)
-- 配布スタイルを KEY に設定
DISTSTYLE KEY;
CREATE TABLE IDAHO_SITE_ID
(
'pk_siteid' INTEGER PRIMARY KEY,
'fk_monitoringlocation' INTEGER,
'organization_id' VARCHAR(31),
'organizationformalname' VARCHAR(68),
'organization' VARCHAR(16)
)
DISTKEY(organization_id)
DISTSTYLE KEY
-- データのソートキーを
-- fk_monitoringlocation に設定
SORTKEY(fk_monitoringlocation);
CREATE TABLE IDAHO_SITE_ID
(
'pk_siteid' INTEGER PRIMARY KEY,
'fk_monitoringlocation' INTEGER,
'organization_id' VARCHAR(31),
'organizationformalname' VARCHAR(68),
'organization' VARCHAR(16)
)
-- fk_monitoringlocation, organization_id を複合ソートキーに設定
COMPOUND SORTKEY(fk_monitoringlocation, organization_id);
-- 列の dist と sortkey の
-- 状態を表示
SELECT column_name,
distkey,
sortkey
FROM SVV_REDSHIFT_COLUMNS
-- spectrumdb スキーマのみ
WHERE schema_name = 'spectrumdb'
-- ecommerce_sales テーブル
AND table_name = 'ecommerce_sales';
結果
column | distkey | sortkey
============|=========|========
year_qtr | t | 1
total_sales | f | 2
ecom_sales | f | 0
Distkey 列
SVV_TABLE_INFOtable | encoded | diststyle | sortkey1 | skew_sortkey1 | skew_rows
===============|=========|=================|==============|===============|===========
ecommerce_sales| N | KEY(year_qtr) | year_qtr | |
date | N | ALL | dateid | 1.00 |
SELECT table
diststyle
FROM SVV_TABLE_INFO
WHERE schema like 'spectrumdb';
table | diststyle
================|==============
ecommerce_sales | KEY(year_qtr)
Redshift入門