में स्टार स्कीमा जेनरेट करना मैं एसक्यूएल डाटावायरहाउस दुनिया से हूं जहां एक फ्लैट फीड से मैं आयाम और तथ्य सारणी उत्पन्न करता हूं। सामान्य डेटा गोदाम परियोजनाओं में हम फ़ीड को वास्तविकता और आयाम में विभाजित करते हैं। उदाहरण के लिए:हाइव
मैं पूरी तरह से Hadoop के लिए नया हूँ और मुझे पता है कि मैं छत्ते में डेटा गोदाम का निर्माण कर सकते आया था। अब, मैं गाइड का उपयोग करने से परिचित हूं जो मुझे लगता है कि हाइव में प्राथमिक कुंजी के रूप में लागू होता है। तो, नीचे की रणनीति हाइव में तथ्य और आयाम को लोड करने का सही तरीका है?
- लोड स्रोत डेटा को एक हाइव टेबल में लोड करें; मान लें कि Sales_Data_Warehouse
sales_data_warehouse से आयाम उत्पन्न करें; पूर्व:
चयन New_Guid(), ग्राहक का, Customer_Address Sales_Data_Warehouse
जब सभी आयामों तो किया जाता है
चयन New_Guid() 'Fact_Key' के रूप में की तरह इस तथ्य तालिका लोड, Customer.Customer_Key, स्टोर से .Store_Key ... Sales_Data_Warehouse के रूप में 'स्रोत' से source.Customer_Name = Customer.Customer_Name पर Customer_Dimension ग्राहक शामिल हों और source.Customer_Address = Customer.Customer_Address शामिल हों Store_Dimension के रूप में 'स्टोर' पर Store.Store_Name = Source.St ore_Name शामिल हों Product_Dimension के रूप में 'उत्पाद' पर .....
इस तरह से मैं अपने तथ्य और छत्ता में आयाम तालिका लोड करना चाहिए है?
इसके अलावा, सामान्य गोदाम परियोजनाओं में हमें आयाम विशेषताओं को अद्यतन करने की आवश्यकता है (उदा: ग्राहक_एड्रेस कुछ और में बदल दिया गया है) या तथ्यों की तालिका विदेशी कुंजी को अपडेट करना होगा (शायद ही कभी, लेकिन ऐसा होता है)। तो, मैं हाइव में एक INSERT-UPDATE लोड कैसे कर सकता हूं। (जैसे हम एसएसआईएस में लुकअप करते हैं या टीएसक्यूएल में मेर्ज स्टेटमेंट करते हैं)?
जिस तरह से आप कर रहे हैं वह सही है। हाइव संस्करण 0.14 –
से अद्यतन क्वेरी का समर्थन करता है यदि ग्राहक नाम बदलते हैं तो –
कोई महत्वपूर्ण अवधारणा नहीं है, तो आपको दोनों टेबल "ग्राहक" तालिका और व्युत्पन्न तालिका –