Redshift 입문
Jason Myers
Principal Architect
| PostgreSQL Type | Redshift Types |
|---|---|
| DATETIME | TIMESTAMP, TIMESTAMPTZ |
| SERIAL | INTEGER, BIGINT |
| UUID | VARCHAR |
| JSON | SUPER, VARCHAR |
| ARRAY | SUPER, VARCHAR |
| BIT | BOOLEAN, SMALLINT, VARCHAR |
-- 열 상세 보기
SELECT column_name,
data_type,
character_maximum_length AS character_max_len,
numeric_precision,
numeric_scale
-- 내부·외부 스키마 열을 포함한 뷰 사용
FROM SVV_ALL_COLUMNS
-- spectrumdb 스키마만
WHERE schema_name = 'spectrumdb'
-- ecommerce_sales 테이블
AND table_name = 'ecommerce_sales';
column_name | data_type | character_max_len | numeric_precision | numeric_scale
=============================|===================|===================|===================|==============
year_qtr | character varying | 100 | null | null
total_sales | integer | null | 32 | 0
ecom_sales | integer | null | 32 | 0
percent_ecom | real | null | null | null
percent_change_quarter_total | real | null | null | null
percent_change_quarter_ecom | real | null | null | null
percent_change_year_total | real | null | null | null
percent_change_year_ecom | real | null | null | null
| From Type | To Types |
|---|---|
| CHAR | VARCHAR |
| DATE | CHAR, VARCHAR, TIMESTAMP, TIMESTAMPTZ |
| TIMESTAMP | CHAR, DATE, VARCHAR, TIMESTAMPTZ |
| BIGINT | BOOLEAN, CHAR, DECIMAL, DOUBLE PRECISION, INTEGER, REAL, SMALLINT, VARCHAR |
| DECIMAL | BIGINT, CHAR, DOUBLE PRECISION, INTEGER, REAL, SMALLINT, VARCHAR |
-- decimal을 integer로 캐스팅하고 별칭 지정
SELECT CAST(2.00 AS INTEGER) AS our_int;
our_int
========
2
(1 row)
-- 문자열을 날짜로 변환
SELECT CAST('14-01-2024 02:36:48' AS DATE) AS out_date;
date/time field value out of range: "14-01-2024 02:36:48"
HINT: Perhaps you need a different "datestyle" setting.
-- 문자열을 파싱해 날짜로 변환
SELECT TO_DATE('14-01-2024 02:36:48', 'DD-MM-YYYY') AS our_date;
our_date
========
2024-01-14
(1 row)
-- 날짜에서 월 이름 얻기
SELECT TO_CHAR(date '2024-01-14', 'MONTH') AS month_name;
month_name
========
JANUARY
(1 row)
Redshift 입문