यह अच्छा सवाल है। वर्तमान में, साइटस मौजूदा डेटा के विभाजन प्रकार को बदलने का एक सीधा तरीका प्रदान नहीं करता है।
रेंज पार्टिशनिंग में, रिकॉर्ड्स को उनके पार्टीशन कॉलम वैल्यू और शार्ड मिन/मैक्स वैल्यू के अनुसार शार्क में रखा जाता है। यदि कोई रिकॉर्ड x शार्द y में रहता है, तो इसका अर्थ है y.minvalue <= x.partition_column <= y.maxvalue
।
हैश विभाजन में, विभाजन कॉलम हैश किया जाता है और इस हैशेड मान के अनुसार रिकॉर्ड को रूट किया जाता है। इसलिए, न्यूनतम/अधिकतम मान जो आप pg_dist_shard
. में देखते हैं हैश फ़ंक्शन के परिणाम के लिए सीमा मान हैं। इस मामले में y.minvalue <= hash(x.partition_column) <= y.maxvalue
।
इसलिए, आपके द्वारा बताए गए परिवर्तन करने से गलत वितरण समाप्त हो जाएगा। श्रेणी विभाजन से हैश विभाजन में स्विच करने के लिए, डेटा को फिर से वितरित किया जाना चाहिए। ऐसा करने के लिए, मेरा सुझाव है कि डेटा को एक खाली हैश-विभाजित तालिका में पुनः लोड करें।
अधिक जानकारी के लिए, आप वितरित तालिकाओं के साथ कार्य करना और हैश वितरण साइटस दस्तावेज़ीकरण के अनुभाग।