Redshift में Tables

Redshift परिचय

Jason Myers

Principal Engineer

Tables बनाना

CREATE TABLE IDAHO_SITE_ID
(
    'pk_siteid' INTEGER PRIMARY KEY,
    'fk_monitoringlocation' INTEGER,
    'organization_id' VARCHAR(31),
    'organizationformalname' VARCHAR(68),
    'organization' VARCHAR(16)
);
Redshift परिचय

डेटा distribute करना

Redshift क्लस्टर

  • Compute nodes में distributed
  • Redshift internal row id, DISTKEY, या PRIMARY KEY use करता है
  • कई distribution styles
Redshift परिचय

Distribution styles

Name Description Usage
ALL हर node पर पूरी table छोटे fact lookup tables जिन्हें joins में अक्सर चाहिए
KEY DISTKEY कॉलम के डेटा से distribute जब हम DISTKEY पर aggregate या join करें
EVEN Rows बारी-बारी से nodes में बड़ी tables जिनमें keys नहीं हैं
AUTO छोटे tables पर ALL. बढ़ने पर suitable DISTKEYS होने पर KEY, वरना EVEN default
Redshift परिचय

DISTKEY

CREATE TABLE IDAHO_SITE_ID
(
    'pk_siteid' INTEGER PRIMARY KEY,
    'fk_monitoringlocation' INTEGER,
    'organization_id' VARCHAR(31),
    'organizationformalname' VARCHAR(68),
    'organization' VARCHAR(16)
)
-- डेटा distribution key organization_id सेट करता है
DISTKEY(organization_id);
CREATE TABLE IDAHO_SITE_ID
(
    'pk_siteid' INTEGER PRIMARY KEY,
    'fk_monitoringlocation' INTEGER,
    -- डेटा distribution key के रूप में 
    -- organization_id सेट करता है
    'organization_id' VARCHAR(31) DISTKEY,
    'organizationformalname' VARCHAR(68),
    'organization' VARCHAR(16)
);
Redshift परिचय

Distribution style सेट करना

CREATE TABLE IDAHO_SITE_ID
(
    'pk_siteid' INTEGER PRIMARY KEY,
    'fk_monitoringlocation' INTEGER,
    'organization_id' VARCHAR(31),
    'organizationformalname' VARCHAR(68),
    'organization' VARCHAR(16)
)
DISTKEY(organization_id)
-- Distribution style को key पर सेट करता है
DISTSTYLE KEY;
Redshift परिचय

SORTKEY

CREATE TABLE IDAHO_SITE_ID
(
    'pk_siteid' INTEGER PRIMARY KEY,
    'fk_monitoringlocation' INTEGER,
    'organization_id' VARCHAR(31),
    'organizationformalname' VARCHAR(68),
    'organization' VARCHAR(16)
)
DISTKEY(organization_id)
DISTSTYLE KEY
-- डेटा sort key 
-- fk_monitoringlocation पर सेट करता है
SORTKEY(fk_monitoringlocation);
  • Disk पर storage order नियंत्रित करता है
  • predicate-pushdown की क्षमता बढ़ाता है
  • कई हो सकते हैं
Redshift परिचय

Multiple SORTKEYs परिभाषित करना

CREATE TABLE IDAHO_SITE_ID
(
    'pk_siteid' INTEGER PRIMARY KEY,
    'fk_monitoringlocation' INTEGER,
    'organization_id' VARCHAR(31),
    'organizationformalname' VARCHAR(68),
    'organization' VARCHAR(16)
)
-- fk_monitoringlocation, organization_id को compound sort keys के रूप में सेट करता है
COMPOUND SORTKEY(fk_monitoringlocation, organization_id);
Redshift परिचय

कॉलम DISTKEY और SORTKEY स्थिति देखना

-- किसी कॉलम की dist और sortkey 
-- स्थिति देखें
SELECT column_name, 
       distkey, 
       sortkey
  FROM SVV_REDSHIFT_COLUMNS
 -- केवल spectrumdb schema में
 WHERE schema_name = 'spectrumdb'
   -- ecommerce_sales table के लिए
   AND table_name = 'ecommerce_sales';
  • Results

       column   | distkey | sortkey
    ============|=========|========
    year_qtr    | t       | 1
    total_sales | f       | 2
    ecom_sales  | f       | 0
    
  • Distkey कॉलम

    • t का मतलब True - f का मतलब False
  • SORTKEY कॉलम
    • # sort key में position है, 0 मतलब sortkey का हिस्सा नहीं
Redshift परिचय

Distribution style देखना

  • SVV_TABLE_INFO
  • Query प्रदर्शन को प्रभावित करने वाले table विवरण
    • distribution style
    • distribution skew
    • table size
    • sortkeys
    • sortkey skew
table          | encoded | diststyle       | sortkey1     | skew_sortkey1 | skew_rows
===============|=========|=================|==============|===============|===========
ecommerce_sales| N       | KEY(year_qtr)   | year_qtr     |               |          
date           | N       | ALL             | dateid       |          1.00 |
Redshift परिचय

Distribution style जारी

SELECT table
       diststyle 
  FROM SVV_TABLE_INFO
 WHERE schema like 'spectrumdb';
table           | diststyle 
================|============== 
ecommerce_sales | KEY(year_qtr)
Redshift परिचय

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

Redshift परिचय

Preparing Video For Download...