লাভ:
- শক্তিশালী এসকিউএল এবং পান্ডাস কোড নেওয়ার এবং কৃত্রিম বুদ্ধিমত্তাকে স্পষ্ট স্কিমা এবং উদ্দেশ্য দিয়ে লাইন দ্বারা লাইন পড়ার এবং যাচাই করার ক্ষমতা
- সারি গণনা, ফিটিং ফাংশন এবং মার্জ/যোগদানের পরে থ্রুপুটের মতো নীরব ত্রুটিগুলি ধরার ক্ষমতা
- এটিকে নীরব না করে ডিবাগে সমস্যা সমাধান করার ক্ষমতা এবং উত্পাদন পরিবেশে এটি পরীক্ষা না করে কোড চালানো এড়াতে
ডেটা সায়েন্সের দুটি প্রাথমিক ভাষা রয়েছে: এসকিউএল (স্ট্রাকচার্ড কোয়েরি ল্যাঙ্গুয়েজ — ডাটাবেস থেকে ডেটা জিজ্ঞাসা করার ভাষা) এবং পাইথন (বিশেষত, পান্ডাস লাইব্রেরি — টেবিলগুলিকে প্রোগ্রাম্যাটিকভাবে ম্যানিপুলেট করার জন্য আদর্শ টুল)। এই ইউনিটে, আমরা একটি কোড অংশীদার হিসাবে AI ব্যবহার করতে শিখব: সঠিক প্রশ্নগুলির সাথে এটি থেকে কঠিন SQL এবং পান্ডাস কোড পাওয়া, সেই কোডটি পড়া এবং যাচাই করা, এটি ডিবাগ করা এবং এটিকে অন্ধভাবে চালানো না। AI মিনিটের পরিবর্তে সেকেন্ডে পুনরাবৃত্তিমূলক কোড লেখে; কিন্তু এটি যে কোডটি তৈরি করে তা সঠিক যুক্তি সহ সঠিক কলামটি প্রক্রিয়া করে তা নিশ্চিত করা আপনার কাজ। ওয়ার্কিং কোড মানে সঠিক কোড নয়।
কেন AI দিয়ে কোড তৈরি করা শক্তিশালী কিন্তু ঝুঁকিপূর্ণ
AI কোড তৈরিতে তিনটি বড় সুবিধা প্রদান করে: গতি (সেকেন্ডে একটি 30-লাইন গ্রুপবাই-পিভট অপারেশন লেখে), অনুস্মারক (আপনি ভুলে গেছেন এমন একটি পান্ডাস ফাংশন মনে করিয়ে দেয়), এবং শিক্ষা (লাইন দ্বারা কোড লাইন ব্যাখ্যা করে)। কিন্তু এটি তিনটি ঝুঁকি বহন করে: নীরব লজিক ত্রুটি (কোড যা ভুল কলামের যোগফল ত্রুটি ছাড়াই চলে), লাগানো ফাংশন (এমন একটি পদ্ধতির পরামর্শ দেয় যা বিদ্যমান নেই), এবং ফলন ফাঁদ (কোড যা ছোট ডেটাতে কাজ করে কিন্তু 10 মিলিয়ন সারিতে ক্র্যাশ হয়)। তাই সুবর্ণ নিয়ম: AI এর কোড পড়ুন যেন আপনি নিজেই লিখেছেন। আপনি বোঝেন না এমন লাইনটি চালাবেন না।
এসকিউএল: উৎসে ডেটা প্রক্রিয়া করুন
SQL আপনাকে ডাটাবেস থেকে ডেটা পুনরুদ্ধার করতে এবং সেখানে এটি প্রক্রিয়া করার অনুমতি দেয়; আপনি পাইথনে না টেনে লক্ষ লক্ষ লাইনের সারসংক্ষেপ করতে পারেন। বেসিক বিল্ডিং ব্লক: SELECT (কোন কলাম), WHERE (কোন সারি), GROUP BY (গোষ্ঠী এবং সংক্ষিপ্ত), যোগদান (সারণিতে যোগদান), HAVING (পোস্ট-গ্রুপ ফিল্টার)। জটিল JOIN এবং উইন্ডো ফাংশন লেখার ক্ষেত্রে AI খুবই সহায়ক, তবে দুটি জিনিস চেক করতে ভুলবেন না: সঠিক কী (ভুল কী ডুপ্লিকেট সারি) এর মাধ্যমে যোগদান করা এবং ফিল্টার যুক্তি সঠিক (বিশেষত NULL আচরণ এবং তারিখের ব্যাপ্তি)।
সতর্কতা: প্রোডাকশন ডাটাবেসের বিরুদ্ধে সরাসরি AI-জেনারেটেড SQL ক্যোয়ারী চালাবেন না। প্রথমে একটি ছোট কপি বা LIMIT দিয়ে পরীক্ষা করুন। WHERE শর্ত যাচাই না করে কখনই আপডেট/ডিলিট কোয়েরি চালাবেন না; একটি ভুল যেখানে পুরো টেবিলটি মুছে ফেলতে পারে।
পাইথন/পান্ডা: নমনীয় বিশ্লেষণ
পাইথনে টেবিল (ডেটাফ্রেম) ম্যানিপুলেট করার আদর্শ উপায় হল পান্ডাস। AI এর সবচেয়ে দক্ষ ব্যবহার হল এটিকে একটি সুস্পষ্ট স্কিম এবং উদ্দেশ্য প্রদান করা। সর্বাধিক ব্যবহৃত অপারেশন: ফিল্টার, গ্রুপবাই, মার্জ, পিভট_টেবিল, প্রয়োগ করুন। AI এগুলো দ্রুত লেখে; আপনি যা চেক করতে চান তা হল যুক্তি: সঠিক কলামে গোষ্ঠীকরণ করা হয়েছে, মার্জ কি অপ্রত্যাশিতভাবে সারির সংখ্যা পরিবর্তন করেছে (সর্বদা মার্জ করার পরে সারির সংখ্যা পরীক্ষা করুন), কি চেইন অপারেশনগুলি মূল পরিবর্তন করছে।
লেনদেন
এসকিউএল
পান্ডা
চেকপয়েন্ট
ফিল্টারিং
কোথায়
df[df.x > 5]
NULL/NaN আচরণ
গ্রুপিং
দ্বারা গ্রুপ
df.groupby()
এটা কি সঠিক কলাম?
একত্রিত করা
যোগ দিন
df.merge()
সারি গণনা পরিবর্তন
সারাংশ
AVG(), SUM()
.mean(), .sum()
কোন কলামটি সংগ্রহ করা হয়েছিল
অনুসারে সাজান
অর্ডার করুন
.sort_values()
দিকনির্দেশ (আরোহী/অবরোহী)
অনুলিপি
স্বতন্ত্র
.drop_duplicates()
কোন কলামে?
ডিবাগিং: এআই সহ
কোড ব্যর্থ হলে, AI একটি চমৎকার ডিবাগিং অংশীদার। এটিকে সম্পূর্ণ ত্রুটি বার্তা এবং প্রাসঙ্গিক কোড স্নিপেট দিন। তবে দুটি ফাঁদ থেকে সাবধান। প্রথমত, এআই এমন একটি সমাধানের পরামর্শ দিতে পারে যা ত্রুটিটিকে "নিস্তব্ধ" করে (যেমন, সতর্কতা গোপন করা) - এটি ত্রুটিটি ঠিক করে না, এটি লুকিয়ে রাখে। দ্বিতীয়ত, এআই কখনও কখনও একটি সমস্যা "সমাধান" করার সময় নীরবে অন্য আচরণ পরিবর্তন করে। নিয়ম: ফিক্সটি বুঝুন, নিঃশব্দ না করার সমাধান করুন এবং যাচাই করার পরেও আউটপুটটি সঠিক কিনা তা যাচাই করুন।
ব্যাখ্যাযোগ্য এবং রক্ষণাবেক্ষণযোগ্য কোড চাই
AI থেকে কোড কেনার সময়, এমন কোডের জন্য জিজ্ঞাসা করুন যা পাঠযোগ্য এবং রক্ষণাবেক্ষণযোগ্য, কেবলমাত্র "কাজ করে" এমন কোড নয়। আপনি বা একজন সহকর্মী কয়েক মাস পরে সেই কোডটি খুললে, এটি কী করে তা বুঝতে সক্ষম হওয়া উচিত। এটি করার জন্য, AI-তে তিনটি জিনিস অন্তর্ভুক্ত করার অভ্যাস করুন: অর্থপূর্ণ পরিবর্তনশীল নাম (orders_temiz, df2 নয়), সমালোচনামূলক পদক্ষেপে সংক্ষিপ্ত মন্তব্য লাইন (কেন, কী করা হচ্ছে তা ব্যাখ্যা করা), এবং একটি ম্যাজিক নম্বরের পরিবর্তে একটি নামযুক্ত ধ্রুবক (ACCEPT_ESIGI = 0.85 কোডের পরিবর্তে 0.85 b)। এছাড়াও দীর্ঘ একক-লাইন চেইন এড়িয়ে চলুন (এক লাইনে পাঁচটি ক্রিয়া সংযুক্ত করা); এগুলো ডিবাগিং কঠিন করে তোলে। ডিফল্টরূপে, AI প্রায়ই সংক্ষিপ্ত এবং "স্মার্ট" কোড তৈরি করে; আপনি যদি স্পষ্টভাবে বলেন "পাঠযোগ্য, ব্যাখ্যাযোগ্য, রক্ষণাবেক্ষণযোগ্য লিখুন", আপনি অনেক বেশি রক্ষণাবেক্ষণযোগ্য আউটপুট পাবেন। এটিও প্রজননযোগ্যতার ভিত্তি (ইউনিট 10): যে কোডটি বোঝা যায় না সেটি হল কোড যা নিরাপদে পুনরায় চালানো যায় না।
তিনটি মিনি কেস
কেস 1 - প্রতিলিপিতে যোগ দিন। একজন বিশ্লেষক পণ্য টেবিলের সাথে অর্ডারগুলিকে একত্রিত করে দেখেন যে মোট টার্নওভার 3 গুণ বেশি। কারণ: পণ্য টেবিলে প্রতিটি পণ্যের একাধিক সারি (বিভিন্ন রঙ) ছিল; প্রতিটি অর্ডারের নকল যোগদান করুন। AI এর কোড "কাজ করছিল", কিন্তু লাইনের সংখ্যা 240 হাজার থেকে 690 হাজারে বেড়েছে। পাঠ: সর্বদা মার্জ/যোগদানের পরে লাইনের সংখ্যা পরীক্ষা করুন।
কেস 2 — ফিটিং ফাংশন। তিনি একজন ইন্টার্নকে AI df.groupby('x').summarize() পরামর্শ দেন; পান্ডাতে এমন কোন পদ্ধতি নেই (. agg() আছে)। কোড কাজ করেনি, ইন্টার্ন 20 মিনিটের জন্য হারিয়ে গেছে। পাঠ: ডক থেকে আপনি চিনতে পারেন না এমন একটি ফাংশন যাচাই করুন; AI পদ্ধতিগুলি তৈরি করতে পারে।
কেস 3 - ফলন পতন। একটি কোড প্রতিটি সারির জন্য আবেদনে ডাটাবেসকে জিজ্ঞাসা করছিল; এটি 5,000 লাইনে চলে, 4 মিলিয়ন লাইনে 9 ঘন্টা সময় নেয় এবং থামে। যখন AI একটি ভেক্টরাইজড (ব্যাচ) সমাধানের পরামর্শ দেয়, সময়টি 40 সেকেন্ডে কমিয়ে দেওয়া হয়েছিল। পাঠ: ছোট ডেটাতে কাজ করে এমন কোড বড় ডেটাতে ক্র্যাশ হতে পারে; দক্ষতা বিবেচনা করুন।
চারটি অনুলিপিযোগ্য টেমপ্লেট
1) স্কিমা সহ SQL অনুরোধ করা:
আপনার ভূমিকা: SQL সহকারী (PostgreSQL)। সারণী:- অর্ডার (আইডি, গ্রাহক_আইডি, তারিখ টাইমস্ট্যাম্প, পরিমাণ সংখ্যা)- গ্রাহকদের (আইডি, শহরের পাঠ্য) টাস্ক: 2024 সালে মোট টার্নওভার এবং অর্ডারের সংখ্যা পান, টার্নওভারের দ্বারা সাজানো ক্রম অনুসারে। আপনি NULL শহরগুলি কীভাবে পরিচালনা করেন তা ব্যাখ্যা করুন। আমি প্রথমে LIMIT দিয়ে প্রশ্নটি পরীক্ষা করব; আপডেট/ডিলিট জেনারেশন।
2) চেকপয়েন্ট সহ পান্ডা প্রক্রিয়া:
আমার কাছে DataFrames df (অর্ডার) এবং df_customers (গ্রাহক) আছে। শহর প্রতি গড় পরিমাণ গণনা করুন. গুরুত্বপূর্ণ: মার্জ করার আগে এবং পরে সারির সংখ্যা প্রিন্ট করুন যাতে আমি দেখতে পারি যে ডুপ্লিকেশন আছে কিনা। আপনি কোন কলামে মার্জ করেছেন এবং কেন আপনি ভিতরের/বাম বেছে নিয়েছেন তা ব্যাখ্যা করুন।
3) কোড ব্যাখ্যা এবং যাচাইকরণ:
নিম্নলিখিত পান্ডাস কোড লাইনটি লাইন দ্বারা ব্যাখ্যা করুন: প্রতিটি লাইন কী করে, এটি কী অনুমান করে, কোন ক্ষেত্রে এটি ভুল ফলাফল দিতে পারে? আমি একটি ফাজ ফাংশন ব্যবহার করে থাকলে আমাকে জানান। কোড: [পেস্ট]
4) ডিবাগিং:
এই কোড এই ত্রুটি দেয়. সম্পূর্ণ ত্রুটি বার্তা: [পেস্ট]. কোড: [পেস্ট]। ত্রুটির মূল কারণ ব্যাখ্যা করুন এবং এটি ঠিক করুন। সতর্কতাকে নীরব করে নয়, আসলে সমস্যাটি সমাধান করে এটি ঠিক করুন। ফিক্সটি আউটপুট পরিবর্তন করেছে কিনা তাও নির্দেশ করুন।
দুর্বল প্রম্পট / শক্তিশালী প্রম্পট
দুর্বল প্রম্পট:
একটি প্রশ্ন লিখুন যা আমাকে শহর প্রতি বিক্রয় দেয়।
টেবিলের নাম, কলাম, ডাটাবেসের ধরন, NULL আচরণ অস্পষ্ট। এআই সাধারণ, এটি সম্ভবত এমন একটি প্রশ্ন তৈরি করবে যা আপনার টেবিলের সাথে খাপ খায় না।
শক্তিশালী প্রম্পট:
আপনার ভূমিকা: SQL সহকারী (MySQL 8)। সারণী: বিক্রয় (আইডি, সিটি ভারচার, পরিমাণ দশমিক, তারিখ তারিখ)। টাস্ক: 2024 সালের জন্য মোট এবং গড় পরিমাণ, প্রতি শহরে অর্ডারের সংখ্যা পান; মোট পরিমাণ দ্বারা কমিয়ে সাজান; 100 টির বেশি অর্ডার সহ শুধুমাত্র শহরগুলি দেখান (HAVING)৷ শহর বাদ দিয়ে NULL৷ প্রশ্নটি ব্যাখ্যা করুন; আমি LIMIT দিয়ে পরীক্ষা করব।
এখানে ডাটাবেস, স্কিমা, ফিল্টার, বাছাই এবং NULL নিয়ম সুস্পষ্ট।
সাধারণ ভুল
- কোডটি না পড়েই চালানো হচ্ছে। কাজের কোড সঠিক কোড নয়; যে কোডটি ভুল কলামটি পরিচালনা করে তাও ত্রুটি ছাড়াই চলে।
- মার্জ/যোগদানের পর সারির সংখ্যা পরীক্ষা করা হচ্ছে না। ভুল কী নিঃশব্দে সারি সদৃশ করে এবং মোট সংখ্যা বৃদ্ধি করে।
- ফিটিং ফাংশন যাচাই করা হচ্ছে না। AI এমন পদ্ধতির পরামর্শ দিতে পারে যা বিদ্যমান নেই; নথি থেকে নিশ্চিত করুন যে আপনি এটি চিনতে পারেন না।
- দক্ষতার কথা ভাবছেন না। লক্ষ লক্ষ সারিতে ছোট ডেটা ক্র্যাশের ক্ষেত্রে প্রয়োগ/লুপ কাজ করে; ভেক্টরাইজ করা
- উৎপাদন ডাটাবেসে সরাসরি চালান। বিশেষ করে WHERE বা পরীক্ষা ছাড়া আপডেট/ডিলিট চালানো বিপর্যয়কর।
টিপ: আপনি AI থেকে প্রাপ্ত কোডের প্রতিটি অংশে একটি "বৈধতা লাইন" যোগ করার অভ্যাস করুন: একটি প্রাক- এবং প্রক্রিয়াকরণের পরে লাইনের সংখ্যা, কয়েকটি নমুনা লাইন এবং হাতে হাতে একটি সমালোচনামূলক মোট। এই তিনটি চেক সবচেয়ে নীরব যুক্তি ত্রুটি ধরা.
সংক্ষেপে
AI একটি শক্তিশালী অংশীদার যা দ্রুত SQL এবং pandas কোড তৈরি করে, কিন্তু এটি একটি অন্ধ কর্তৃপক্ষ নয়। তাকে সুস্পষ্টভাবে পরিকল্পনা এবং উদ্দেশ্য দিন; এটি তৈরি করা কোডটি পড়ুন যেন আপনি নিজেই এটি লিখেছেন; মার্জ/যোগদানের পর সারি সংখ্যা, ফিটিং ফাংশন এবং থ্রুপুট পরীক্ষা করুন; উৎপাদন ডাটাবেসে পরীক্ষা না করে এটি চালাবেন না। ডিবাগ করার সময়, সমস্যাটি সমাধান করার লক্ষ্য রাখুন, এটি নীরব নয়। যে কোডটি কাজ করে সেটি সঠিক কোড নয়; শুধুমাত্র আপনি সঠিকতা গ্যারান্টি দিতে পারেন.
আবেদন টাস্ক
একটি বিশ্লেষণ প্রশ্ন চয়ন করুন (যেমন "চ্যানেল প্রতি মাসিক টার্নওভার") এবং SQL এবং পান্ডা উভয়ের সাথে AI থেকে কোডের অনুরোধ করুন। লাইন দ্বারা উভয় কোড লাইন পড়ুন, মার্জ/যোগদানের পরে লাইনের সংখ্যা পরীক্ষা করুন এবং কমপক্ষে একটি গুরুত্বপূর্ণ যোগফল ম্যানুয়ালি যাচাই করুন। দুটি কোড একই ফলাফল দেয় কিনা তুলনা করুন; ভিন্ন হলে, কেন তা খুঁজে বের করুন।
চেকলিস্ট
- [ ] আমি কি টেবিল/স্কিমা এবং উদ্দেশ্য পরিষ্কারভাবে AI কে দিয়েছি?
- [ ] আমি কি পড়েছি এবং বুঝতে পেরেছি যে কোডটি লাইন দ্বারা উত্পাদিত হয়েছে?
- [ ] আমি কি মার্জ/যোগদানের পরে লাইনের সংখ্যা পরীক্ষা করেছি?
- [ ] ডকুমেন্টেশন থেকে আমি যে ফাংশনগুলিকে চিনতে পারি না তা কি আমি যাচাই করেছি?
- [ ] আমি কি প্রথম নিরাপদ/ছোট ডেটাতে কোডটি পরীক্ষা করেছি এবং উৎপাদন পরিবেশে নয়?