কয়েক বছর আগেকার গ্রীষ্মের এক দুপুরে, আমি যখন আমার ল্যাপটপে লক্ষ লক্ষ লগ ফাইল নিয়ে কাজ করতে হিমশিম খাচ্ছিলাম, তখন মনে হচ্ছিলো যেন একটা স্প্রেডশিটকে কারখানার কনভেয়ার বেল্টের মতো ব্যবহার করার চেষ্টা করছি। ল্যাপটপটা ঝড়ের মধ্যে একটা ছোট কুকুরছানার মতো করুণ শব্দ করছিল। তখনই কেউ একজন বলল, “তুমি কি Databricks ব্যবহার করে দেখেছ?” আর ঠিক তখনই যেন সব থমকে গেল।
যদি “স্পার্ক (Spark),” “ক্লাস্টার (clusters),” এবং “ডেল্টা লেক (Delta Lake)” শব্দগুলো শুনে আপনার পাহাড়ের দিকে পালাতে ইচ্ছে করে, তাহলে আপনার জন্য সুখবর আছে: Databricks ব্যবহার করা রকেট চালানোর মতো কঠিন কিছু নয়। এটাকে ডেটা বিশেষজ্ঞদের জন্য একটা সাধারণ রান্নাঘর হিসেবে ভাবুন—যেখানে শেফেরা (আপনি এবং আপনার দল) উপকরণ (ডেটা) নিয়ে আসতে পারেন, বার্নার (কম্পিউট ক্লাস্টার) ব্যবহার করতে পারেন এবং রেসিপি (নোটবুক) অনুসরণ করে এমন খাবার (বিশ্লেষণ, ড্যাশবোর্ড, মেশিন লার্নিং মডেল) তৈরি করতে পারেন যা সত্যিই ব্যবসার কাজে লাগে।
এই নির্দেশিকাতে, আমরা আপনার কর্মক্ষেত্র স্থাপন করব, আপনার প্রথম ক্লাস্টার চালু করব, একটি নোটবুকে কোড লিখব, SQL দিয়ে কোয়েরি করব, ডেল্টা টেবিলগুলিতে ফলাফল সংরক্ষণ করব, কাজের সময়সূচী তৈরি করব এবং দুটি বহুল প্রচলিত সমস্যা এড়াব: অপ্রত্যাশিত বিল এবং রহস্যময় “আমার কাজটি কেন ব্যর্থ হল?” রাতের দুঃস্বপ্ন। আমি বিষয়গুলোকে সহজ, ব্যবহারিক এবং সৎ রাখার চেষ্টা করব—যেন আমরা দুই প্রতিবেশী বেড়ার ওপর ঝুঁকে গল্প করছি, শুধু পার্থক্য হল আমাদের বেড়াটা পারকোয়েট ফাইলের তৈরি।
Databricks আসলে কী?
Databricks কে বিগ ডেটা এবং এআই-এর জন্য একটি অল-ইন-ওয়ান স্টুডিও হিসেবে ভাবুন। এটি Apache Spark-কে একটি বন্ধুত্বপূর্ণ ইন্টারফেসের মধ্যে আবদ্ধ করে, সহযোগী নোটবুক যুক্ত করে, ডেল্টা লেকের (একটি সুপারপাওয়ার্ড টেবিল ফরম্যাট) মাধ্যমে ডেটা পরিচালনা করে এবং আপনাকে গভর্নেন্স সরঞ্জাম দেয় যাতে আপনি ভুল করে ডেটা-কল সারা রাত খোলা না রাখেন। আপনি পাইথন (Python), SQL, Scala, বা R লিখতে পারেন; বিভিন্ন ভাষার সংমিশ্রণ ঘটাতে পারেন; এবং আপনার সহকর্মীদের একে অপরের সাথে ধাক্কাধাক্কি না করে একই নোটবুকে কাজ করার জন্য আমন্ত্রণ জানাতে পারেন।
আপনার মানসিক মডেল
- ওয়ার্কস্পেস (Workspace): আপনার প্রকল্পের সদর দফতর—ব্যবহারকারী, নোটবুক, রেপো, কাজ।
- কম্পিউট (Compute): ক্লাস্টার (নোটবুক এবং কাজের জন্য) এবং SQL ওয়্যারহাউস (BI/SQL কোয়েরির জন্য)।
- স্টোরেজ (Storage): আপনার ক্লাউড ডেটা (S3/ADLS/GCS)। Databricks টেবিল সহ একটি বন্ধুত্বপূর্ণ ক্যাটালগ যুক্ত করে যা আপনি কোয়েরি করতে পারেন।
- গভর্নেন্স (Governance): অ্যাক্সেস কন্ট্রোল এবং ইউনিটি ক্যাটালগ যাতে সঠিক ব্যক্তি সঠিক ডেটা দেখতে পায়।
- পাইপলাইন (Pipelines): ডেটা ইঞ্জিনিয়ারিংয়ের জন্য ডেল্টা লাইভ টেবিল; জিনিসপত্র সময়সূচী করার জন্য কাজ; পরীক্ষা এবং মডেলের জন্য MLflow।
ধাপ ১: একটি ওয়ার্কস্পেস তৈরি করুন বা যোগ দিন
যদি আপনার কোম্পানির ইতিমধ্যেই Databricks থাকে, তাহলে আপনি একটি আমন্ত্রণ পাবেন। অন্যথায়, একটি ট্রায়ালের জন্য সাইন আপ করুন (আপনার পছন্দের ক্লাউড) এবং একটি ওয়ার্কস্পেস তৈরি করুন। আপনি একটি পরিষ্কার, বাম-সাইডবার ইন্টারফেসে অবতরণ করবেন। অপশন দেখে ঘাবড়াবেন না—আমরা কেবল তিনটি দিয়ে শুরু করব: ওয়ার্কস্পেস, কম্পিউট এবং ডেটা।
ধাপ ২: আপনার প্রথম ক্লাস্টার চালু করুন (“ইঞ্জিন”)
একটি ক্লাস্টার হল একগুচ্ছ ক্লাউড মেশিন যা Databricks আপনার জন্য শুরু করে।
- কম্পিউট → নতুন ক্লাস্টার-এ ক্লিক করুন।
- একটি ক্লাস্টার মোড চয়ন করুন (পরীক্ষার জন্য Single user বা Shared দিয়ে শুরু করুন)।
- খরচ কম রাখতে একটি ছোট ইনস্ট্যান্স টাইপ বাছাই করুন।
- স্বয়ংক্রিয় সমাপ্তি চালু করুন (যেমন, ১৫-৩০ মিনিট)। এটি ক্লাউডের জন্য “লাইট অফ” টাইমার।
- তৈরি করুন। এক বা দুই মিনিট অপেক্ষা করুন; আপনি একটি সবুজ “রানিং” দেখতে পাবেন।
পোগ টিপ: আপনার ক্লাস্টারের এমন একটি সুস্পষ্ট নাম দিন (“dev-pogue-15min-autoterm”)। ভবিষ্যতের আপনি আপনাকে ধন্যবাদ জানাবে।
ধাপ ৩: একটি নোটবুক খুলুন (“ওয়ার্কবেঞ্চ”)
- ওয়ার্কস্পেস → নতুন → নোটবুক।
- একটি ভাষা চয়ন করুন। পাইথন একটি আরামদায়ক সূচনা বিন্দু; আপনি ম্যাজিক কমান্ডের মাধ্যমে SQL চালাতে পারেন।
- আপনার চলমান ক্লাস্টারে নোটবুকটি সংযুক্ত করুন (উপরে ড্রপডাউন)।
আপনার প্রথম সেলটি চেষ্টা করুন:
print("হ্যালো, Databricks!")
তারপর একটি স্পার্ক টিজার চেষ্টা করুন:
spark.range(5).show
অভিনন্দন, আপনি পাঁচটি গণনা করার জন্য একটি বিতরণ করা কম্পিউটিং ইঞ্জিন চালু করেছেন। আপনি আনুষ্ঠানিকভাবে একজন ডেটা উইজার্ড।
ধাপ ৪: ডেটা নিয়ে আসুন (“উপকরণ তাক”)
আপনি ফাইল ইম্পোর্ট করতে পারেন, অবজেক্ট স্টোরেজের সাথে সংযোগ স্থাপন করতে পারেন বা বিদ্যমান টেবিলগুলি কোয়েরি করতে পারেন।
- সাইডবারে ডেটা ক্লিক করুন। আপনি ক্যাটালগ এবং স্কিমা (টেবিলের জন্য ফোল্ডার) এবং ডেটা যুক্ত করার বিকল্প দেখতে পাবেন।
- যদি আপনার কাছে CSV থাকে তবে দ্রুত পরীক্ষার জন্য এটি আপলোড করুন। Databricks স্কিমা অনুমান করতে পারে।
ক্লাউড স্টোরেজে একটি CSV ফাইল রিড করতে পাইথন ব্যবহার করা:
df = spark.read.option("header", True).csv("/mnt/my-bucket/sales.csv")
df.printSchema
df.limit(10).display
এই ডিসপ্লে ফাংশনটি হল Databricks ম্যাজিক: সহজে বাছাই করা, ফিল্টার করা এবং দ্রুত চার্ট তৈরি করা।
ধাপ ৫: ডেল্টা টেবিল হিসাবে আপনার ফলাফল সংরক্ষণ করুন (ডেল্টা কেন?)
ডেল্টা টেবিলগুলি হল সুপারপাওয়ারযুক্ত স্প্রেডশিটের মতো: এগুলি লেনদেনের গ্যারান্টি (“ACID”) রাখে, সংস্করণগুলি ট্র্যাক করে এবং আপডেট/ইনসার্ট/মার্জকে সঠিক করে।
df.write.mode("overwrite").format("delta").saveAsTable("analytics.sales_clean")
এখন আপনি SQL দিয়ে কোয়েরি করতে পারেন:
-- আপনার সেলটিকে %%sql এ পরিবর্তন করুন
%%sql
SELECT product, SUM(amount) AS total
FROM analytics.sales_clean
GROUP BY product
ORDER BY total DESC
অডিট-ফ্রেন্ডলি, সংস্করণযুক্ত ডেটা চান? আপনি টাইম ট্র্যাভেল করতে পারেন:
%%sql
SELECT * FROM analytics.sales_clean VERSION AS OF 2
ধাপ ৬: SQL ওয়্যারহাউসের সাথে বন্ধুত্ব করুন (BI বিশেষজ্ঞদের জন্য)
আপনি যদি বেশিরভাগ ড্যাশবোর্ড এবং ব্যবসায়িক প্রশ্ন করে থাকেন, তাহলে একটি SQL ওয়্যারহাউস চালু করুন (কম্পিউট → SQL ওয়্যারহাউস)। এটি SQL এর জন্য টিউন করা একটি লাইটার-ওয়েট ইঞ্জিনের মতো।
- আপনার BI টুল (Power BI, Tableau, অথবা Databricks SQL ড্যাশবোর্ড) কানেক্ট করুন।
- একটি ড্যাশবোর্ড তৈরি করুন: ভিজ্যুয়ালাইজেশন, ফিল্টার, রিফ্রেশ শিডিউল।
ধাপ ৭: ডেল্টা লাইভ টেবিলের সাথে পাইপলাইন (“ম্যানুয়াল” থেকে “অটোমেটিক”)
যদি আপনার কাছে পুনরাবৃত্তিযোগ্য ট্রান্সফরমেশন থাকে— “কাঁচা বিক্রয় পরিষ্কার করুন, পণ্যের মেটাডেটা যুক্ত করুন, সপ্তাহ অনুসারে একত্রিত করুন”—ডেল্টা লাইভ টেবিল (DLT) এটিকে চেক এবং বংশতালিকা সহ একটি পরিচালিত পাইপলাইনে পরিণত করে।
একটি ছোট SQL DLT উদাহরণ:
CREATE OR REFRESH LIVE TABLE sales_clean AS
SELECT * FROM cloud_files('/mnt/data/sales_raw', 'csv');
CREATE OR REFRESH LIVE TABLE weekly_sales AS
SELECT product, weekofyear(date) AS week,
SUM(amount) AS weekly_total
FROM LIVE.sales_clean
GROUP BY product, week;
- DLT পর্যবেক্ষণ, পুনরায় চেষ্টা এবং ডেটা মানের নিয়মগুলি পরিচালনা করে।
- প্রত্যাশা যুক্ত করুন (যেমন “amount >= 0”) যাতে খারাপ ডেটা নীরবে আপনার ত্রৈমাসিক ক্ষতি করার পরিবর্তে উচ্চস্বরে ব্যর্থ হয়।
ধাপ ৮: কাজের সাথে এটি শিডিউল করুন (কারণ আপনি ঘুমাতে পছন্দ করেন)
- আপনার নোটবুক নির্বাচন করুন, একটি সময়সূচী সেট করুন (যেমন, প্রতিদিন সকাল ২টা), একটি ছোট কাজের ক্লাস্টার চয়ন করুন।
- ব্যর্থতার জন্য ইমেল বা Slack সতর্কতা যুক্ত করুন।
বোনাস: নোটবুকগুলিকে প্যারামিটারাইজ করুন যাতে একই কোড বিভিন্ন ইনপুট সহ dev/test/prod-এর জন্য চলে।
ধাপ ৯: অনুমতি এবং গভর্নেন্স
ডেটা অ্যাক্সেস কন্ট্রোল গুরুত্বপূর্ণ। সঠিক পাঠক, লেখক এবং মালিক নিশ্চিত করতে অন্তর্নির্মিত ক্যাটালগ অনুমতি ব্যবহার করুন। যদি আপনার সংস্থা একটি কেন্দ্রীভূত মেটাস্টোর ব্যবহার করে, তাহলে আপনি ইউনিটি ক্যাটালগের সম্মুখীন হবেন: এটি catalog.schema.table-এর মতো নামগুলিকে মানসম্মত করে এবং আপনাকে আরও ভাল নিরীক্ষা এবং সূক্ষ্ম-দানাযুক্ত নিয়ন্ত্রণ দেয়।
পোগ টিপ: সহজভাবে শুরু করুন—বিশ্লেষণের জন্য একটি ক্যাটালগ, স্যান্ডবক্সের জন্য একটি—এবং জিনিসগুলির নাম স্পষ্টভাবে দিন। ভবিষ্যতের বিশ্লেষকরা আপনাকে কফি খাওয়াবে।
ধাপ ১০: খরচ নিয়ন্ত্রণ (“আশ্চর্যজনক বিল পাবেন না” বিভাগ)
- এক্সপ্লোর করার সময় ছোট ইনস্ট্যান্সগুলিতে ডিফল্ট করুন।
- ডেভ ক্লাস্টারগুলিতে সর্বদা স্বয়ংক্রিয় সমাপ্তি সক্ষম করুন।
- নির্ধারিত কাজের জন্য কাজের ক্লাস্টার পছন্দ করুন (চালু করুন, চালান, বন্ধ করুন)।
- স্মার্টলি ক্যাশে করুন: বিশাল ডেটাফ্রেমগুলি পুনরায় ব্যবহার করার প্রয়োজন না হলে সেগুলি ধরে রাখবেন না।
- UI-এর খরচের মেট্রিকগুলি দেখুন এবং আপনার ক্লাউড প্রদানকারীতে বাজেট/সতর্কতা সেট করুন।
একটি দিনের জীবন: একটি দ্রুত ডেমো
ধরুন আপনার বস জিজ্ঞাসা করলেন: “কোন পণ্যের লাইনগুলি এই ত্রৈমাসিকে দ্রুত বৃদ্ধি পেয়েছে?” এখানে Databricks ফ্লো রয়েছে:
- একটি নোটবুক তৈরি করুন, একটি ডেভ ক্লাস্টার সংযুক্ত করুন।
- বিক্রয় এবং পণ্যের মেটাডেটা গ্রহণ করুন (ক্লাউড স্টোরেজে CSV)।
- পরিষ্কার করুন: স্কিমা প্রয়োগ করুন, নালগুলি সরান, তারিখের ফর্ম্যাটগুলি ঠিক করুন।
- ডেল্টাতে পরিষ্কার ডেটা লিখুন।
- ত্রৈমাসিক-ওভার-ত্রৈমাসিক বৃদ্ধি গণনা করার জন্য SQL।
- নোটবুকে ভিজ্যুয়ালাইজ করুন; তারপর বসের জন্য একটি ড্যাশবোর্ড প্রকাশ করুন।
- প্রতিদিন সকালে রিফ্রেশ করার জন্য একটি কাজের মধ্যে নোটবুকটি মোড়ানো।
সমস্যা সমাধানের কর্নার (কারণ এটি ঘটে)
- ক্লাস্টার শুরু হবে না: আপনার কোটা/ইনস্ট্যান্স টাইপ পরীক্ষা করুন; একটি ছোট VM চেষ্টা করুন; অনুমতি নিশ্চিত করুন।
- ডেটা পড়া হবে না: পাথ এবং শংসাপত্র যাচাই করুন; একটি ছোট নমুনা চেষ্টা করুন; অনুমান করা স্কিমা পরিদর্শন করুন।
- কাজটি ব্যর্থ হতে থাকে: লগিং যুক্ত করুন (প্রিন্ট স্টেটমেন্ট, ডিসপ্লে), সমান্তরালতা হ্রাস করুন এবং ইনপুটগুলি যাচাই করুন।
- ফলাফলগুলি “বন্ধ” দেখাচ্ছে: সময় অঞ্চল! তারা ধূর্ত। টাইমস্ট্যাম্প কাস্ট করুন, একটি ডিফল্ট সময় অঞ্চল সেট করুন এবং অনুমানগুলি নথিভুক্ত করুন।
সহযোগিতা: একটি ব্যান্ড হিসাবে কাজ করুন, একক অভিনয় নয়
- Git এর সাথে নোটবুক সিঙ্ক করতে Repos ব্যবহার করুন। তাড়াতাড়ি কমিট করুন, প্রায়ই কমিট করুন।
- নোটবুকের সেলগুলিতে সরাসরি মন্তব্য করুন। নির্দেশাবলী সহ শীর্ষে একটি “প্রথমে আমাকে পড়ুন” সেল রাখুন।
- ছোট, কম্পোজযোগ্য নোটবুক তৈরি করুন (গ্রহণ করুন, রূপান্তর করুন, বিশ্লেষণ করুন) যাতে সতীর্থরা স্পেলঙ্কিং ছাড়াই ঝাঁপিয়ে পড়তে পারে।
পাইথন? SQL? উভয়ই।
আপনি একটি নোটবুকে ভাষা মিশ্রিত করতে পারেন। উদাহরণস্বরূপ, SQL-এ আপনার যুক্তির প্রোটোটাইপ করুন (দ্রুত পুনরাবৃত্তি), তারপর বিশেষ লাইব্রেরির জন্য পাইথনে স্যুইচ করুন (পূর্বাভাস, NLP)। UDFs কম ব্যবহার করুন—নেটিভ স্পার্ক ফাংশনগুলি দ্রুত এবং স্কেল করার জন্য বন্ধুত্বপূর্ণ।
পারফরম্যান্স: তিনটি লিভার
- পার্টিশন: খড় গাদা এড়িয়ে যান, কেবল সুই পড়ুন। প্রায়শই ফিল্টার করা কলাম (তারিখ, অঞ্চল) দ্বারা ডেল্টা টেবিলগুলি পার্টিশন করুন।
- ফাইলের আকার: ছোট ফাইলগুলি গ্লিটারের মতো—সর্বত্র এবং বিরক্তিকর। ছোট ফাইলগুলিকে চঙ্কি, দক্ষ ফাইলগুলিতে একত্রিত করতে অপ্টিমাইজড রাইট/অটো-অপ্টিমাইজ ব্যবহার করুন।
- ক্যাশিং এবং ব্রডকাস্ট জয়েন: পুনরায় ব্যবহৃত ডেটাফ্রেমগুলি ক্যাশে করুন; শাফেলিং এড়াতে বড় জয়েনে ছোট টেবিলটি সম্প্রচার করুন।
নিরাপত্তা বেসিক যা আপনি দ্বিতীয় দিনে চাইবেন
- একটি পরিচালিত গোপন সুযোগে গোপনীয়তা সঞ্চয় করুন; কখনই হার্ড-কোড কী করবেন না।
- কম-সুবিধা অনুদানের সাথে উত্পাদন টেবিলগুলি লক করুন।
- কে কখন কী পরিবর্তন করেছে তা দেখতে অডিট লগ ব্যবহার করুন।
টিঙ্কারিং থেকে উত্পাদন: একটি বাস্তবসম্মত পথ
- সপ্তাহ 1: নোটবুক এবং একটি ছোট ক্লাস্টার দিয়ে অন্বেষণ করুন। প্রথম ডেল্টা টেবিল সংরক্ষণ করুন। জয় শেয়ার করুন।
- সপ্তাহ 2: আপনার পুনরাবৃত্ত রূপান্তরের জন্য একটি DLT পাইপলাইন তৈরি করুন। ডেটা মানের চেক যুক্ত করুন।
- সপ্তাহ 3: নোটবুকগুলিকে কাজে মোড়ানো, সতর্কতা যুক্ত করুন এবং একটি SQL ওয়্যারহাউসে ড্যাশবোর্ডগুলি সংযুক্ত করুন।
- সপ্তাহ 4: একটি ভল্টে গোপনীয়তা সরান, অনুমতিগুলি পরিপাটি করুন, নামকরণের নিয়ম সেট করুন এবং সবকিছু নথিভুক্ত করুন।
সাধারণ মিথ, আলতো করে ডিফ্লেটেড
- “Databricks কেবল স্পার্ক গুরুদের জন্য।” আর না। SQL ওয়্যারহাউস এবং UI সহায়কদের অর্থ বিশ্লেষকরা Scala এর একটি লাইন না লিখে উন্নতি করতে পারে।
- “এটি ব্যয়বহুল হতে চলেছে।” এটি হতে পারে—যদি আপনি সারা সপ্তাহান্তে স্টেডিয়ামের আলো জ্বালিয়ে রাখেন। স্বয়ংক্রিয় সমাপ্তি এবং ছোট কাজের ক্লাস্টারগুলির সাথে, আপনি খরচ সভ্য রাখতে পারেন।
- “সংস্করণ একটি মাথাব্যথা।” ডেল্টার টাইম ট্র্যাভেল এবং টেবিলের ইতিহাস রোলব্যাক এবং নিরীক্ষাগুলিকে সতেজভাবে জাগতিক করে তোলে।
সহায়ক সাইডকিকগুলিতে একটি দ্রুত শব্দ
যদি আপনি কখনও নিজেকে বয়লারপ্লেট স্পার্ক কোড লিখতে আটকে থাকেন, আপনার নিজের নোটবুকটি… নিজের কাছে ব্যাখ্যা করেন, বা একটি রুক্ষ ফলাফলকে একটি পরিপাটি সারাংশে পরিণত করেন তবে একটি স্মার্ট কোপাইলট কয়েক ঘন্টা বাঁচাতে পারে। Sider.AI এর মতো সরঞ্জামগুলি আপনার ব্রাউজারে একটি বন্ধুত্বপূর্ণ চ্যাট বক্স হিসাবে বসতে পারে, আপনাকে একটি স্টার্টার PySpark সেল খসড়া করতে, একটি আনাড়ি যোগদানকে রিফ্যাক্টর করতে বা আপনার নোটবুকের আউটপুটটিকে আপনার বসের জন্য একটি পাঠযোগ্য সংক্ষিপ্তসারে পরিণত করতে সহায়তা করে। এখানে কৌশলটি হল: নির্দিষ্ট, ভিত্তিযুক্ত প্রশ্ন জিজ্ঞাসা করুন (“এই স্কিমার জন্য আপসার্ট লজিক সহ একটি ডেল্টা টেবিলে একটি PySpark মার্জ লিখুন…”) এবং আপনার স্কিমার একটি ছোট, প্রতিনিধি নমুনা পেস্ট করুন যাতে পরামর্শটি স্পট-অন হয়। যদি আপনি এটি সবকিছু অনুমান করার চেষ্টা করেন তবে আপনি উভয়ই কুঁচকে যাবেন। আপনার প্রথম সপ্তাহ: একটি মিনি প্লেবুক
দিন 1: একটি ওয়ার্কস্পেস লগইন তৈরি করুন। স্বয়ংক্রিয় সমাপ্তির সাথে একটি ছোট ডেভ ক্লাস্টার শুরু করুন।
দিন 2: একটি ছোট CSV আমদানি করুন। প্রদর্শন সঙ্গে অন্বেষণ করুন। একটি ডেল্টা টেবিল সংরক্ষণ করুন।
দিন 3: একটি সাধারণ নোটবুক পাইপলাইন তৈরি করুন: কাঁচা → পরিষ্কার → একত্রিত করুন। মন্তব্য যুক্ত করুন।
দিন 4: ফলাফল যাচাই করতে SQL এ স্যুইচ করুন। একটি ছোট ড্যাশবোর্ড তৈরি করুন।
দিন 5: প্রতিদিন রিফ্রেশ করার জন্য একটি কাজ তৈরি করুন। ক্লাস্টার বন্ধ করুন, সময়মতো বাড়ি যান।
চিট শীট: কমান্ড যা আপনি আসলে ব্যবহার করবেন
- CSV/Parquet পড়ুন: spark.read.option("header", True).csv(path) / spark.read.parquet(path)
- ডেল্টা টেবিল লিখুন: df.write.format("delta").mode("append").saveAsTable("catalog.schema.table")
- SQL সেল: %%sql এর পরে আপনার কোয়েরি
- SQL এ মার্জ (আপসার্ট) প্যাটার্ন:
MERGE INTO target t
USING source s
ON t.id = s.id
WHEN MATCHED THEN UPDATE SET *
WHEN NOT MATCHED THEN INSERT *;
- পাইথনে অটোলোডার (ক্রমবর্ধমান ইনজেকশন):
df = (spark.readStream
.format("cloudFiles")
.option("cloudFiles.format", "json")
.load("/mnt/raw/events"))
df.writeStream.format("delta").option("checkpointLocation","/mnt/chk").start("/mnt/delta/events")
কখন নোটবুক থেকে পাইপলাইনে স্যুইচ করবেন
- যদি আপনি প্রতিদিন একই নোটবুক চালাচ্ছেন তবে এটিকে একটি কাজে সরিয়ে দিন।
- যদি আপনি তিনটি বা তার বেশি নোটবুক চেইন করছেন তবে DLT বিবেচনা করুন—এটি নির্ভরতা সরল করে এবং ডেটা মানের নিয়ম যুক্ত করে।
- যদি একাধিক দল আউটপুটের উপর নির্ভর করে তবে পরিষ্কার SLA সহ একটি পরিচালিত ক্যাটালগে প্রচার করুন।
শেষ একটি জিনিস (ডেটা মাধ্যাকর্ষণ পোগের আইন)
ডেটার মাধ্যাকর্ষণ রয়েছে। সরানো ভারী এবং চারপাশে স্লিং করা ব্যয়বহুল। Databricks সবচেয়ে ভাল কাজ করে যখন আপনি ডেটাতে কম্পিউট নিয়ে আসেন, আপনার টেবিলগুলি পরিপাটি রাখেন (ডেল্টা) এবং বিরক্তিকর বিটগুলি স্বয়ংক্রিয় করুন। ছোট করে শুরু করুন, সবকিছু লেবেল করুন এবং সেই স্বয়ংক্রিয় সমাপ্তি টাইমারগুলি সেট করুন যেন আপনার ক্লাউড বিল এটির উপর নির্ভর করে—কারণ এটি করে।
মূল বিষয়গুলি
- একটি ছোট ক্লাস্টার এবং স্বয়ংক্রিয় সমাপ্তি দিয়ে শুরু করুন।
- অন্বেষণ করতে নোটবুক ব্যবহার করুন; ডেল্টা টেবিল হিসাবে পরিষ্কার ফলাফল সংরক্ষণ করুন।
- পুনরাবৃত্তিযোগ্য রূপান্তরের জন্য, DLT ব্যবহার করুন এবং কাজের সাথে শিডিউল করুন।
- SQL ওয়্যারহাউস এবং ড্যাশবোর্ডের মাধ্যমে অন্তর্দৃষ্টি শেয়ার করুন।
- অনুমতি এবং গোপনীয়তাগুলি তাড়াতাড়ি লক করুন; আপনি যাওয়ার সাথে সাথে নথিভুক্ত করুন।
- আপনার যখন একটি ধাক্কা দরকার হয় তখন একটি কোপাইলটের উপর ঝুঁকুন—তবে আপনার প্রম্পটগুলি নির্দিষ্ট রাখুন।
আপনি যদি spark.range(5).show দিয়ে পাঁচ পর্যন্ত গণনা করতে পারেন তবে আপনি Databricks এ দরকারী কিছু তৈরি করতে পারেন। এবং একবার আপনার রাতের কাজটি আপনাকে সকাল ২টায় পেজ না করে চলে গেলে, আপনি জানবেন যে আপনি সেই বিরল এবং সুন্দর অঞ্চলে প্রবেশ করেছেন যা “ডেটা যা আচরণ করে” নামে পরিচিত।
FAQ
Q1: শিক্ষানবিস হিসাবে Databricks ব্যবহার শুরু করার দ্রুততম উপায় কী?
একটি ছোট, স্বয়ংক্রিয়ভাবে সমাপ্ত হওয়া ক্লাস্টার তৈরি করুন, একটি নোটবুক খুলুন এবং অন্বেষণ করতে প্রদর্শন সহ একটি ছোট CSV লোড করুন। একটি ডেল্টা টেবিল হিসাবে আপনার পরিষ্কার ফলাফল সংরক্ষণ করুন এবং একটি সাধারণ SQL কোয়েরি চেষ্টা করুন—এটি আপনাকে উন্নত বৈশিষ্ট্যগুলিতে হারিয়ে না গিয়ে প্রথম দিনে আসল জয় এনে দেয়।
Q2: আমার পাইপলাইনের জন্য আমার নোটবুক বা ডেল্টা লাইভ টেবিল ব্যবহার করা উচিত?
আপনি যখন জিনিসগুলি বের করছেন তখন নোটবুক দিয়ে শুরু করুন; এগুলি অন্বেষণ এবং দ্রুত জয়ের জন্য উপযুক্ত। যখন আপনার যুক্তি স্থিতিশীল হয় এবং নির্ভরযোগ্যভাবে চালানোর প্রয়োজন হয়, তখন পরিচালিত নির্ভরতা, ডেটা মানের চেক এবং সহজ পর্যবেক্ষণের জন্য ডেল্টা লাইভ টেবিলগুলিতে স্যুইচ করুন।
Q3: আমি কীভাবে Databricks খরচ নিয়ন্ত্রণে রাখব?
ডেভের জন্য ছোট উদাহরণ ব্যবহার করুন, স্বয়ংক্রিয় সমাপ্তি সক্ষম করুন এবং নির্ধারিত রানের জন্য কাজের ক্লাস্টার পছন্দ করুন। বিশাল ডেটাফ্রেমগুলি অপ্রয়োজনীয়ভাবে ধরে রাখা এড়িয়ে চলুন এবং খরচের মেট্রিক এবং ক্লাউড বাজেটের উপর নজর রাখুন যাতে কোনও কিছুই সারা সপ্তাহান্তে না চলে।
Q4: অ-কোডাররা কি কার্যকরভাবে Databricks ব্যবহার করতে পারে?
হ্যাঁ—SQL ওয়্যারহাউস এবং ড্যাশবোর্ডগুলি Databricks কে বিশ্লেষকদের জন্য বন্ধুত্বপূর্ণ করে তোলে। আপনি সরল SQL লিখতে পারেন, ফলাফলগুলি ভিজ্যুয়ালাইজ করতে পারেন এবং PySpark স্পর্শ না করে অন্তর্দৃষ্টি শেয়ার করতে পারেন, তারপরে আপনার যখন ভারী-উত্তোলন রূপান্তরের প্রয়োজন হয় তখনই ইঞ্জিনিয়ারদের আনতে পারেন।
Q5: ডেল্টা টেবিল হিসাবে ডেটা সংরক্ষণের সুবিধা কী?
ডেল্টা টেবিলগুলি আপনাকে ACID লেনদেন, সংস্করণ ইতিহাস (সময় ভ্রমণ) এবং আরও ভাল পারফরম্যান্স দেয়। এর অর্থ হল নিরাপদ আপডেট, কিছু ভুল হয়ে গেলে সহজ রোলব্যাক এবং একই ডেটার জন্য দ্রুত কোয়েরি।