İşlemler

Redshift’e Giriş

Jason Myers

Principal Engineer

İşlem kullanma motivasyonu

SELECT name,
       priority,
  FROM data_log
       -- SYSDATE = 2024-02-07 00:17:24.259227
 WHERE intake_ts < SYSDATE;

SELECT name,
       data_size,
  FROM data_details
       -- SYSDATE = 2024-02-07 00:18:04.830527
 WHERE current_intake_date < SYSDATE;
Redshift’e Giriş

Deyim gruplama örneği

data_intake

name priority
idaho_monitoring_locations 1
idaho_samples 2
idaho_site_id 3
UPDATE data_intake 
   SET priority=1 
 WHERE name='idaho_samples';

UPDATE data_intake 
   SET priority=2 
 WHERE name='idaho_monitoring_locations';
Redshift’e Giriş

Hatalı tablo sonuçları

data_intake

name priority
idaho_monitoring_locations 1
idaho_samples 1
idaho_site_id 3
Redshift’e Giriş

İşlemlerin avantajları ve dikkat edilmesi gerekenler

  • Tutarlı veri sonuçları
  • Bir sorgu grubunda başarı/başarısızlık zorunluluğu
  • Eşzamanlı işlemler

Varsayılan Yürütme Davranışı

  • Her SQL deyimi bir işlemdir!

İşlemler bazı fonksiyonları etkiler

  • İşlem başında ayarlanır ve sabit kalır
    • SYSDATE, TIMESTAMP, CURRENT_DATE

Bazı fonksiyonlar işlemleri atlar

  • Her deyim yürütümünde ayarlanır
    • GETDATE, TIMEOFDAY
Redshift’e Giriş

İşlem Yapısı

  • BEGIN; veya START TRANSACTION; ile başlar
  • Her biri noktalı virgülle biten bir veya daha fazla SQL deyimi içerir
  • END; veya COMMIT; ile biter
  • NOT: Noktalı virgüller önemlidir
BEGIN;

query1; query2;
END;
Redshift’e Giriş

Tutarlı sorgu sonuçları alma

-- Bir işlemi başlat
BEGIN;
SELECT name,
       priority,
  FROM data_log
       -- SYSDATE = 2024-02-07 00:17:24.259227
 WHERE intake_ts < SYSDATE;

SELECT name,
       data_size,
  FROM data_details
       -- SYSDATE = 2024-02-07 00:17:24.259227
 WHERE current_intake_date < SYSDATE;
-- Bir işlemi bitir
END;
Redshift’e Giriş

İşlemlerde fonksiyon davranışı

-- Bir işlemi başlat
BEGIN;
SELECT name,
       priority,
  FROM data_intake
       -- GETDATE = 2024-02-07 00:17:24.259227
 WHERE data_intake_ts < GETDATE();

 SELECT name,
       data_size,
  FROM data_details
       -- GETDATE = 2024-02-07 00:18:44.830527
 WHERE current_intake_date < GETDATE();
-- Bir işlemi bitir
END;
Redshift’e Giriş

Hadi pratik yapalım!

Redshift’e Giriş

Preparing Video For Download...