जैसा कि यानिव केसलर ने उल्लेख किया है, तालिका बनाने के बाद विकी और सॉर्ट कुंजी को जोड़ना या बदलना संभव नहीं है, और आपको एक टेबल को फिर से बनाना होगा और सभी डेटा को नई तालिका में कॉपी करना होगा। आप एक नए डिजाइन के साथ एक तालिका को फिर से बनाने के लिए निम्न SQL प्रारूप का उपयोग कर सकते हैं।
ALTER TABLE test_table RENAME TO old_test_table;
CREATE TABLE new_test_table([new table columns]);
INSERT INTO new_test_table (SELECT * FROM old_test_table);
ALTER TABLE new_test_table RENAME TO test_table;
DROP TABLE old_test_table;
मेरे अनुभव में, इस एसक्यूएल न केवल distkey और sortkey बदल रहा, लेकिन यह भी एन्कोडिंग (संपीड़न) प्रकार स्थापित करने के लिए प्रयोग किया जाता है।
स्रोत
2013-11-21 07:27:38
यह सबसे अच्छा जवाब है। मैं जोड़ सकता हूं कि ऑपरेशन पूर्ण होने के बाद तालिका का नाम बदलना सुरक्षित हो सकता है। –
यह बहुत देर हो चुकी है, लेकिन मैं एक ही स्थिति में हूं और मैंने इस प्रकार के ऑपरेशन के प्रदर्शन के बारे में कुछ खोद दिया है, यह मानते हुए कि तालिका बड़ी है। Redshift दस्तावेज़ों का उल्लेख है कि INSERT INTO सावधानी के साथ उपयोग किया जाना चाहिए, कॉपी का समर्थन या आदेश के रूप में तालिका बनाएँ। [सीटीएएस के लिए उदाहरण] (http://docs.aws.amazon.com/redshift/latest/dg/r_CTAS_examples.html) इस समस्या का स्पष्ट रूप से उल्लेख करते हैं। – paulsef11
इस विधि के साथ समस्या यह है कि यदि आपके पास मूल तालिका के आधार पर विचार हैं, तो आपकी बूंद काम नहीं करेगी। – Pasha