कैसे MySQL कार्यक्षेत्र में एक सीएसवी फ़ाइल आयात करने के लिए?


88

मेरे पास एक CSV फ़ाइल है। इसमें 1.4 मिलियन रो डेटा होते हैं, इसलिए मैं एक्सेल में उस सीएसवी फ़ाइल को खोलने में सक्षम नहीं हूं क्योंकि इसकी सीमा लगभग 1 मिलियन पंक्तियाँ हैं।

इसलिए, मैं इस फ़ाइल को MySQL कार्यक्षेत्र में आयात करना चाहता हूं। इस csv फ़ाइल में जैसे कॉलम हैं

"Service Area Code","Phone Numbers","Preferences","Opstype","Phone Type"

मैं MySQL कार्यक्षेत्र में एक तालिका बनाने की कोशिश कर रहा हूं जिसका नाम "डमी" है जिसमें कॉलम जैसे हैं

ServiceAreaCodes,PhoneNumbers,Preferences,Opstyp,PhoneTyp. 

CSV फ़ाइल का नाम है model.csv। कार्यक्षेत्र में मेरा कोड इस तरह है:

LOAD DATA LOCAL INFILE 'model.csv' INTO TABLE test.dummy FIELDS TERMINATED BY ',' lines terminated by '\n';

लेकिन मुझे एक त्रुटि मिल रही है model.CSV file not found


आप इसे MySQL आयात विज़ार्ड के लिए dbForge Studio में भी कर सकते हैं । यह स्वचालित रूप से इस तरह के रास्ते में एक तालिका उत्पन्न prnt.sc/e5iqy1
Devart

जवाबों:


139

मुझे लगता है कि आप क्लाक द्वारा संलग्न याद कर रहे हैं

LOAD DATA LOCAL INFILE '/path/to/your/csv/file/model.csv'
INTO TABLE test.dummy FIELDS TERMINATED BY ','
ENCLOSED BY '"' LINES TERMINATED BY '\n';

और csv फ़ाइल को पूर्ण पथ निर्दिष्ट करें

डेटा इन्फिल लोड - MySQL प्रलेखन


1
धन्यवाद, मुझे इस कमांड में कोई त्रुटि नहीं मिल रही है। लेकिन मुझे मॉडल की तरह त्रुटि मिल रही है। फ़ाइल नहीं मिली। वह फाइल मेरे सिस्टम डेस्कटॉप में स्टोर है
vps

सीएसवी फ़ाइल मेरे सिस्टम डेस्कटॉप में संग्रहीत है
vps

5
अद्यतन: यदि गैर-मानक वर्णों के साथ तार आयात करते हैं, तो कथन के लिए "CHARACTER SET utf8" की आवश्यकता को इंगित करना उपयोगी है: LOAD DATA LOCAL INFILE '/path/to/file.csv' INTO TABLE db_name.table_name CHARACTER SETACTER SET। utf8 FIELDS TERMINATED BY ',' ENCLOSED BY '' 'लाइनों को' \ n 'द्वारा समाप्त किया गया; लक्ष्य तालिका / कॉलमों को utf-8 पर सेट किया जाना चाहिए
ılǝ

1
किसी को भी कीवर्ड LOCAL को नहीं भूलना चाहिए, आपकी क्वेरी सही है
बृज राज सिंह - MSFT

2
Mysql कार्यक्षेत्र 6.2 का उपयोग करके विंडोज 7 पर "तरह का" काम किया। मुझे डबल स्लैश का उपयोग करना पड़ा '//path//to//your//csv//file//model.csv'और सिंगल स्लैश वाले सभी फ़ील्ड टूट गए।
576i

69

यदि आपके पास छोटा डेटा सेट है, तो GUI द्वारा इसे प्राप्त करने का एक तरीका है:

  1. एक क्वेरी विंडो खोलें
  2. चयन करें * से [table_name]
  3. मेनू बार से आयात का चयन करें
  4. रिजल्ट ग्रिड के ठीक नीचे नीचे की तरफ प्रेस करें

यहां छवि विवरण दर्ज करें

संदर्भ: http://www.youtube.com/watch?v=tnhJa_zYNVY


13
सिर्फ एक नोट। यह आयात विकल्प केवल विंडोज मशीनों पर है। प्लगइन्स स्पष्ट रूप से अभी भी हैं। नेट आधारित तो लिनक्स या मैक पर काम नहीं करते हैं।
ब्रायन मार्क

8
आयात करने के बाद अप्लाई करना न भूलें।
स्टीव पिचर्स

7
खबरदार, यह बहुत धीमा हो सकता है। 25,000 पंक्तियों को करने में कुछ घंटों का समय लगा
रॉब सेडविकविक

2
समय की लंबाई बहुत हार्डवेयर पर निर्भर लगती है। मेरा घर कंप्यूटर पूरी तरह से 10K पंक्तियों पर घुट गया था। मेरा काम कंप्यूटर ने 85 सेकंड में लगभग 200 कॉलम के साथ 243K पंक्तियों को आयात किया।
कैथी।

2
@BrianC ऐसा प्रतीत होता है कि अब ऐसा नहीं होगा, यह मेरे लिए लिनक्स संस्करण पर दिखाई देता है।
जैमरएक्स 2

21

SCHEMAS के तहत नाविक में, अपने स्कीमा / डेटाबेस पर राइट क्लिक करें और "टेबल डेटा आयात विज़ार्ड" चुनें

मैक के लिए भी काम करता है।


इसने मेरे लिए उबंटू 18.04 पर काम किया जब सीएसवी से एक नई तालिका बनाई। हालाँकि मैं इस पद्धति का उपयोग करके किसी मौजूदा तालिका में डेटा जोड़ने में असमर्थ था।
एलपी व्हिगले

2

आप MySQL टेबल डेटा आयात विज़ार्ड का उपयोग कर सकते हैं


धन्यवाद :) इसने मेरी समस्या हल कर दी। हम स्तंभ का नाम बाद में UI (विशेषज्ञों के लिए नहीं) से बदल सकते हैं, एक बार जब यह आयात हो जाता है ...
विपुल कुमावत

कई चीजें हैं जो काम नहीं किया लेकिन यह आखिरकार किया। यह स्थानीय डेटा इनफ़ाइल सेटिंग्स के साथ गड़बड़ किए बिना भी काम करता है। मुझे लगता है कि MySQL आवेषण बजाय चल रहा है।
पेप्परशेक

1

फिलहाल सभी प्लेटफार्मों में CSV (MySQL वर्कबेंच का उपयोग करके) आयात करना संभव नहीं है, न ही यह सलाह दी जाती है कि यदि उक्त फाइल MySQL सर्वर होस्ट के समान होस्ट में नहीं रहती है।

हालाँकि, आप mysqlimport का उपयोग कर सकते हैं ।

उदाहरण:

mysqlimport --local --compress --user=username --password --host=hostname \
--fields-terminated-by=',' Acme sales.part_*

इस उदाहरण mysqlimportमें "बिक्री" नामक सभी फाइलों को "part_" से शुरू होने वाले एक्सटेंशन के साथ लोड करने का निर्देश दिया गया है। यह "स्प्लिट" उदाहरण में बनाई गई सभी फ़ाइलों को लोड करने का एक सुविधाजनक तरीका है। नेटवर्क ट्रैफ़िक को कम करने के लिए --compress विकल्प का उपयोग करें। --Fields-terminated-by = ',' विकल्प CSV फ़ाइलों के लिए उपयोग किया जाता है और --local विकल्प निर्दिष्ट करता है कि आने वाला डेटा क्लाइंट पर स्थित है। --Local विकल्प के बिना, MySQL डेटाबेस होस्ट पर डेटा की तलाश करेगा, इसलिए हमेशा --local विकल्प निर्दिष्ट करें।

AWS RDS प्रलेखन में इस विषय पर उपयोगी जानकारी है ।


0

यदि सर्वर दूरस्थ मशीन पर रहता है, तो सुनिश्चित करें कि फ़ाइल दूरस्थ मशीन में है और आपके स्थानीय मशीन में नहीं है।

यदि फ़ाइल उसी मशीन में है जहाँ mysql सर्वर है, तो सुनिश्चित करें कि mysql उपयोगकर्ता के पास फ़ाइल को पढ़ने / लिखने की अनुमति है, या myhql स्कीमा निर्देशिका में teh फ़ाइल की प्रतिलिपि बनाएँ:

Ubuntu में मेरे मामले में यह था: /var/lib/mysql/db_myschema/myfile.csv

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


0

यह थोड़ा मुश्किल लगता है क्योंकि इसने मुझे लंबे समय तक परेशान किया था।

आपको बस टेबल खोलने की जरूरत है (राइट सेलेक्ट्स- लिमिट 10000 पर राइट क्लिक करें) और आप एक नई विंडो खोलेंगे। इस नई विंडो में, आपको "इम्पोर्ट आइकन" मिलेगा।

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