উইন্ডোয়িং স্পার্ক স্ট্রিমিংয়ের সাথে রাষ্ট্রীয় রূপান্তর

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

পৃথ্বীরাজ বোস অবদান রেখেছেন



এই ব্লগে আমরা অ্যাপাচি স্পার্কের রাষ্ট্রীয় রূপান্তরগুলির উইন্ডো ধারণাটি নিয়ে আলোচনা করব।



রাষ্ট্রীয় রূপান্তর কী?

স্পার্ক স্ট্রিমিং একটি মাইক্রো ব্যাচের আর্কিটেকচার ব্যবহার করে যেখানে আগত তথ্যগুলিকে ডিস্ক্রিটাইজড স্ট্রিমস (ডিএসটি স্ট্রিমস) নামে মাইক্রো ব্যাচে বিভক্ত করা হয় যা বেসিক প্রোগ্রামিং বিমূর্তি হিসাবে কাজ করে। ডিএসটিস্ট্রিমের অভ্যন্তরীণভাবে রেসিলেট ডিস্ট্রিবিউটেড ডেটাসেটস (আরডিডি) রয়েছে এবং এই স্ট্যান্ডার্ড আরডিডি রূপান্তরকরণ এবং ক্রিয়াগুলির ফলস্বরূপ।



স্ট্রিমিংয়ে যদি আমাদের কাছে ব্যাচগুলিতে ডেটা ট্র্যাক করতে ব্যবহারের কেস থাকে তবে আমাদের স্টেট-ফুল ডিএসটিস্ট্রিম দরকার।

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

রাজ্য-পূর্ণ রূপান্তরের প্রকার।



স্টেট-ফুল ডিএসটিস্ট্রিম দুটি ধরণের হয় - উইন্ডো ভিত্তিক ট্র্যাকিং এবং পূর্ণ সেশন ট্র্যাকিং।

রাষ্ট্রীয় ট্র্যাকিংয়ের জন্য সমস্ত আগত ডেটা কী-মান জোড়গুলিতে রূপান্তর করা উচিত যাতে মূল রাজ্যগুলি ব্যাচগুলিতে ট্র্যাক করা যায়। এটি পূর্ব শর্ত।

আরও আমাদের চেকপয়েন্টিং সক্ষম করা উচিত, একটি ধারণা যা আমরা পরবর্তী ব্লগগুলিতে আলোচনা করব।

> উইন্ডো ভিত্তিক ট্র্যাকিং

উইন্ডো ভিত্তিক ট্র্যাকিংয়ে আগত ব্যাচগুলি সময়ের ব্যবধানে গ্রুপযুক্ত করা হয়, অর্থাৎ গ্রুপটি প্রতিটি ‘এক্স’ সেকেন্ডে ব্যাচ করে। এই ব্যাচগুলিতে আরও গণনা স্লাইড অন্তরগুলি ব্যবহার করে করা হয়।

উদাহরণস্বরূপ, যদি উইন্ডো ইন্টারভাল = 3 সেকেন্ড এবং স্লাইড ব্যবধান = 2 সেকেন্ড হয়, তবে সমস্ত আগত তথ্য প্রতি 3 সেকেন্ডে ব্যাচগুলিতে গোষ্ঠীভুক্ত হবে এবং এই ব্যাচগুলির গণনা প্রতি 2 সেকেন্ডে ঘটবে। বিকল্পভাবে আমরা বলতে পারি, শেষ 3 সেকেন্ডে আগত ব্যাচগুলিতে প্রতি 2 সেকেন্ডে কম্পিউটেশন করুন।

spark-streaming-dstream-window

উপরের চিত্রটিতে আমরা দেখতে পাচ্ছি যে আগত ব্যাচগুলি প্রতি 3 ইউনিটের সময় (উইন্ডো অন্তর) গ্রুপ করা হয় এবং প্রতি 2 ইউনিট সময় (স্লাইড বিরতি) গণনা করা হয়।
দ্রষ্টব্য: অ্যাপাচি ফ্লিংকের বিপরীতে, অ্যাপাচি স্পার্কের উইন্ডোতে টাম্পল করার ধারণা নেই, সমস্ত উইন্ডো স্লাইডিং করছে।

এইচটিএমএল এবং এক্সএমএল মধ্যে পার্থক্য কি

আগুন

উইন্ডো ভিত্তিক রূপান্তরগুলির জন্য একটি জনপ্রিয় এপিআই

পেয়ারডিস্ট্রিফিউশনস.ড্রেসবাইকিএন্ড উইন্ডো

এই এপিআইয়ের বেশ কয়েকটি ওভারলোড হওয়া সংস্করণ রয়েছে, আসুন এমন একটি দেখা যাক যার মধ্যে বেশিরভাগ পরামিতি রয়েছে। এই ব্যাখ্যার পরে এই এপিআইর বাকি ওভারলোড হওয়া সংস্করণগুলির স্ব-বর্ণনামূলক হওয়া উচিত।

রিটার্নস: রুপান্তরিত ডিএসটিস্ট্রিম [(কে, ভি)]

হ্রাসফান : সংঘবদ্ধ কার্য হ্রাস।

invReduceFunc : উপরের উল্টোটি ফাংশন হ্রাস করে। ইনকামিং এবং আউটগোয়িং ব্যাচগুলির দক্ষ কম্পিউটিংয়ের জন্য এটি প্রয়োজনীয়। এই ফাংশনটির সাহায্যে বহির্গামী হওয়া ব্যাচগুলির মান উপরের হ্রাস ফাংশনের সঞ্চিত মান থেকে কেটে নেওয়া হয়। উদাহরণস্বরূপ, যদি আমরা সংশ্লিষ্ট কীগুলির জন্য আগত মানগুলির যোগফল গণনা করি তবে বহির্গামী ব্যাচগুলির জন্য আমরা সংশ্লিষ্ট কীগুলির জন্য মানগুলি বিয়োগ করব (তবে তারা বর্তমান ব্যাচে উপস্থিত থাকলে অন্যরা উপেক্ষা করবেন)।

উইন্ডো সময়কাল : ব্যাচগুলিকে গোষ্ঠীকরণের জন্য সময়ের একক, এটি ব্যাচের ব্যবধানের একাধিক হওয়া উচিত।

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

ফিল্টারফঙ্ক : মেয়াদোত্তীর্ণ কী-মানযুক্ত জোড়গুলি ফিল্টার করার কাজ, উদাহরণস্বরূপ, আমরা যদি কিছু সময়ের জন্য কোনও কীটির জন্য আপডেট না পাই তবে আমরা এটি সরিয়ে ফেলতে চাই।

এখানে একটি কার্যক্রম সকেট স্ট্রিম থেকে আসা শব্দগুলি গণনা করা। আমরা 4 সেকেন্ডের উইন্ডো অন্তর এবং 2 সেকেন্ডের একটি স্লাইড ব্যবধান সহ উপরের ফাংশনের একটি ওভারলোডেড সংস্করণ ব্যবহার করেছি।

আমার পরবর্তী ব্লগে আমি পুরো সেশন ট্র্যাকিং এবং চেকপয়েন্টিং সম্পর্কে লিখব।

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে মন্তব্য বিভাগে এটি উল্লেখ করুন এবং আমরা আপনার কাছে ফিরে আসব।

সম্পর্কিত পোস্ট:

ব্রডকাস্ট ভেরিয়েবলগুলির সাথে বিতরণ করা ক্যাচিং