2008-12-24 8 views
6

किसी भी कारण से, मेरे पास बहुत से ग्राहक हैं जिनके पास मौजूदा डेटा है जो स्प्रेडशीट में संग्रहीत है। प्रायः सैकड़ों होते हैं, यदि प्रत्येक स्प्रेडशीट में हजारों आइटम नहीं हैं, और ग्राहक को वेबसाइट के माध्यम से मैन्युअल रूप से दर्ज करने के लिए कह रहे हैं (या स्वर्ग खुद को इस तरह से आयात करने से मना कर देता है) प्रश्न से बाहर है। आम तौर पर, यह डेटा बस डेटाबेस कॉलम में स्प्रेडशीट कॉलम को मैप नहीं करता है। वह बहुत ही आसान होगा। अक्सर, डेटाबेस में जाने से पहले डेटा को छेड़छाड़ करने की आवश्यकता होती है (डेटा को अल्पविरामों द्वारा विभाजित करने की आवश्यकता होती है) या डेटा को कई तालिकाओं में फैलाने की आवश्यकता होती है। अथवा दोनों।आप आमतौर पर स्प्रेडशीट से डेटा को एकाधिक डेटाबेस कॉलम में कैसे आयात करते हैं?

मैं यह सवाल पूछ रहा हूं, क्योंकि मुझे ऐसा करने के कई तरीकों से नहीं पता है, लेकिन क्योंकि मैं इस तरह से बस नहीं गया है, ऐसा नहीं लगता है कि इससे अधिक काम करना चाहिए । अब तक मैं (और शायद अधिक है कि मैं भूल गया हूँ) निम्न तरीकों में से सभी निकाल दिया है:

  • एक्सेल का उपयोग करते हुए डेटा को संशोधित करने, तो यह पूरे स्प्रैडशीट आयात
  • आयात करने के लिए एक छोटा सा आसान है अस्थायी तालिका में और उसके बाद एसक्यूएल
  • एक स्क्रिप्ट लेखन के साथ आयात और (मैं VBScript, C# और अब रूबी का उपयोग किया है)

अब तक यह साथ डेटा आयात करने, एक स्क्रिप्ट का उपयोग जिस तरह से किया गया है कि सबसे लचीला लग रहा था, लेकिन यह अभी भी थोड़ा गुस्सा लगता है। मुझे यह काम इतना करना है कि मैंने चीजों को गति देने के लिए थोड़ा डीएसएल लिखने पर भी विचार किया है।

लेकिन इससे पहले कि मैं उत्सुक हूं, क्या कोई बेहतर तरीका है?

उत्तर

3

यदि आप कर सकते हैं, तो आपको सीमाएं निर्धारित करनी होंगी। आपको अपेक्षित डेटा के साथ उपयोग करने के लिए एक टेम्पलेट आज़माएं और प्रदान करना चाहिए, जिसमें फ़ाइल प्रकार (एक्सेल, सीएसवी, इत्यादि), कॉलम नाम, वैध मान इत्यादि शामिल हैं। आपको फ़ाइल को ब्राउज़ करने और इसे अपलोड करने की अनुमति देनी चाहिए आपके पेज/फॉर्म पर।

फ़ाइल अपलोड होने के बाद, आपको सत्यापन और आयात करने की आवश्यकता है। ऐसा करने के लिए आप ADO.NET, फ़ाइल स्ट्रीम, डीटीएस/एसएसआईएस, या ऑफिस ऑटोमेशन का उपयोग कर सकते हैं (यदि आप माइक्रोसॉफ्ट स्टैक का उपयोग कर रहे हैं)। सत्यापन भाग में, आपको उपयोगकर्ता को बिल्कुल बताएं कि उन्होंने क्या किया है या बदलने की आवश्यकता है। इसमें सत्यापन पृष्ठ में डेटाग्रिड में वास्तविक डेटा होना चाहिए और सटीक पंक्ति/कॉलम पर त्रुटियों वाले लाल लेबल प्रदान करना शामिल हो सकता है। यदि आप कार्यालय स्वचालन का उपयोग करते हैं, तो आप उन्हें सटीक सेल नंबर दे सकते हैं, लेकिन कार्यालय पीआईए गर्दन में दर्द है।

एक बार सत्यापन स्वीकार करने के बाद, आप जो जानकारी चाहें उसे आयात कर सकते हैं।मैं इसे एक स्टेजिंग टेबल में रखना और इसे लोड करने के लिए एक संग्रहित प्रो का उपयोग करना पसंद करता हूं, लेकिन यह सिर्फ मुझे है। कुछ ऑब्जेक्ट मॉडल का उपयोग करना पसंद करते हैं, लेकिन यदि आपके पास बहुत अधिक डेटा है तो यह बहुत धीमा हो सकता है।

आप व्यक्तिगत रूप से इन फ़ाइलों को मैन्युअल रूप से लोड हो रहा है और में जाकर उन्हें हेरफेर करने के लिए हो रही है, मैं उन के बीच में communality खोजने और एक मानक का पालन करने के साथ आ सुझाव है। एक बार आपके पास यह हो जाने के बाद, आप इसे बना सकते हैं ताकि उपयोगकर्ता इसे स्वयं कर सके या आप इसे अपने आप बहुत तेज कर सकते हैं।

हाँ, यह बहुत काम है, लेकिन लंबे समय से गलत में, जब वहाँ एक प्रोग्राम है जो समय का 95% काम करता है, हर कोई जीतता है।

इस एक स्थिति है जिसमें सिर्फ स्वचालित नहीं किया जा सकता होने जा रहा है, तो आप शायद सिर्फ एक वेनिला मचान तालिका है और आयात करने के लिए करने के लिए एसक्यूएल के लिए होगा। आपको डेटा को एक स्टेजिंग टेबल में लोड करना होगा, मूल हेरफेर करना होगा, और उसके बाद इसे टी स्टेजिंग टेबल में लोड करना होगा जो आपके एसक्यूएल की अपेक्षा करता है।

मैंने कई आयात और ETL उपकरण किया है, और वास्तव में कोई आसान तरीका यह संभाल करने के लिए नहीं है। एकमात्र तरीका वास्तव में एक मानक के साथ आना है जो उचित है और इसके लिए चिपक गया है और उसके आसपास कार्यक्रम है।

+0

अधिकतर ग्राहक मानक होने के बारे में बहुत अच्छे हैं यदि आयात अक्सर होने जा रहे हैं। सबसे बड़ी समस्याएं डेटा आयात करने के साथ आती हैं जिन्हें केवल एक बार आयात करने की आवश्यकता होती है (साइट लॉन्च से पहले या जब नई सुविधाएं शामिल की जा रही हैं आदि)। –

+0

ऐसा लगता है कि मेरे लिए एक बंद है। और वे समय हैं जब हम अपनी नौकरियों से नफरत करते हैं। –

+0

मैंने अतीत में एमएसएसएलएल के डीटीएस का उपयोग किया है और इसने अच्छी तरह से काम किया है। आपके पास डेटाबेस में लॉग में डीटीएस पैकेज लिखना चाहिए ताकि आपको पता चले कि यह सफल हो या विफल हो जाए। –

2

हाँ .. वह बस बेकार है।

मैं स्क्रिप्ट के साथ जाऊंगा। और मुझे लगता है कि आपके पास दोहराने वाले कॉलम हैं जिन्हें किसी अन्य पंक्ति में एक पंक्ति से मेल खाना है। मैं उचित मिलान करूँगा और यदि आपको कोई पंक्ति मिलती है कि स्क्रिप्ट डेटा से निपटने और स्थानांतरित नहीं कर सकती है ... तो इसे लॉग करें और इसे मैन्युअल रूप से करें।

+0

मेरे द्वारा वर्णित कॉलम दोहराते हैं जैसे कि आप वर्णन करते हैं, और उचित मिलान वह है जो मैंने ग्राहकों को बताया है कि मैं कर सकता हूं। आम तौर पर, अगर वे किसी प्रकार की अनूठी आईडी को मिलान करने के लिए उपलब्ध नहीं करा सकते हैं, तो वे समझते हैं कि चीजें हमेशा पूरी तरह से मेल नहीं खाती हैं। –

2

यह थोड़ा सा विवरण है जो आपको इस पर मार देगा, लेकिन आम तौर पर, मुझे डेटा को एक्सेल से सीएसवी के रूप में निर्यात करने में सफलता मिली है, फिर इसे एक मूल या स्क्रिप्ट का उपयोग करके पढ़ना, इसे आवश्यकतानुसार मंग करना , और इसे डालने। मेरे पर्यावरण की अद्भुतता के आधार पर, स्क्रिप्ट फ़ाइल में डेटा बेस इंटरफ़ेस के साथ किया जा सकता है, जिसमें स्क्रिप्ट फ़ाइल में SQL INSERT कथन लिखना शामिल है।

Python, Ruby, और Perl के लिए अच्छे सीएसवी पैकेज उपलब्ध हैं।

+0

रूबी में वास्तव में एक पुस्तकालय है (अजीब रूप से पर्याप्त) स्प्रेडशीट जिसने एक्सेल से सीधे आयात करने के लिए बहुत अच्छी तरह से काम किया है। मुझे ParseExcel लाइब्रेरी में समस्याएं थीं (जो कि मुझे लगता है कि एक पर्ल पोर्ट है), लेकिन स्प्रेडशीट ParseExcel बनाता है और ऐसा लगता है कि कई मुद्दों को ठीक किया गया है। –

0

एक डीएसएल जाने का रास्ता है।

अपनी समस्या के लिए एक डोमेन मॉडल बनाएं। आप सेल, कॉलम, पंक्तियों, डेटाबेस टेबल, विभाजन फ़ील्ड, फ़ील्ड को संयोजित करने, कोशिकाओं से डेटाबेस कॉलम में मैपिंग के बारे में बात करते हैं, ताकि आपको आवश्यक अवधारणाएं हों। इसके अलावा आप शायद श्रेणियों (कोशिकाओं के), और चादरें चाहते हैं।

एक साधारण दृश्य केवल स्प्रेडशीट, नहीं अंतर्निहित सूत्रों में मूल्यों पर लग रहा है। स्प्रेडशीट को टैब-पृथक टेक्स्ट के रूप में निर्यात करने से आपको उस तक पहुंच मिलती है। यदि आपको सूत्रों तक पहुंच की आवश्यकता है, तो आप एक्सएमएल प्रतिनिधित्व, या तो एक्सएमएल-स्प्रेडशीट, या ऑफिस एक्सएमएल प्रारूप के साथ बेहतर हैं।

आप Excel में एक डीएसएल साथ आने के लिए सक्षम हो सकता है। इससे आपके स्मार्ट उपयोगकर्ताओं को मानचित्रण (भाग का) करने की अनुमति मिल सकती है।

संबंधित मुद्दे

 संबंधित मुद्दे