आर्कजीआईएस एफजीडीबी टेबल आकार सीमा के भीतर होने के बावजूद जियोडैटबेस टेबल को फाइल करने के लिए विशाल सीएसवी फ़ाइल से सभी रिकॉर्ड आयात करने में विफल रहता है


11

मैं 4GB RAM के साथ विंडोज 7 64-बिट पर ArcGIS 10.0 का उपयोग कर रहा हूं।

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

समस्या यह है कि आर्कगिस केवल एक निश्चित बिंदु पर रिकॉर्ड आयात करना छोड़ देता है। मैं रूपांतरण के तहत "तालिका से तालिका" उपकरण का उपयोग कर रहा हूं> जियोडेटाबेस के लिए, लेकिन "कॉपी पंक्तियों" उपकरण में एक ही समस्या है। यहां तक ​​कि अगर मैं सिर्फ CSV फ़ाइल को सीधे आर्कजीआईएस में जोड़ देता हूं, तो इसे पहले एफजीडीबी तालिका में बदलने की कोशिश किए बिना, समस्या एक ही है। मेरी एक तालिका में लगभग 11 मिलियन रिकॉर्ड हैं, और आर्कगिस केवल उनमें से लगभग 10 मिलियन का आयात करता है। आर्कगिस मुझे नहीं बताता है कि कोई त्रुटि हुई है, उपकरण बस खत्म हो जाता है जैसे कि कुछ भी गलत नहीं है।

मैंने इसे अब कुछ समय के लिए आज़माया है और FGDB तालिका में इसे बनाने वाले रिकॉर्ड की संख्या हमेशा समान होती है, और मैंने कभी नहीं सुना है फ़ाइल आकार की सीमा नहीं दिखाई देती है (2 का वर्ग नहीं) 16)। आर्कजीआईएस लगभग 6 मिलियन रिकॉर्ड के साथ एक और सीएसवी आयात करने में सक्षम था और सभी रिकॉर्ड के माध्यम से आया था (हालांकि समस्याओं के साथ मैं बड़ी तालिका के साथ हूं, छोटा एक प्रकार का संदिग्ध भी है)। ESRI की वेब साइट एक फ़ाइल जियोडेटाबेस में निम्नलिखित आकार की सीमाओं को सूचीबद्ध करती है , और मैं उनमें से किसी को मारने से दूर हूं:

  • फ़ाइल जियोडेटाबेस आकार: कोई सीमा नहीं
  • तालिका या सुविधा वर्ग आकार: 1 टीबी (डिफ़ॉल्ट), 4 जीबी या 256 टीबी कीवर्ड के साथ
  • फ़ीचर कक्षाओं और तालिकाओं की संख्या: 2,147,483,647
  • फ़ीचर वर्ग या तालिका में फ़ील्ड की संख्या: 65,534
  • एक फीचर क्लास या टेबल में पंक्तियों की संख्या: 2,147,483,647
  • जियोडैटेबेस नाम की लंबाई: एक फ़ोल्डर में ऑपरेटिंग सिस्टम के पात्रों की संख्या
  • फ़ीचर वर्ग या तालिका नाम की लंबाई: 160 वर्ण
  • फ़ील्ड नाम की लंबाई: 64 वर्ण
  • पाठ क्षेत्र की चौड़ाई: 2,147,483,647

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


2
यदि "FGDB तालिका में इसे बनाने वाले रिकॉर्ड की संख्या हमेशा समान होती है" तो मैं पिछले और अगले रिकॉर्डों पर एक नज़र डालूंगा कि क्या उनमें कुछ ऐसा हो सकता है जो पहले सफलतापूर्वक आयात किए गए लाखों आयातों की तुलना में असंगत दिखता है।
PolyGeo

1
अच्छा विचार। मैं काटे गए FGDB तालिका में पिछले रिकॉर्ड और उसके बाद के रिकॉर्ड (CSV से) के बीच कोई अंतर नहीं देख सकता। मैंने स्रोत CSV से सफलतापूर्वक सभी आयातित रिकॉर्ड को हटाने का प्रयास किया, फिर शेष को दूसरे FGDB तालिका में आयात किया, और यह काम किया। तो यह किसी भी एक रिकॉर्ड के साथ एक समस्या प्रतीत नहीं होती है। चीजों को बदतर बनाने के लिए, मैंने दो FGDB तालिकाओं को मिला दिया (उन दोनों के बीच मेरे पास सभी स्रोत रिकॉर्ड हैं), और एक बार फिर ArcGIS का दिखावा सब कुछ ठीक हो गया, लेकिन विलय की गई तालिका में दोनों के 10.9 मिलियन रिकॉर्ड में से केवल 9.6 मिलियन हैं। FGDB टेबल।
Dan C

क्या आपने ESRI के साथ एक समर्थन घटना खोली है? यह इस बिंदु पर लगता है, आपने पाया है कि संभावित रूप से एक गंभीर समस्या क्या हो सकती है। यदि और कुछ नहीं है, तो सहायक कर्मचारी इसके बारे में जानने में दिलचस्पी लेंगे क्योंकि वे पहले से ही एक समाधान जान सकते हैं, या परीक्षण में मदद करने के लिए तैयार होंगे।
स्पैटियल

मैं गेट स्पैटियल से सहमत हूं, लेकिन एक अंतिम परीक्षण जिसे आप चलाना चाहते हैं, एक सीएसवी फ़ाइल को एक फ़ील्ड के साथ उत्पन्न कर रहा है जिसमें आप समान मान (शायद "परीक्षण") रखते हैं। यदि आपका सिद्धांत है कि 9.6 मिलियन अधिकतम है, तो यह सीमा कभी भी हिट होगी, "परीक्षण" की 10 मिलियन लाइनें उपयोग की जाती हैं, लेकिन तब नहीं जब 9.5 मिलियन लाइनें होती हैं।
PolyGeo

मैंने अब एक अलग, लेकिन बड़े (10 मिलियन से अधिक रिकॉर्ड) CSV के साथ प्रयास किया है और यह उसी तरह विफल रहता है, लेकिन एक अलग लाइन (लगभग 8.9 मिलियन रिकॉर्ड्स में मिलता है)। तो यह रिकॉर्ड की एक विशिष्ट संख्या, या एक विशिष्ट तालिका आकार प्रतीत नहीं होता है। मैं दो क्षेत्रों के साथ CSV का परीक्षण करूँगा और देखूँगा कि क्या होता है। मैं सोमवार को ESRI को किसी भी तरह से कॉल करूंगा, हालांकि, बिना किसी त्रुटि संदेश के साथ विफल होने वाली यह प्रक्रिया अस्वीकार्य है और रिकॉर्ड भी बनाती है जो इसे संदिग्ध बनाते हैं।
दान सी।

जवाबों:


9

मैंने इस बारे में ईएसआरआई समर्थन को फोन किया और उनका जवाब उत्साहजनक नहीं था, लेकिन इसने समस्या की व्याख्या की। Paraphrasing ESRI: समस्या यह है कि 32-बिट सॉफ्टवेयर वाला आर्कगिस डेस्कटॉप, 4GB RAM का उपयोग करने के लिए सीमित है। टेबल के रूप में संग्रहीत होने से पहले पाठ फ़ाइल को रैम में संसाधित किया जाना है, इसलिए प्रसंस्करण के दौरान कुछ कविता में आर्कजीआई रैम की सीमा को मार रहा था और बस वहीं रुक रहा था। मैं जो फ़ाइल आयात कर रहा था उसका आकार लगभग 6GB था। जाहिरा तौर पर यह तथ्य कि यह एक त्रुटि संदेश दिए बिना विफल रहा, मेरे लिए अद्वितीय है, मैंने कोशिश की कि मेरे कार्यालय के अन्य लोग इसे करें और आयात अभी भी विफल रहा है, लेकिन इसने एक त्रुटि संदेश दिया (एक अनहेल्दी, लेकिन कम से कम कुछ ऐसा जो इसे होने दे। उपयोगकर्ता जानता है कि कुछ गलत हुआ), और ईएसआरआई प्रतिनिधि ने कहा कि उसे एक त्रुटि देनी चाहिए।

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

मैं ArcGIS 10.0 का उपयोग कर रहा हूं, लेकिन ArcGIS 10.1 सर्विस पैक 1 को अभी जारी किया गया था और 64-बिट पृष्ठभूमि वाले जियोप्रोसेसर का उपयोग करने की क्षमता जोड़ता है, जो कि जियोप्रोसेसर को 4GB से अधिक रैम का उपयोग करने देगा, जो इस समस्या को ठीक कर सकता है - मैं नहीं कर सकता परीक्षण है कि।

अद्यतन: मैं अब ArcGIS 10.1 SP1 (64-बिट पृष्ठभूमि वाले जियोप्रोसेसिंग एडऑन के साथ) का उपयोग कर रहा हूं और यह सफलतापूर्वक इन विशाल .CSV को आयात करता है, कम से कम जो मैंने अब तक निपटा है। 14GB RAM (हाँ, 14), 6GB .CSV के साथ लगभग 10.5 मिलियन पंक्तियों वाली मशीन सफलतापूर्वक FDBDB तालिका में आयात करती है।


1
मुझे उत्सुकता होगी यदि आप इसे GDAL के 64 बिट के निर्माण में चलाने का प्रयास कर सकते हैं। मुझे यकीन है कि यह ठीक काम करेगा।
रागी यासर बुरहुम

7

डेटा लोड उद्देश्यों के लिए, मेमोरी में एक विशाल CSV फ़ाइल पढ़ना मूर्खतापूर्ण है। यह केवल वास्तव में कभी भी समय पर 1 पंक्ति पढ़ने की आवश्यकता है।

मैं एक पायथन स्क्रिप्ट लिखने का सुझाव दूंगा और csvइसे लाइन द्वारा लाइन पढ़ने और InsertCursor(या अधिमानतः arcpy.da.InsertCursorयह तेज है, लेकिन केवल 10.1 पर उपलब्ध है) का उपयोग करके तालिका में पंक्तियों को सम्मिलित करने के लिए मॉड्यूल का उपयोग करें ।

संपादित करें: बस अपने अंतिम पैराग्राफ को पढ़ें। ऐसा लगता है कि आप वास्तव में पायथन के अंदर यह सब बहुत आसानी से कर सकते हैं, यहां तक ​​कि परिणाम को सीएसवी या किसी अन्य प्रारूप में वापस निर्यात कर सकते हैं।

यदि आप वास्तव में वर्णन कर सकते हैं कि आपको प्रत्येक पंक्ति और स्तंभ के साथ क्या करने की आवश्यकता है जो सहायक होगा।


4

क्या आपने 5GB सीएसवी फ़ाइलों को छोटे में विभाजित करने की कोशिश की है।

पंक्तियों या फ़ाइल गणना के आधार पर सीएसवी को विभाजित करने के लिए एक उपकरण है।

फ़ाइलों को विभाजित करें और फिर आयात करने का प्रयास करें .. लेकिन इस उपकरण में एक सीमा है, मुझे लगता है कि यह केवल एक फ़ाइल में तालिका के लिए काम करेगा (मुझे ऐसा लगता है)। कृपया। कोशिश करो।

http://www.shivaranjan.com/2008/11/06/how-to-split-csv-file-into-multiple-parts-easily-and-quickly/


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

ठीक है, मैंने अभी यह कोशिश की है और यह काम करता है। CSV को दो छोटे लोगों में विभाजित करने के बाद (मैन्युअल रूप से, एक पाठ संपादक के साथ), उन्होंने दो अलग-अलग FGDB तालिकाओं में सफलतापूर्वक आयात किया और सभी रिकॉर्ड हैं। लेकिन जब मैं उन दो FGDB तालिकाओं को एक में मिलाने की कोशिश करता हूं, तो ArcGIS एक बार फिर इस प्रक्रिया से गुजरता है जैसे कि कुछ भी गलत नहीं है, और फिर विलय की गई तालिका 1.3 मिलियन रिकॉर्ड गायब है।
डेन सी।

2

मैं एक बड़ी पाइप-सीमांकित पाठ फ़ाइल (2,712,391) की एक ही पंक्ति पर इस त्रुटि (001156) के माध्यम से लगभग एक चौथाई रास्ते पर चल रहा था।
इसलिए मुझे लगा कि उस लाइन में कुछ गड़बड़ है, लेकिन यह बाकी पंक्तियों के समान था।
मैंने आंशिक आयात से पंक्तियों को हटाना और फिर डेटा लोड करना (लोड> लोड डेटा ...) को समाप्त कर दिया और सभी 2+ + लाइनों को प्राप्त करने में सक्षम था।

मैं भी, 16GB RAM पर 10.1 SP1 w / 64 बिट बैकग्राउंड जियोप्रोसेसिंग का उपयोग कर रहा हूं और यह एक ऐसी प्रक्रिया है जो RAM का उपयोग करेगी (प्रत्येक प्रक्रिया अभी तक 64-बिट में सक्षम नहीं है)।
धीमा, klunky वर्कअराउंड, लेकिन यह लगातार काम करता है।
यदि आपको आयात की किसी भी डिग्री के साथ कोई सफलता नहीं मिल रही है तो आपको पहले खाली टेबल सेट करना पड़ सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.