Redshift veri türleri ve özellikleri hakkında bilgi edinme

Redshift’e Giriş

Jason Myers

Principal Architect

Temel veri türleri

Sayısal türler

  • SMALLINT, INTEGER, BIGINT
  • DECIMAL / NUMERIC
  • DOUBLE PRECISION
  • REAL

Tarih-saat türleri

  • DATE
  • TIME, TIMETZ
  • TIMESTAMP, TIMESTAMPTZ

Karakter türleri

  • CHAR
  • VARCHAR

Boolean türü

  • BOOLEAN
Redshift’e Giriş

Özel veri türleri

SUPER türü

  • Yarı yapılandırılmış veri
    • Diziler
    • Demetler
    • İç içe yapılar (ör. JSON)
  • İşlemek için PartiQL kullanır
  • Maksimum 16MB

VARBYTE türü

  • ikili veri (BLOB)
  • Görseller ve Videolar
Redshift’e Giriş

Desteklenmeyen PostgreSQL türleri:

PostgreSQL Türü Redshift Türleri
DATETIME TIMESTAMP, TIMESTAMPTZ
SERIAL INTEGER, BIGINT
UUID VARCHAR
JSON SUPER, VARCHAR
ARRAY SUPER, VARCHAR
BIT BOOLEAN, SMALLINT, VARCHAR
Redshift’e Giriş

Sütunları ve veri türlerini görüntüleme

-- Sütun ayrıntılarını görüntüleyin
SELECT column_name, 
       data_type, 
       character_maximum_length AS character_max_len,
       numeric_precision, 
       numeric_scale
  -- İç ve dış şemaların sütunlarını içeren görünüm kullanılıyor
  FROM SVV_ALL_COLUMNS 
 -- Yalnızca spectrumdb şemasında
 WHERE schema_name = 'spectrumdb'
   -- ecommerce_sales tablosu için
   AND table_name = 'ecommerce_sales';
Redshift’e Giriş

Sütunları ve veri türlerini görüntüleme (devam)

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
Redshift’e Giriş

Veri türü "uyumluluğu"

  • Örtük dönüşüm: atamalar, karşılaştırmalar
  • Sonuçları mutlaka tekrar kontrol edin!
Kaynak Tür Hedef Türler
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
1 https://docs.aws.amazon.com/redshift/latest/dg/c_Supported_data_types.html#r_Type_conversion
Redshift’e Giriş

Veri türlerini açıkça dökümleme

  • CAST
-- Ondalık değeri tam sayıya döküm ve takma ad verme
SELECT CAST(2.00 AS INTEGER) AS our_int;
our_int
========
2
(1 row)
Redshift’e Giriş

TO işlevleri

  • TO_CHAR, TO_DATE, TO_NUMBER
-- Dizeyi tarihe dönüştürün
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.
-- Dizeyi tarihe ayrıştırın
SELECT TO_DATE('14-01-2024 02:36:48', 'DD-MM-YYYY') AS our_date;
our_date
========
2024-01-14
(1 row)
Redshift’e Giriş

TO işlevleri (devam)

-- Tarihte ay adını alın
SELECT TO_CHAR(date '2024-01-14', 'MONTH') AS month_name;
month_name
========
JANUARY
(1 row)
  • Tarih-saat ve Sayısal biçim dizeleri
1 https://docs.aws.amazon.com/redshift/latest/dg/r_FORMAT_strings.html
Redshift’e Giriş

Hadi pratik yapalım!

Redshift’e Giriş

Preparing Video For Download...