মাইএসকিউএল ওয়ার্কবেঞ্চে কীভাবে কোনও সিএসভি ফাইল আমদানি করবেন?


88

আমার একটি সিএসভি ফাইল আছে। এটিতে 1.4 মিলিয়ন সারি ডেটা রয়েছে, তাই আমি এক্সেলে সেই সিএসভি ফাইলটি খুলতে পারছি না কারণ এর সীমা প্রায় 1 মিলিয়ন সারি।

অতএব, আমি এই ফাইলটি মাইএসকিউএল ওয়ার্কবেঞ্চে আমদানি করতে চাই। এই সিএসভি ফাইলের মতো কলাম রয়েছে

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

আমি মাইএসকিউএল ওয়ার্কব্যাঞ্চে একটি টেবিল তৈরি করার চেষ্টা করছি যার নাম "ডামি" রয়েছে যার মতো কলাম রয়েছে

ServiceAreaCodes,PhoneNumbers,Preferences,Opstyp,PhoneTyp. 

সিএসভি ফাইলটির নাম দেওয়া হয়েছে model.csv। ওয়ার্কবেঞ্চে আমার কোডটি এরকম:

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

তবে আমি এর মতো একটি ত্রুটি পাচ্ছি model.CSV file not found


আপনি এটি মাইএসকিউএল আমদানি উইজার্ডের জন্য dbForge স্টুডিওতেও করতে পারেন । এটি স্বয়ংক্রিয়ভাবে এমনভাবে একটি টেবিল উত্পন্ন করে prnt.sc/e5iqy1
ডিভার্ট

উত্তর:


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';

এবং সিএসভি ফাইলের পুরো পথ নির্দিষ্ট করুন

লোড ডেটা ইনফিল - মাইএসকিউএল ডকুমেন্টেশন


4
আপনাকে ধন্যবাদ, এই কমান্ডটিতে কোনও ত্রুটি পাচ্ছি না model তবে মডেল সিএসভি ফাইলের মতো ত্রুটি পাওয়া গেল না। এই ফাইলটি আমার সিস্টেমে ডেস্কটপে স্টোর রয়েছে
vps

সিএসভি ফাইলটি আমার সিস্টেমের ডেস্কটপে সংরক্ষিত আছে
vps

4
আপডেট: যদি মানহীন অক্ষরের সাথে স্ট্রিং আমদানি করা হয়, "বর্ণনামূলক সেট utf8" এর বিবৃতিটি উল্লেখ করা কার্যকর: লড ডেটা লোকাল ইনফিল '/path/to/file.csv' INTO TABLE db_name.table_name অক্ষর সেট utf8 FIELDS দ্বারা নিয়ন্ত্রিত ',' দ্বারা অন্তর্ভুক্ত '"' লাইনগুলি '\ n' দ্বারা সমাপ্ত করা হয়েছে; লক্ষ্য সারণী / কলামগুলিও utf-8
ǝlǝ

4
এছাড়াও লোকাল কীওয়ার্ডটি ভুলে যাওয়া উচিত নয়, আপনার ক্যোয়ারী ঠিক আছে
ব্রিজ রাজ সিং - এমএসএফটি

4
মাইএসকিএল ওয়ার্কবেঞ্চ 6.2 ব্যবহার করে উইন্ডোজ 7 এ "ধরনের" কাজ করেছেন। আমাকে ডাবল স্ল্যাশ ব্যবহার করতে হয়েছিল '//path//to//your//csv//file//model.csv'এবং একক স্ল্যাশযুক্ত সমস্ত ক্ষেত্র ভেঙে গেছে।
576i

69

আপনার কাছে যদি আরও ছোট ডেটা সেট থাকে, জিইউআই দ্বারা এটি অর্জনের একটি উপায় হ'ল:

  1. একটি কোয়েরি উইন্ডো খুলুন
  2. [টেবিলের নাম] থেকে * নির্বাচন করুন
  3. মেনু বার থেকে আমদানি নির্বাচন করুন
  4. ফলাফল গ্রিডের নীচে নীচে প্রয়োগ করুন টিপুন

এখানে চিত্র বর্ণনা লিখুন

তথ্যসূত্র: http://www.youtube.com/watch?v=tnhJa_zYNVY


13
শুধু একটি নোট. এই আমদানি বিকল্পটি কেবল উইন্ডোজ মেশিনে রয়েছে। প্লাগইনগুলি দৃশ্যত এখনও রয়েছে et নেট ভিত্তিক তাই লিনাক্স বা ম্যাকের জন্য কাজ করবেন না।
ব্রায়ানসি

8
আমদানি করার পরে প্রয়োগ চাপতে ভুলবেন না।
স্টিভ পিটারস

7
সাবধান, এটি খুব ধীর হতে পারে। 25,000 সারি করতে কয়েক ঘন্টা সময় লেগেছিল
রব সেডগুইক

4
সময়ের দৈর্ঘ্যটি খুব হার্ডওয়্যার নির্ভর। আমার বাড়ির কম্পিউটারটি 10 ​​কে সারিতে সম্পূর্ণভাবে দম বন্ধ হয়ে গেছে। আমার কাজের কম্পিউটারটি 85 সেকেন্ডে প্রায় 200 কলাম সহ 243 কে সারি আমদানি করেছে।
ক্যাথিএ

4
@ ব্রায়ানসি এটি আর ঘটে না বলে মনে হয়, এটি আমার জন্য লিনাক্স সংস্করণে উপস্থিত হয়।
জামারেক্স 2

21

SCHEMAS এর অধীনে নেভিগেটরে, আপনার স্কিমা / ডাটাবেসটি ডান ক্লিক করুন এবং "সারণী ডেটা আমদানি উইজার্ড" নির্বাচন করুন

ম্যাকের জন্যও কাজ করে।


CSv থেকে একটি নতুন টেবিল তৈরি করার সময় এটি আমার জন্য উবুন্টু 18.04 এ কাজ করেছিল। তবে আমি এই পদ্ধতিটি ব্যবহার করে একটি বিদ্যমান টেবিলের সাথে ডেটা যুক্ত করতে পারিনি।
এলপি হুইগলি

2

আপনি মাইএসকিউএল টেবিল ডেটা আমদানি উইজার্ড ব্যবহার করতে পারেন


ধন্যবাদ :) এটি আমার সমস্যার সমাধান করেছে। আমরা ইউআই থেকে কলামের নামটি পরে পরিবর্তন করতে পারি (বিশেষজ্ঞদের জন্য নয়), এটি একবার আমদানি হয়ে
গেলে

কাজ না করে এমন অনেকগুলি জিনিস চেষ্টা করেও শেষ পর্যন্ত তা করে। এটি স্থানীয় ডেটা ইনফিট সেটিংসের সাথে গোলযোগ না করেও কাজ করে। আমি অনুমান করছি এর পরিবর্তে মাইএসকিউএল সন্নিবেশ চালাচ্ছে।
পেপারশেকার

1

এই মুহুর্তে সমস্ত প্ল্যাটফর্মে কোনও সিএসভি (মাইএসকিউএল ওয়ার্কবেঞ্চ ব্যবহার করে) আমদানি করা সম্ভব নয়, যদি না বলা হয় যে ফাইলটি মাইএসকিউএল সার্ভার হোস্টের মতো একই হোস্টে না থাকে।

তবে, আপনি মাইএসকিএলিম্পোর্ট ব্যবহার করতে পারেন ।

উদাহরণ:

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

এই উদাহরণে mysqlimport"বিক্রয়" নামের সমস্ত ফাইল "অংশ_" দিয়ে শুরু করে একটি এক্সটেনশন দিয়ে লোড করার নির্দেশ দেওয়া হয়েছে। "বিভক্ত" উদাহরণে তৈরি করা সমস্ত ফাইল লোড করার জন্য এটি একটি সুবিধাজনক উপায়। নেটওয়ার্ক ট্র্যাফিক কমাতে --compress বিকল্পটি ব্যবহার করুন। --ফিল্ডস-টার্মিনেটেড বাই বাই '', 'বিকল্পটি সিএসভি ফাইলগুলির জন্য ব্যবহৃত হয় এবং --local বিকল্পটি উল্লেখ করে যে আগত ডেটা ক্লায়েন্টে রয়েছে। --Local বিকল্প ব্যতীত, মাইএসকিউএল ডাটাবেস হোস্টের ডেটা সন্ধান করবে, তাই সর্বদা --local বিকল্পটি নির্দিষ্ট করে।

এডাব্লুএস আরডিএস ডকুমেন্টেশনে এই বিষয়ে দরকারী তথ্য রয়েছে ।


0

সার্ভারটি যদি কোনও রিমোট মেশিনে থাকে, তবে ফাইলটি আপনার স্থানীয় মেশিনে নয় দূরবর্তী মেশিনে রয়েছে তা নিশ্চিত করুন।

ফাইলটি যদি একই মেশিনে থাকে যেখানে মাইএসকিএল সার্ভার থাকে, তা নিশ্চিত করুন যে মাইএসকিএল ব্যবহারকারীটির কাছে ফাইলটি পড়ার / লেখার অনুমতি রয়েছে বা মাইএসকিএল স্কিমা ডিরেক্টরিতে ফাইলটি অনুলিপি করুন:

উবুন্টুতে আমার ক্ষেত্রে এটি ছিল: /var/lib/mysql/db_myschema/myfile.csv

এছাড়াও, এই সমস্যার তুলনায় নয়, তবে নতুন লাইনগুলির সাথে যদি আপনার সমস্যা হয় তবে লাইন শেষটি উইন্ডোস ফর্ম্যাটে পরিবর্তন করতে, ফাইলটি সংরক্ষণ করুন এবং আবার চেষ্টা করুন sub


0

এটি কিছুটা জটিল বলে মনে হচ্ছে যেহেতু এটি দীর্ঘদিন ধরে আমাকে সত্যিই বিরক্ত করেছিল।

আপনাকে কেবল সারণীটি খুলতে হবে (ডান ক্লিক করুন "সারি নির্বাচন করুন-সীমা 10000") এবং আপনি একটি নতুন উইন্ডো খুলবেন। এই নতুন উইন্ডোতে, আপনি "আমদানি আইকন" পাবেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.