ক্লাউড ডেটাফ্লোতে একটি বড় ডেটা টেক্সট প্রসেসিং পাইপলাইন চালান

1. ওভারভিউ

Cloud-Dataflow.png

Dataflow কি?

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

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

গতির সাথে ডেটা বিশ্লেষণ স্ট্রিমিং

ডেটাফ্লো কম ডেটা লেটেন্সি সহ দ্রুত, সরলীকৃত স্ট্রিমিং ডেটা পাইপলাইন বিকাশ সক্ষম করে।

ক্রিয়াকলাপ এবং পরিচালনা সহজতর করুন

দলগুলিকে সার্ভার ক্লাস্টারগুলি পরিচালনার পরিবর্তে প্রোগ্রামিং-এ ফোকাস করার অনুমতি দিন কারণ ডেটাফ্লো-এর সার্ভারহীন পদ্ধতি ডেটা ইঞ্জিনিয়ারিং কাজের চাপ থেকে অপারেশনাল ওভারহেড সরিয়ে দেয়৷

মালিকানার মোট খরচ কমান

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

মূল বৈশিষ্ট্য

স্বয়ংক্রিয় রিসোর্স ম্যানেজমেন্ট এবং ডাইনামিক ওয়ার্ক রিব্যালেন্সিং

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

অনুভূমিক অটোস্কেলিং

সর্বোত্তম থ্রুপুট ফলাফলের জন্য কর্মী সংস্থানগুলির অনুভূমিক অটোস্কেলিংয়ের ফলে সামগ্রিক মূল্য-থেকে-পারফরম্যান্স আরও ভাল হয়।

ব্যাচ প্রক্রিয়াকরণের জন্য নমনীয় সম্পদ সময় নির্ধারণের মূল্য

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

এই টিউটোরিয়ালটি https://cloud.google.com/dataflow/docs/quickstarts/quickstart-java-maven থেকে অভিযোজিত হয়েছে

আপনি কি শিখবেন

  • কিভাবে জাভা SDK ব্যবহার করে Apache Beam দিয়ে একটি Maven প্রকল্প তৈরি করবেন
  • Google ক্লাউড প্ল্যাটফর্ম কনসোল ব্যবহার করে একটি উদাহরণ পাইপলাইন চালান
  • সম্পর্কিত ক্লাউড স্টোরেজ বালতি এবং এর বিষয়বস্তু কীভাবে মুছবেন

আপনি কি প্রয়োজন হবে

আপনি কিভাবে এই টিউটোরিয়াল ব্যবহার করবেন?

শুধুমাত্র মাধ্যমে এটি পড়ুন এটি পড়ুন এবং ব্যায়াম সম্পূর্ণ করুন

আপনি Google ক্লাউড প্ল্যাটফর্ম পরিষেবাগুলি ব্যবহার করার বিষয়ে আপনার অভিজ্ঞতাকে কীভাবে মূল্যায়ন করবেন?

নবজাতক মধ্যবর্তী দক্ষ

2. সেটআপ এবং প্রয়োজনীয়তা

স্ব-গতিসম্পন্ন পরিবেশ সেটআপ

  1. ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ (যদি আপনার ইতিমধ্যেই একটি Gmail বা G Suite অ্যাকাউন্ট না থাকে তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCemXuD0pdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCemXuD0pdYncY5Gv3GU Zw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLpGtQd5Q55

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3oK3o67gCu67jCGUJCGUX67j

প্রজেক্ট আইডিটি মনে রাখবেন, সমস্ত Google ক্লাউড প্রকল্প জুড়ে একটি অনন্য নাম (উপরের নামটি ইতিমধ্যে নেওয়া হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)। এটি পরে এই কোডল্যাবে PROJECT_ID হিসাবে উল্লেখ করা হবে।

  1. এর পরে, Google ক্লাউড সংস্থানগুলি ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে৷

এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ করা উচিত নয়, যদি কিছু থাকে। "ক্লিনিং আপ" বিভাগে যে কোনও নির্দেশাবলী অনুসরণ করতে ভুলবেন না যা আপনাকে কীভাবে সংস্থানগুলি বন্ধ করতে হবে তা পরামর্শ দেয় যাতে আপনি এই টিউটোরিয়ালের বাইরে বিলিং করতে না পারেন৷ Google ক্লাউডের নতুন ব্যবহারকারীরা $300USD ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷

APIs সক্রিয় করুন

স্ক্রিনের উপরের বাম দিকে মেনু আইকনে ক্লিক করুন।

2bfc27ef9ba2ec7d.png

ড্রপ ডাউন থেকে APIs এবং পরিষেবা > ড্যাশবোর্ড নির্বাচন করুন।

5b65523a6cc0afa6.png

নির্বাচন করুন + API এবং পরিষেবাগুলি সক্ষম করুন৷

81ed72192c0edd96.png

অনুসন্ধান বাক্সে "কম্পিউট ইঞ্জিন" অনুসন্ধান করুন। প্রদর্শিত ফলাফলের তালিকায় "কম্পিউট ইঞ্জিন API" এ ক্লিক করুন।

3f201e991c7b4527.png

Google Compute Engine পৃষ্ঠায় Enable এ ক্লিক করুন

ac121653277fa7bb.png

একবার এটি সক্রিয় হয়ে গেলে ফিরে যেতে তীরটিতে ক্লিক করুন।

এখন নিম্নলিখিত API গুলি অনুসন্ধান করুন এবং সেগুলিও সক্ষম করুন:

  • ক্লাউড ডেটাফ্লো
  • স্ট্যাকড্রাইভার
  • ক্লাউড স্টোরেজ
  • ক্লাউড স্টোরেজ JSON
  • BigQuery
  • ক্লাউড পাব/সাব
  • ক্লাউড ডেটাস্টোর
  • ক্লাউড রিসোর্স ম্যানেজার API

3. একটি নতুন ক্লাউড স্টোরেজ বালতি তৈরি করুন৷

Google ক্লাউড প্ল্যাটফর্ম কনসোলে , স্ক্রিনের উপরের বামদিকে মেনু আইকনে ক্লিক করুন:

2bfc27ef9ba2ec7d.png

নীচে স্ক্রোল করুন এবং স্টোরেজ উপধারায় ক্লাউড স্টোরেজ > ব্রাউজার নির্বাচন করুন:

2b6c3a2a92b47015.png

আপনি এখন ক্লাউড স্টোরেজ ব্রাউজারটি দেখতে পাবেন এবং ধরে নিচ্ছি যে আপনি এমন একটি প্রকল্প ব্যবহার করছেন যেখানে বর্তমানে কোনো ক্লাউড স্টোরেজ বালতি নেই, আপনি একটি নতুন বালতি তৈরি করার আমন্ত্রণ দেখতে পাবেন। একটি তৈরি করতে বালতি তৈরি করুন বোতাম টিপুন:

a711016d5a99dc37.png

আপনার বালতি জন্য একটি নাম লিখুন. ডায়ালগ বক্স নোট হিসাবে, বালতির নামগুলি সমস্ত ক্লাউড স্টোরেজ জুড়ে অনন্য হতে হবে৷ সুতরাং আপনি যদি একটি সুস্পষ্ট নাম নির্বাচন করেন, যেমন "পরীক্ষা", আপনি সম্ভবত দেখতে পাবেন যে অন্য কেউ ইতিমধ্যে সেই নামের একটি বালতি তৈরি করেছে এবং একটি ত্রুটি পাবে৷

বালতির নামগুলিতে কোন অক্ষর অনুমোদিত তা সম্পর্কিত কিছু নিয়মও রয়েছে৷ আপনি যদি আপনার বালতির নাম একটি অক্ষর বা সংখ্যা দিয়ে শুরু করেন এবং শেষ করেন এবং মাঝখানে ড্যাশ ব্যবহার করেন, তাহলে আপনি ঠিক থাকবেন। আপনি যদি বিশেষ অক্ষর ব্যবহার করার চেষ্টা করেন, বা একটি অক্ষর বা সংখ্যা ছাড়া অন্য কিছু দিয়ে আপনার বালতির নাম শুরু বা শেষ করার চেষ্টা করেন, ডায়ালগ বক্স আপনাকে নিয়মগুলি মনে করিয়ে দেবে।

3a5458648cfe3358.png

আপনার বালতির জন্য একটি অনন্য নাম লিখুন এবং তৈরি করুন টিপুন। আপনি যদি এমন কিছু বেছে নেন যা ইতিমধ্যেই ব্যবহার করা হচ্ছে, আপনি উপরে দেখানো ত্রুটি বার্তাটি দেখতে পাবেন। আপনি সফলভাবে একটি বালতি তৈরি করলে, আপনাকে ব্রাউজারে আপনার নতুন, খালি, বালতিতে নিয়ে যাওয়া হবে:

3bda986ae88c4e71.png

আপনি যে বালতি নামটি দেখছেন তা অবশ্যই আলাদা হবে, কারণ সেগুলি অবশ্যই সমস্ত প্রকল্পে অনন্য হতে হবে।

4. ক্লাউড শেল শুরু করুন

ক্লাউড শেল সক্রিয় করুন

  1. ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন H7JlbhKGHITmsxhQIcLwoe5HXZMhDlYue4K-SPszMxUxDjIeWfOHBfxDHYpmLQTzUmQ7Xx8o6OJUlANnQF0iBuUyfp1RzVad_4nCa0ZFZkWt2QLZWR5 dgUDQ .

zlNW0HehB_AFW1qZ4AyebSQUdWm95n7TbnOr7UVm3j9dFcg6oWApJRlC0jnU1Mvb- IQp-trP1Px8xKNwt6o3pP6fyih947sEhOFGUXM2QUZQ4 2ecHrbzQ

আপনি যদি আগে কখনও ক্লাউড শেল শুরু না করে থাকেন, তাহলে আপনাকে একটি মধ্যবর্তী স্ক্রীন (ভাঁজের নীচে) উপস্থাপন করা হবে যা বর্ণনা করে। যদি এটি হয়, তবে চালিয়ে যান ক্লিক করুন (এবং আপনি এটি আর কখনও দেখতে পাবেন না)। এককালীন স্ক্রীনটি দেখতে কেমন তা এখানে রয়েছে:

kEPbNAo_w5C_pi9QvhFwWwky1cX8hr_xEMGWySNIoMCdi-Djx9AQRqWn-__DmEpC7vKgUtl-feTcv-wBxJ8NwzzAp7mY65-fi2LJo4twUoew65-fi2LJo4twUoew65-fi2LJo4twUoew6rq-13SUj

ক্লাউড শেলের সাথে সংযোগ করতে এবং সংযোগ করতে এটির মাত্র কয়েক মুহূর্ত লাগবে৷

pTv5mEKzWMWp5VBrg2eGcuRPv9dLInPToS-mohlrqDASyYGWnZ_SwE-MzOWHe76ZdCSmw0kgWogSJv27lrQE8pvA5OD6P1I47nz8vrAdK7OD6P1I47nz8vrAdK7yPgxyPvR8 hA

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

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

  1. আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list

কমান্ড আউটপুট

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
gcloud config list project

কমান্ড আউটপুট

[core]
project = <PROJECT_ID>

যদি এটি না হয়, আপনি এই কমান্ড দিয়ে এটি সেট করতে পারেন:

gcloud config set project <PROJECT_ID>

কমান্ড আউটপুট

Updated property [core/project].

5. একটি Maven প্রকল্প তৈরি করুন

ক্লাউড শেল চালু হওয়ার পরে, অ্যাপাচি বিমের জন্য জাভা SDK ব্যবহার করে একটি Maven প্রকল্প তৈরি করে শুরু করা যাক।

Apache Beam ডেটা পাইপলাইনের জন্য একটি ওপেন সোর্স প্রোগ্রামিং মডেল। আপনি একটি Apache Beam প্রোগ্রামের সাথে এই পাইপলাইনগুলিকে সংজ্ঞায়িত করেন এবং আপনার পাইপলাইন চালানোর জন্য একটি রানার, যেমন Dataflow বেছে নিতে পারেন।

আপনার শেলে mvn archetype:generate কমান্ড চালান নিম্নরূপ:

  mvn archetype:generate \
     -DarchetypeGroupId=org.apache.beam \
     -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
     -DarchetypeVersion=2.46.0 \
     -DgroupId=org.example \
     -DartifactId=first-dataflow \
     -Dversion="0.1" \
     -Dpackage=org.apache.beam.examples \
     -DinteractiveMode=false

কমান্ড চালানোর পরে, আপনার বর্তমান ডিরেক্টরির অধীনে first-dataflow নামে একটি নতুন ডিরেক্টরি দেখতে হবে। first-dataflow একটি মাভেন প্রজেক্ট রয়েছে যা জাভা এবং উদাহরণ পাইপলাইনের জন্য ক্লাউড ডেটাফ্লো SDK অন্তর্ভুক্ত করে।

6. ক্লাউড ডেটাফ্লোতে একটি পাঠ্য প্রক্রিয়াকরণ পাইপলাইন চালান৷

চলুন শুরু করা যাক আমাদের প্রকল্প আইডি এবং ক্লাউড স্টোরেজ বাকেটের নামগুলি পরিবেশের ভেরিয়েবল হিসাবে সংরক্ষণ করে। আপনি Cloud Shell এ এটি করতে পারেন। আপনার নিজের প্রজেক্ট আইডি দিয়ে <your_project_id> প্রতিস্থাপন করতে ভুলবেন না।

 export PROJECT_ID=<your_project_id>

এখন আমরা ক্লাউড স্টোরেজ বাকেটের জন্য একই কাজ করব। মনে রাখবেন, <your_bucket_name> একটি অনন্য নাম দিয়ে প্রতিস্থাপন করতে যা আপনি আগের ধাপে আপনার বালতি তৈরি করতে ব্যবহার করেছিলেন।

 export BUCKET_NAME=<your_bucket_name>

first-dataflow/ ডিরেক্টরিতে পরিবর্তন করুন।

 cd first-dataflow

আমরা WordCount নামে একটি পাইপলাইন চালাতে যাচ্ছি, যা পাঠ্য পাঠ করে, পাঠ্য লাইনগুলিকে পৃথক শব্দে টোকেনাইজ করে এবং সেই শব্দগুলির প্রতিটিতে একটি ফ্রিকোয়েন্সি গণনা করে। প্রথমে আমরা পাইপলাইন চালাব, এবং এটি চলাকালীন আমরা প্রতিটি ধাপে কী ঘটছে তা দেখে নেব।

আপনার শেল বা টার্মিনাল উইন্ডোতে mvn compile exec:java কমান্ডটি চালিয়ে পাইপলাইন শুরু করুন। --project, --stagingLocation, এবং --output আর্গুমেন্টের জন্য, নীচের কমান্ডটি এই ধাপে আগে আপনার সেট আপ করা পরিবেশ ভেরিয়েবলের উল্লেখ করে।

 mvn compile exec:java \
      -Pdataflow-runner compile exec:java \
      -Dexec.mainClass=org.apache.beam.examples.WordCount \
      -Dexec.args="--project=${PROJECT_ID} \
      --stagingLocation=gs://${BUCKET_NAME}/staging/ \
      --output=gs://${BUCKET_NAME}/output \
      --runner=DataflowRunner \
      --region=us-central1 \
      --gcpTempLocation=gs://${BUCKET_NAME}/temp"

চাকরি চলাকালীন, কাজের তালিকায় কাজটি খুঁজে বের করা যাক।

Google ক্লাউড প্ল্যাটফর্ম কনসোলে ক্লাউড ডেটাফ্লো ওয়েব UI খুলুন। রানিং -এর স্ট্যাটাস সহ আপনার ওয়ার্ডকাউন্টের কাজ দেখতে হবে:

3623be74922e3209.png

এখন, পাইপলাইন পরামিতি তাকান. আপনার কাজের নামের উপর ক্লিক করে শুরু করুন:

816d8f59c72797d7.png

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

80a972dd19a6f1eb.png

আসুন দেখি কিভাবে পাইপলাইন প্রতিটি ধাপে ডেটা রূপান্তর করে:

  • পড়ুন : এই ধাপে, পাইপলাইনটি একটি ইনপুট উৎস থেকে পড়ে। এই ক্ষেত্রে, এটি ক্লাউড স্টোরেজের একটি টেক্সট ফাইল যেখানে শেক্সপিয়রের রাজা লিয়ার নাটকের সম্পূর্ণ পাঠ্য রয়েছে। আমাদের পাইপলাইন লাইন দ্বারা ফাইল লাইন পড়ে এবং প্রতিটি একটি PCollection আউটপুট করে, যেখানে আমাদের পাঠ্য ফাইলের প্রতিটি লাইন সংগ্রহের একটি উপাদান।
  • CountWords : CountWords ধাপের দুটি অংশ রয়েছে। প্রথমত, এটি প্রতিটি লাইনকে পৃথক শব্দে টোকেনাইজ করার জন্য ExtractWords নামে একটি সমান্তরাল ডু ফাংশন (ParDo) ব্যবহার করে। ExtractWords এর আউটপুট হল একটি নতুন PC Collection যেখানে প্রতিটি উপাদান একটি শব্দ। পরবর্তী ধাপ, Count , জাভা SDK দ্বারা প্রদত্ত একটি রূপান্তর ব্যবহার করে যা কী, মান জোড়া প্রদান করে যেখানে কীটি একটি অনন্য শব্দ এবং মান হল এটি যতবার ঘটে তার সংখ্যা। এখানে CountWords বাস্তবায়নের পদ্ধতি রয়েছে এবং আপনি GitHub- এ সম্পূর্ণ WordCount.java ফাইলটি দেখতে পারেন:
 /**
   * A PTransform that converts a PCollection containing lines of text into a PCollection of
   * formatted word counts.
   *
   * <p>Concept #3: This is a custom composite transform that bundles two transforms (ParDo and
   * Count) as a reusable PTransform subclass. Using composite transforms allows for easy reuse,
   * modular testing, and an improved monitoring experience.
   */
  public static class CountWords
      extends PTransform<PCollection<String>, PCollection<KV<String, Long>>> {
    @Override
    public PCollection<KV<String, Long>> expand(PCollection<String> lines) {

      // Convert lines of text into individual words.
      PCollection<String> words = lines.apply(ParDo.of(new ExtractWordsFn()));

      // Count the number of times each word occurs.
      PCollection<KV<String, Long>> wordCounts = words.apply(Count.perElement());

      return wordCounts;
    }
  }
  • MapElements : এটি নিচে অনুলিপি করা FormatAsTextFn আহ্বান করে, যা প্রতিটি কী, মান জোড়াকে একটি মুদ্রণযোগ্য স্ট্রিংয়ে ফর্ম্যাট করে।
  /** A SimpleFunction that converts a Word and Count into a printable string. */
  public static class FormatAsTextFn extends SimpleFunction<KV<String, Long>, String> {
    @Override
    public String apply(KV<String, Long> input) {
      return input.getKey() + ": " + input.getValue();
    }
  }
  • WriteCounts : এই ধাপে আমরা মুদ্রণযোগ্য স্ট্রিংগুলিকে একাধিক শার্ড টেক্সট ফাইলে লিখি।

আমরা কয়েক মিনিটের মধ্যে পাইপলাইন থেকে ফলস্বরূপ আউটপুটটি দেখব।

এখন গ্রাফের ডানদিকে চাকরির তথ্য পৃষ্ঠাটি দেখুন, এতে পাইপলাইন প্যারামিটার রয়েছে যা আমরা mvn compile exec:java কমান্ডে অন্তর্ভুক্ত করেছি।

9723815a1f5bf08b.png

208a7f0d6973acf6.png

আপনি পাইপলাইনের জন্য কাস্টম কাউন্টারগুলিও দেখতে পারেন, যা এই ক্ষেত্রে দেখায় যে কার্যকর করার সময় এখনও পর্যন্ত কতগুলি খালি লাইনের সম্মুখীন হয়েছে৷ অ্যাপ্লিকেশন-নির্দিষ্ট মেট্রিক্স ট্র্যাক করার জন্য আপনি আপনার পাইপলাইনে নতুন কাউন্টার যোগ করতে পারেন।

a2e2800e2c6893f8.png

নির্দিষ্ট ত্রুটি বার্তাগুলি দেখতে আপনি কনসোলের নীচে লগ আইকনে ক্লিক করতে পারেন।

23c64138a1027f8.png

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

94ba42015fdafbe2.png

গ্রাফে একটি পাইপলাইন পদক্ষেপ নির্বাচন করা আপনার কোড দ্বারা উত্পন্ন লগ এবং পাইপলাইন ধাপে চলমান জেনারেট কোডের দৃশ্যকে পরিবর্তন করে।

কাজের লগগুলিতে ফিরে যেতে, গ্রাফের বাইরে ক্লিক করে বা ডান পাশের প্যানেলে বন্ধ বোতামটি ব্যবহার করে পদক্ষেপটি অনির্বাচন করুন।

আপনার পাইপলাইন চালানোর কম্পিউট ইঞ্জিন দৃষ্টান্তগুলির জন্য কর্মী লগগুলি দেখতে আপনি লগ ট্যাবে কর্মী লগ বোতামটি ব্যবহার করতে পারেন। কর্মী লগগুলি আপনার কোড দ্বারা উত্পন্ন লগ লাইন এবং এটি চালানোর ডেটাফ্লো জেনারেটেড কোড নিয়ে গঠিত।

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

5a53c244f28d5478.png

ডেটাফ্লো মনিটরিং ইন্টারফেস শুধুমাত্র সাম্প্রতিক লগ বার্তাগুলি দেখায়। আপনি লগ ফলকের ডানদিকে Google ক্লাউড অবজারবিবিলিটি লিঙ্কে ক্লিক করে সমস্ত লগ দেখতে পারেন৷

2bc704a4d6529b31.png

মনিটরিং→লগ পৃষ্ঠা থেকে দেখার জন্য উপলব্ধ বিভিন্ন ধরনের লগের সারাংশ এখানে দেওয়া হল:

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

পরবর্তী ধাপে, আমরা পরীক্ষা করব যে আপনার কাজ সফল হয়েছে।

7. আপনার কাজ সফল হয়েছে কিনা পরীক্ষা করুন

Google ক্লাউড প্ল্যাটফর্ম কনসোলে ক্লাউড ডেটাফ্লো ওয়েব UI খুলুন।

আপনি প্রথমে রানিং এর স্ট্যাটাস সহ আপনার শব্দগণনার কাজ দেখতে হবে এবং তারপর সফল হয়েছে :

4c408162416d03a2.png

কাজটি চালানোর জন্য প্রায় 3-4 মিনিট সময় লাগবে।

মনে আছে আপনি যখন পাইপলাইন চালাতেন এবং একটি আউটপুট বালতি নির্দিষ্ট করেছিলেন? আসুন ফলাফলটি একবার দেখে নেওয়া যাক (কারণ আপনি দেখতে চান না কিং লিয়ারের প্রতিটি শব্দ কতবার ঘটেছে?!)। Google ক্লাউড প্ল্যাটফর্ম কনসোলে ক্লাউড স্টোরেজ ব্রাউজারে ফিরে যান। আপনার বালতিতে, আপনি আউটপুট ফাইল এবং স্টেজিং ফাইলগুলি দেখতে পাবেন যা আপনার কাজ তৈরি করেছে:

25a5d3d4b5d0b567.png

8. আপনার সম্পদ বন্ধ করুন

আপনি Google ক্লাউড প্ল্যাটফর্ম কনসোল থেকে আপনার সংস্থানগুলি বন্ধ করতে পারেন৷

Google ক্লাউড প্ল্যাটফর্ম কনসোলে ক্লাউড স্টোরেজ ব্রাউজারটি খুলুন।

2b6c3a2a92b47015.png

আপনি যে বালতিটি তৈরি করেছেন তার পাশের চেকবক্সটি নির্বাচন করুন এবং বালতি এবং এর বিষয়বস্তু স্থায়ীভাবে মুছে ফেলতে DELETE এ ক্লিক করুন।

2f7780bdf10b69ba.png

8051ef293a8e5cfe.png

9. অভিনন্দন!

আপনি শিখেছেন কিভাবে ক্লাউড ডেটাফ্লো SDK দিয়ে একটি Maven প্রকল্প তৈরি করতে হয়, Google ক্লাউড প্ল্যাটফর্ম কনসোল ব্যবহার করে একটি উদাহরণ পাইপলাইন চালাতে হয় এবং সংশ্লিষ্ট ক্লাউড স্টোরেজ বাকেট এবং এর বিষয়বস্তু মুছে ফেলতে হয়।

আরও জানুন

লাইসেন্স

এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন 3.0 জেনেরিক লাইসেন্স এবং Apache 2.0 লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।