PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

मैं इस पोस्टग्रेज क्वेरी को अमेज़ॅन रेडशिफ्ट में कैसे लिख सकता हूं जैसे कि यह पोस्टग्रेज में जितना अनुकूलित था?

Redshift क्वेरी ऑप्टिमाइज़ेशन क्लस्टर, टेबल डिज़ाइन, डेटा लोडिंग, डेटा वैक्यूमिंग और टेबल पर विश्लेषण से आता है।

मुझे उपरोक्त सूची में कुछ मुख्य स्पर्श बिंदुओं का उत्तर देने दें।1। सुनिश्चित करें कि आपकी तालिका mytable, विवरण, क्लाइंट के पास उचित SORT_KEY, DIST_KEY2 है। सुनिश्चित करें कि जॉइन में आपकी सभी टेबल एनालाइज्ड और ठीक से खाली हैं।

यहां आपके उसी SQL का एक और संस्करण Redshift प्रारूप में लिखा गया है।

मेरे द्वारा किए गए कुछ बदलाव हैं

  1. अनुकूलित क्लस्टर स्तर की गणना के लिए "क्लॉज के साथ" का उपयोग किया गया
  2. यूज्ड जॉइन उचित तरीके से करें और सुनिश्चित करें कि डेटा के आधार पर बाएँ/दाएँ शामिल हों।
  3. ऑब्जेक्ट ओरिएंटेशन के लिए क्लॉज टेबल के साथ date_range का इस्तेमाल किया।
  4. यूज्ड ग्रुप बाय नीचे मुख्य एसक्यूएल में।

रेडशिफ्ट एसक्यूएल का मेरा संस्करण

/** Date Range Computation **/
with date_range as (
    select ( current_Date - interval '2 weeks' ) as two_weeks
),
/** Filter main ResultSet**/
myGroupSet as (
    SELECT b.val AS myGroup,
           c.username,
           a.someCode,
           a.timeTaken,
           (case when (b.name == 'name1') THEN b.val::INTEGER ELSE 0 END ) as name11,
           (case when (b.name == 'name2') THEN b.val::INTEGER ELSE 0 END ) as name12
      FROM database.myTable a,
      join date_range dr on a.date > dr.two_weeks
      join database.detail b on b.id = a.id
      join database.client c on c.c_id = a.c_id
     where a.date > current_Date - interval '2 weeks'
)
/** Apply Aggregation **/
select myGroup, username, someCode, timeTaken, date,
       sum(name1), sum(name2)
  from myGroupSet
  group by myGroup, username, someCode, timeTaken, date



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक ही फ्लास्क-SQLAlchemy मॉडल के साथ कई POSTGRES डेटाबेस और स्कीमा का उपयोग करना

  2. datetime_select . के साथ मल्टीपैरामीटर त्रुटि

  3. हाइबरनेट एनोटेशन - केस असंवेदनशील UniqueConstraint

  4. Qt एप्लिकेशन से वर्तमान PostgreSQL उपयोगकर्ता की भूमिका की जांच कैसे करें?

  5. श्रेणी बनाने के लिए दो स्तंभ मानों का उपयोग कर क्वेरी