Koo-এর ডেটা প্ল্যাটফর্ম — পার্ট 1: Apache Kafka এবং NiFi

By Koo App

ফণীশ গুরুরাজ দ্বারা, 3 জানুয়ারী, 2022-এ

ডেটা যেমন তারা বলে যে কোনও সংস্থার সাফল্যের মূল কারণ বিশেষ করে Koo-এর মতো পণ্যের জন্য; আমরা রিয়েল টাইমে বিভিন্ন ডেটা পয়েন্ট ক্যাপচার করি যা আমাদের ব্যবহারকারীদের যাত্রা আরও ভালভাবে বুঝতে সাহায্য করে। আমরা যে প্রবৃদ্ধি তৈরি করছি তার সাথে, বিশ্লেষণ এবং স্ট্রিমিং উভয় দৃষ্টিকোণ থেকে আমাদের ডেটা প্ল্যাটফর্মকে স্কেল করার জন্য একটি ক্রমাগত চ্যালেঞ্জ রয়েছে। এই নোটে, যখন আমরা আমাদের ডেটা প্ল্যাটফর্ম তৈরি করার সিদ্ধান্ত নিয়েছিলাম তখন আমরা নিম্নলিখিত আর্কিটেকচার লক্ষ্যগুলিকে মাথায় রেখে একটি সামগ্রিক পদ্ধতি নিয়েছিলাম।

এই ব্লগ সিরিজের ১ম পর্বে, আমরা নিফি এবং কাফকাকে কভার করব।

পরিমাপযোগ্য ইনজেশন পাইপলাইন
  • কম খরচে ডেটা সঞ্চয়স্থান।
  • কোয়েরি করা সহজ এবং প্রয়োজনে বাহ্যিক ডেটা আনা।
  • ওপেন সোর্স।
  • অ্যাক্সেস কন্ট্রোল।< /li>
  • প্রসেস করা ডেটার স্ন্যাপশট সংরক্ষণ করুন।

আমরা Apache স্ট্যাকের উপরে নির্মিত কয়েকটি সাধারণ নিদর্শন মূল্যায়ন করেছি — Kafka, NiFi, Hudi, Parquet, Spark

আমাদের ডেটার আকার সম্পর্কে এখানে কিছু পরিসংখ্যান রয়েছে

  • > প্রতিদিন 500 GB অ্যাপ্লিকেশন লগ।
  • > ব্যবহারকারীদের 20 GB স্ট্রাকচার্ড ক্রিটিক্যাল ডেটা — প্রোফাইল, যাত্রা, প্রতিদিনের সমালোচনামূলক অ্যাকশন।
  • > প্রতিদিন 3M ইমপ্রেশন।
Kafka

আমাদের একটি যুদ্ধ পরীক্ষিত বার্তা সারিবদ্ধ সিস্টেমের প্রয়োজন ছিল এবং কাফকা ছিল আদর্শ পছন্দ। আমাদের স্কেলের জন্য, আমাদের এমন কিছু দরকার ছিল যা অনুভূমিকভাবে মাপযোগ্য এবং ত্রুটি সহনশীল।

কাফকার বিষয় ধারণাটি আমাদের ইনজেশন আর্কিটেকচারকে দক্ষতার সাথে স্তরে রাখতে সাহায্য করেছে কারণ ইভেন্টের একাধিক প্রযোজক রয়েছে৷ ব্যাপকভাবে, আমরা ক্যাপচার

  • [Koos read by users → Impressions]
  • [Koos liked, re-kooed → Reactions]
  • [People follow / unfollow → Network]
  • [Visits → Profile, Image, Koo-Details, Screen]
NiFi

প্রযোজকদের কাছ থেকে বিভিন্ন ইটিএল অর্কেস্ট্রেট করতে এবং ডেটা পাইপলাইন চেইন করতে, NiFi একটি ভাল প্রার্থী। রূপান্তর এবং পাইপলাইন সেলাই করার সময় বিভিন্ন অন্তর্নির্মিত সংযোগকারীগুলি বেশ কাজে আসে।

NiFi এর কয়েকটি গুরুত্বপূর্ণ বৈশিষ্ট্য, এটি অত্যন্ত গুরুত্বপূর্ণ

  • রানটাইম ফ্লো ম্যানেজমেন্ট সম্ভব।
  • ডাইনামিক অগ্রাধিকার।
  • ডেটা প্রোভেনেন্স → ডেটা পাথ ট্র্যাকিং।
  • কার্যকরভাবে ব্যাক প্রেসার এবং স্কেল পরিচালনা করুন প্রসেসর।

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

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

  • একগুচ্ছ রূপান্তর প্রয়োগ করা হয়
  • ডাটা মাঝে মাঝে অন্যান্য উত্স থেকে দ্রুত রেফারেন্সের জন্য টেনে নেওয়া হয়
  • কিছু শর্তের উপর নির্ভর করে পাইপলাইনের পরবর্তী প্রসেসরে ডেটা পাঠানো হয়< /li>

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

Kafka এবং NiFi দক্ষতার সাথে ডেটা পাইপলাইন সেট আপ করার জন্য একটি শক্তিশালী সমন্বয় গঠন করে। উভয় প্রযুক্তির অনুভূমিক মাপযোগ্য প্রকৃতিও একটি অত্যন্ত গুরুত্বপূর্ণ দিক। NiFi কে আরও ভালোভাবে বোঝার জন্য আপনাকে FlowFiles এবং প্রসেসরকে আরও গভীরভাবে বুঝতে হবে।

FlowFiles — একটি ফ্লোফাইল হল Apache NiFi-এ একটি মৌলিক প্রক্রিয়াকরণ সত্তা। এটিতে ডেটা বিষয়বস্তু এবং বৈশিষ্ট্য রয়েছে, যা NiFi প্রসেসরগুলি ডেটা প্রক্রিয়া করতে ব্যবহার করে। ফাইলের বিষয়বস্তুতে সাধারণত সোর্স সিস্টেম থেকে আনা ডেটা থাকে।

প্রসেসর — Apache NiFi ডেটাফ্লো তৈরি করার জন্য একটি প্রসেসর মৌলিক বিল্ডিং ব্লক গঠন করে। প্রসেসরগুলি একটি ইন্টারফেস প্রদান করে যার মাধ্যমে NiFi একটি ফ্লোফাইল, এর বৈশিষ্ট্য এবং এর বিষয়বস্তুতে অ্যাক্সেস প্রদান করে৷

দৃশ্যকল্প — বিজ্ঞপ্তি ইভেন্টের সময় হঠাৎ স্পাইক বা কিছু কু-এর ভাইরাল হওয়া

এই আকস্মিক স্পাইকগুলি পরিচালনা করতে NiFi সত্যিই ভাল কাজ করে এবং আমরা আমাদের প্রয়োজন অনুসারে ব্যাক প্রেসার ঠিক করতে পারি।

P1 → P2 → P3

যেমন: আমাদের 3টি প্রসেসর রয়েছে — P1, P2 এবং P3। p3-এর পিছনের চাপ কনফিগার করা হয়েছে আসুন আমরা বলি 10K। এগুলি নরম সীমা এবং ডেটা পথ এবং সময়ের উপর নির্ভর করে কনফিগার করা যেতে পারে। এছাড়াও, যদি p2 1M ফ্লো ফাইল তৈরি করে, এই সমস্ত 1M p3 এ ডাম্প করা হবে যা একটি ডাউনস্ট্রিম সিস্টেম। p3 এর সমস্ত বার্তা প্রক্রিয়াকরণ সম্পূর্ণ না হওয়া পর্যন্ত, p2 শিডিউলার বিরাম দেওয়া হয়েছে। এইভাবে, আমরা হঠাৎ স্পাইক নিয়ন্ত্রণ করতে সক্ষম।

প্যারামিটার প্রসঙ্গ

যেমন: Koo-তে, আমরা অডিও, ভিডিও, ছবির আকারে মিডিয়া গ্রহণ করি। আমাদের কাছে একটি বার্তা অবজেক্ট রয়েছে যা একটি মিডিয়া অবজেক্ট সম্পর্কে কিছু মেটা-ডেটা ধারণ করে → (ছবি, ভিডিও বা অডিও হতে পারে), প্যারামিটার প্রসঙ্গ একটি ভাল ব্যবহারের ক্ষেত্রে। যখন এই বার্তা বস্তুটি NiFi পাইপলাইনে আঘাত করে, তখন প্রসঙ্গ বস্তুটি প্রথমে ট্রিগার হয় এবং উপযুক্ত অভিক্ষেপ এবং চেইনিং প্রতিষ্ঠিত হয়। অডিও, ইমেজ এবং ভিডিওর জন্য বিভিন্ন পাইপলাইন তৈরি করা যেতে পারে। এছাড়াও, কিছু সাধারণ বৈশিষ্ট্য শুধুমাত্র একবার বের করা যায় এবং পাস করা যায়। এই প্যারামিটার প্রসঙ্গ উত্তরাধিকার NiFi - 1.15.0 এর সর্বশেষ সংস্করণে উপলব্ধ যা বেশ দক্ষ৷ একজন প্রকৌশলী হিসাবে একজন কীভাবে দক্ষ কোড লেখেন তার অনুরূপ পাইপলাইনগুলি ভালভাবে ডিজাইন করতে পারেন।

সারসংক্ষেপ

NiFi একটি দুর্দান্ত ডেটা পাইপলাইন নির্মাতা৷ একজন ডেটা ইঞ্জিনিয়ারের জন্য যিনি শক্তিশালী পাইপলাইন স্থাপন করতে এবং দক্ষতার সাথে এটি পরিচালনা করতে আগ্রহী, এটি তার / তার ভাণ্ডারে একটি দুর্দান্ত যোগ। আমরা আমাদের ডেটা প্ল্যাটফর্ম টিম নিয়োগ করছি এবং তৈরি করছি। এই দলে যোগদানের জন্য লোকেদের খুঁজছেন — অনুগ্রহ করে আপনার প্রোফাইল শেয়ার করুন @ ta@kooapp.com

আমাদের ব্লগের পরবর্তী অংশে, আমরা আমাদের s3 আর্কিটেকচার, পার্টিশন কৌশল এবং কিছু ব্যবহারের ক্ষেত্রে গভীরভাবে যাব।

মতামত দিন

Your email address will not be published. Required fields are marked *