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入門