Giới thiệu về 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 hoặc PRIMARY KEY| Name | Description | Usage |
|---|---|---|
| ALL | Toàn bộ bảng trên mọi node | Bảng tra cứu nhỏ dùng thường xuyên trong join |
| KEY | Phân phối theo dữ liệu trong cột DISTKEY | Khi tổng hợp hoặc join theo DISTKEY |
| EVEN | Phân phối vòng lượt theo hàng giữa các node | Bảng lớn không có key |
| AUTO | Dùng ALL cho bảng nhỏ. Khi lớn nếu có DISTKEY phù hợp sẽ dùng Key, nếu không thì EVEN | mặc định |
CREATE TABLE IDAHO_SITE_ID
(
'pk_siteid' INTEGER PRIMARY KEY,
'fk_monitoringlocation' INTEGER,
'organization_id' VARCHAR(31),
'organizationformalname' VARCHAR(68),
'organization' VARCHAR(16)
)
-- Thiết lập khóa phân phối dữ liệu
-- là organization_id
DISTKEY(organization_id);
CREATE TABLE IDAHO_SITE_ID
(
'pk_siteid' INTEGER PRIMARY KEY,
'fk_monitoringlocation' INTEGER,
-- Thiết lập organization_id
-- làm khóa phân phối dữ liệu
'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)
-- Thiết lập kiểu phân phối là 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
-- Thiết lập sort key
-- cho 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)
)
-- Thiết lập fk_monitoringlocation, organization_id là compound sort keys
COMPOUND SORTKEY(fk_monitoringlocation, organization_id);
-- Xem dist và sortkey
-- của một cột
SELECT column_name,
distkey,
sortkey
FROM SVV_REDSHIFT_COLUMNS
-- Chỉ trong schema spectrumdb
WHERE schema_name = 'spectrumdb'
-- Cho bảng ecommerce_sales
AND table_name = 'ecommerce_sales';
Kết quả
column | distkey | sortkey
============|=========|========
year_qtr | t | 1
total_sales | f | 2
ecom_sales | f | 0
Cột 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)
Giới thiệu về Redshift