ट्रांज़ैक्शंस

Redshift परिचय

Jason Myers

Principal Engineer

ट्रांज़ैक्शंस का उपयोग क्यों करें

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 परिचय

स्टेटमेंट ग्रुपिंग उदाहरण

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 परिचय

त्रुटि के बाद तालिका परिणाम

data_intake

name priority
idaho_monitoring_locations 1
idaho_samples 1
idaho_site_id 3
Redshift परिचय

ट्रांज़ैक्शन: फायदे और ध्यान योग्य बातें

  • सुसंगत डेटा आउटपुट
  • क्वेरियों के समूह के लिए सर्वस्वीकार सफलता या विफलता आवश्यक
  • समवर्ती ऑपरेशन

डिफॉल्ट निष्पादन व्यवहार

  • हर SQL स्टेटमेंट खुद एक ट्रांज़ैक्शन है!

ट्रांज़ैक्शंस कुछ फंक्शंस को प्रभावित करते हैं

  • ट्रांज़ैक्शन की शुरुआत में सेट होते हैं और वही रहते हैं
    • SYSDATE, TIMESTAMP, CURRENT_DATE

कुछ फंक्शंस ट्रांज़ैक्शंस से बाहर रहते हैं

  • हर स्टेटमेंट के निष्पादन पर सेट होते हैं
    • GETDATE, TIMEOFDAY
Redshift परिचय

ट्रांज़ैक्शंस की संरचना

  • BEGIN; या START TRANSACTION; से शुरू होता है
  • हर SQL स्टेटमेंट के बाद सेमिकोलन के साथ एक या अधिक स्टेटमेंट होते हैं
  • END; या COMMIT; से बंद होता है
  • नोट: सेमिकोलन ज़रूरी हैं
BEGIN;

query1; query2;
END;
Redshift परिचय

सुसंगत क्वेरी परिणाम पाना

-- एक ट्रांज़ैक्शन शुरू करें
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;
-- ट्रांज़ैक्शन समाप्त करें
END;
Redshift परिचय

ट्रांज़ैक्शन में फंक्शन का व्यवहार

-- एक ट्रांज़ैक्शन शुरू करें
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();
-- ट्रांज़ैक्शन समाप्त करें
END;
Redshift परिचय

अभ्यास करते हैं!

Redshift परिचय

Preparing Video For Download...