1. ওভারভিউ
এই কোডল্যাবটি Google ক্লাউড প্ল্যাটফর্মে Dataproc- এর সাথে Apache Spark ব্যবহার করে কীভাবে একটি ডেটা প্রসেসিং পাইপলাইন তৈরি করতে হয় তা নিয়ে যাবে। ডেটা সায়েন্স এবং ডেটা ইঞ্জিনিয়ারিং-এ এটি একটি সাধারণ ব্যবহারের ক্ষেত্রে একটি স্টোরেজ অবস্থান থেকে ডেটা পড়তে, এটিতে রূপান্তর সম্পাদন করে এবং এটি অন্য স্টোরেজ অবস্থানে লিখতে পারে। সাধারণ রূপান্তরের মধ্যে রয়েছে ডেটার বিষয়বস্তু পরিবর্তন করা, অপ্রয়োজনীয় তথ্য বের করে দেওয়া এবং ফাইলের ধরন পরিবর্তন করা।
এই কোডল্যাবে, আপনি Apache Spark সম্পর্কে শিখবেন, PySpark (Apache Spark এর Python API), BigQuery , Google ক্লাউড স্টোরেজ এবং Reddit থেকে ডেটার সাথে Dataproc ব্যবহার করে একটি নমুনা পাইপলাইন চালান।
2. অ্যাপাচি স্পার্কের ভূমিকা (ঐচ্ছিক)
ওয়েবসাইট অনুসারে, " অ্যাপাচি স্পার্ক বৃহৎ আকারের ডেটা প্রসেসিংয়ের জন্য একটি ইউনিফাইড অ্যানালিটিক্স ইঞ্জিন।" এটি আপনাকে সমান্তরাল এবং ইন-মেমরিতে ডেটা বিশ্লেষণ এবং প্রক্রিয়া করতে দেয়, যা একাধিক ভিন্ন মেশিন এবং নোড জুড়ে ব্যাপক সমান্তরাল গণনার অনুমতি দেয়। এটি মূলত 2014 সালে প্রথাগত MapReduce- এ একটি আপগ্রেড হিসাবে প্রকাশিত হয়েছিল এবং এখনও বড় আকারের গণনা সম্পাদনের জন্য সবচেয়ে জনপ্রিয় কাঠামোগুলির মধ্যে একটি। অ্যাপাচি স্পার্ক স্কালায় লেখা হয়েছে এবং পরবর্তীকালে স্কালা, জাভা, পাইথন এবং আর-এ API রয়েছে। এতে ডেটার উপর এসকিউএল কোয়েরি করার জন্য স্পার্ক এসকিউএল , স্ট্রিমিং ডেটার জন্য স্পার্ক স্ট্রিমিং , মেশিন লার্নিং-এর জন্য এমএললিব এবং গ্রাফএক্স- এর মতো লাইব্রেরির আধিক্য রয়েছে। গ্রাফ প্রসেসিং, যা সব Apache Spark ইঞ্জিনে চলে।
স্পার্ক নিজে থেকে চলতে পারে বা এটি স্কেলিং করার জন্য সুতা , মেসোস বা কুবারনেটসের মতো সংস্থান ব্যবস্থাপনা পরিষেবার সুবিধা নিতে পারে। আপনি এই কোডল্যাবের জন্য Dataproc ব্যবহার করবেন, যা সুতা ব্যবহার করে।
স্পার্কের ডেটা মূলত মেমরিতে লোড করা হয়েছিল যাকে RDD বা স্থিতিস্থাপক বিতরণ করা ডেটাসেট বলা হয়। স্পার্কের উন্নয়নে দুটি নতুন, কলামার-স্টাইলের ডেটা টাইপ যুক্ত করা হয়েছে: ডেটাসেট, যা টাইপ করা হয়েছে এবং ডেটাফ্রেম, যা টাইপ করা হয়নি। ঢিলেঢালাভাবে বলতে গেলে, আরডিডি যেকোন ধরনের ডেটার জন্য দুর্দান্ত, যেখানে ডেটাসেট এবং ডেটাফ্রেমগুলি ট্যাবুলার ডেটার জন্য অপ্টিমাইজ করা হয়। যেহেতু Datasets শুধুমাত্র Java এবং Scala API-এর সাথে উপলব্ধ, আমরা এই কোডল্যাবের জন্য PySpark Dataframe API ব্যবহার করে এগিয়ে যাব। আরও তথ্যের জন্য, অনুগ্রহ করে Apache Spark ডকুমেন্টেশন পড়ুন।
3. কেস ব্যবহার করুন
ডেটা বিজ্ঞানীদের কাছে সহজে অ্যাক্সেসযোগ্য হওয়ার জন্য ডেটা ইঞ্জিনিয়ারদের প্রায়ই ডেটার প্রয়োজন হয়। যাইহোক, ডেটা প্রায়শই প্রাথমিকভাবে নোংরা হয় (এটির বর্তমান অবস্থায় বিশ্লেষণের জন্য ব্যবহার করা কঠিন) এবং এটি অনেক কাজে লাগানোর আগে পরিষ্কার করা প্রয়োজন। এর একটি উদাহরণ হল ওয়েব থেকে স্ক্র্যাপ করা ডেটা যাতে অদ্ভুত এনকোডিং বা বহিরাগত HTML ট্যাগ থাকতে পারে।
এই ল্যাবে, আপনি Dataproc-এ হোস্ট করা একটি স্পার্ক ক্লাস্টারে Reddit পোস্টের আকারে BigQuery থেকে ডেটার একটি সেট লোড করবেন, দরকারী তথ্য বের করবেন এবং Google ক্লাউড স্টোরেজে জিপ করা CSV ফাইল হিসাবে প্রক্রিয়াকৃত ডেটা সংরক্ষণ করবেন।
আপনার কোম্পানির প্রধান ডেটা সায়েন্টিস্ট তাদের দলগুলিকে বিভিন্ন প্রাকৃতিক ভাষা প্রক্রিয়াকরণ সমস্যা নিয়ে কাজ করতে আগ্রহী। বিশেষ করে, তারা সাবরেডিট "r/food"-এ ডেটা বিশ্লেষণ করতে আগ্রহী। আপনি জানুয়ারী 2017 থেকে আগস্ট 2019 পর্যন্ত ব্যাকফিল দিয়ে শুরু করে ডেটা ডাম্পের জন্য একটি পাইপলাইন তৈরি করবেন।
4. BigQuery স্টোরেজ API এর মাধ্যমে BigQuery অ্যাক্সেস করা
tabledata.list API পদ্ধতি ব্যবহার করে BigQuery থেকে ডেটা তোলা সময়সাপেক্ষ এবং ডেটা স্কেলের পরিমাণ হিসাবে দক্ষ নয় বলে প্রমাণিত হতে পারে। এই পদ্ধতিটি JSON অবজেক্টের একটি তালিকা প্রদান করে এবং একটি সম্পূর্ণ ডেটাসেট পড়ার জন্য এক সময়ে একটি পৃষ্ঠা পর্যায়ক্রমে পড়তে হয়।
BigQuery স্টোরেজ API একটি RPC-ভিত্তিক প্রোটোকল ব্যবহার করে BigQuery-এ ডেটা অ্যাক্সেস করার ক্ষেত্রে উল্লেখযোগ্য উন্নতি নিয়ে আসে। এটি সমান্তরালভাবে ডেটা পড়া এবং লেখার পাশাপাশি বিভিন্ন সিরিয়ালাইজেশন ফরম্যাট যেমন Apache Avro এবং Apache Arrow সমর্থন করে। উচ্চ-স্তরে, এটি উল্লেখযোগ্যভাবে উন্নত কর্মক্ষমতা, বিশেষ করে বড় ডেটা সেটগুলিতে অনুবাদ করে।
এই কোডল্যাবে আপনি BigQuery এবং স্পার্কের মধ্যে ডেটা পড়ার এবং লেখার জন্য spark-bigquery-connector ব্যবহার করবেন।
5. একটি প্রকল্প তৈরি করা
console.cloud.google.com- এ Google ক্লাউড প্ল্যাটফর্ম কনসোলে সাইন ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন:
এর পরে, Google ক্লাউড সংস্থানগুলি ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে৷
এই কোডল্যাবের মাধ্যমে চালানোর জন্য আপনার কয়েক ডলারের বেশি খরচ করা উচিত নয়, তবে আপনি যদি আরও সংস্থান ব্যবহার করার সিদ্ধান্ত নেন বা আপনি যদি সেগুলি চলমান রেখে দেন তবে এটি আরও বেশি হতে পারে। এই কোডল্যাবের শেষ বিভাগটি আপনাকে আপনার প্রকল্প পরিষ্কার করার মাধ্যমে নিয়ে যাবে।
Google ক্লাউড প্ল্যাটফর্মের নতুন ব্যবহারকারীরা $300 বিনামূল্যের ট্রায়ালের জন্য যোগ্য৷
6. আপনার পরিবেশ সেট আপ করা
আপনি এখন আপনার পরিবেশ স্থাপনের মাধ্যমে যাবেন:
- Compute Engine, Dataproc এবং BigQuery স্টোরেজ API সক্রিয় করা হচ্ছে
- প্রকল্প সেটিংস কনফিগার করা হচ্ছে
- একটি Dataproc ক্লাস্টার তৈরি করা হচ্ছে
- একটি Google ক্লাউড স্টোরেজ বালতি তৈরি করা হচ্ছে
এপিআই সক্ষম করা এবং আপনার পরিবেশ কনফিগার করা
আপনার ক্লাউড কনসোলের উপরের ডানদিকের কোণায় বোতাম টিপে ক্লাউড শেল খুলুন।
ক্লাউড শেল লোড হওয়ার পরে, Compute Engine, Dataproc এবং BigQuery স্টোরেজ API সক্রিয় করতে নিম্নলিখিত কমান্ডগুলি চালান:
gcloud services enable compute.googleapis.com \
dataproc.googleapis.com \
bigquerystorage.googleapis.com
আপনার প্রকল্পের প্রকল্প আইডি সেট করুন। আপনি প্রকল্প নির্বাচন পৃষ্ঠায় গিয়ে এবং আপনার প্রকল্পের জন্য অনুসন্ধান করে এটি খুঁজে পেতে পারেন। এটি আপনার প্রকল্পের নামের মতো নাও হতে পারে।
আপনার প্রকল্প আইডি সেট করতে নিম্নলিখিত কমান্ডটি চালান:
gcloud config set project <project_id>
এখানে তালিকা থেকে একটি নির্বাচন করে আপনার প্রকল্পের অঞ্চল সেট করুন। একটি উদাহরণ হতে পারে us-central1
।
gcloud config set dataproc/region <region>
আপনার Dataproc ক্লাস্টারের জন্য একটি নাম চয়ন করুন এবং এটির জন্য একটি পরিবেশ পরিবর্তনশীল তৈরি করুন।
CLUSTER_NAME=<cluster_name>
একটি Dataproc ক্লাস্টার তৈরি করা হচ্ছে
নিম্নলিখিত কমান্ড কার্যকর করে একটি Dataproc ক্লাস্টার তৈরি করুন:
gcloud beta dataproc clusters create ${CLUSTER_NAME} \
--worker-machine-type n1-standard-8 \
--num-workers 8 \
--image-version 1.5-debian \
--initialization-actions gs://dataproc-initialization-actions/python/pip-install.sh \
--metadata 'PIP_PACKAGES=google-cloud-storage' \
--optional-components=ANACONDA \
--enable-component-gateway
এই কমান্ডটি শেষ হতে কয়েক মিনিট সময় লাগবে। কমান্ড ভাঙ্গতে:
এটি আপনার পূর্বে দেওয়া নামের সাথে একটি Dataproc ক্লাস্টার তৈরি শুরু করবে। beta
এপিআই ব্যবহার করা ডেটাপ্রোকের বিটা বৈশিষ্ট্যগুলি যেমন কম্পোনেন্ট গেটওয়ে সক্ষম করবে।
gcloud beta dataproc clusters create ${CLUSTER_NAME}
এটি আপনার কর্মীদের জন্য ব্যবহার করার জন্য মেশিনের ধরন সেট করবে।
--worker-machine-type n1-standard-8
এটি আপনার ক্লাস্টারে কত কর্মী থাকবে তা নির্ধারণ করবে।
--num-workers 8
এটি Dataproc এর ইমেজ সংস্করণ সেট করবে।
--image-version 1.5-debian
এটি ক্লাস্টারে ব্যবহার করা শুরু করার ক্রিয়াগুলি কনফিগার করবে। এখানে, আপনি পিপ ইনিশিয়ালাইজেশন অ্যাকশন অন্তর্ভুক্ত করছেন।
--initialization-actions gs://dataproc-initialization-actions/python/pip-install.sh
এটি ক্লাস্টারে অন্তর্ভুক্ত করার জন্য মেটাডেটা। এখানে, আপনি pip
ইনিশিয়ালাইজেশন অ্যাকশনের জন্য মেটাডেটা প্রদান করছেন।
--metadata 'PIP_PACKAGES=google-cloud-storage'
এটি ক্লাস্টারে ইনস্টল করার জন্য ঐচ্ছিক উপাদানগুলি সেট করবে।
--optional-components=ANACONDA
এটি উপাদান গেটওয়ে সক্ষম করবে যা আপনাকে জেপেলিন, জুপিটার বা স্পার্ক ইতিহাসের মতো সাধারণ UI দেখার জন্য ডেটাপ্রোকের কম্পোনেন্ট গেটওয়ে ব্যবহার করতে দেয়।
--enable-component-gateway
Dataproc-এর আরও গভীরতর ভূমিকার জন্য, অনুগ্রহ করে এই কোডল্যাবটি দেখুন।
একটি Google ক্লাউড স্টোরেজ বাকেট তৈরি করা হচ্ছে
আপনার কাজের আউটপুটের জন্য আপনার একটি Google ক্লাউড স্টোরেজ বালতি প্রয়োজন। আপনার বালতিটির জন্য একটি অনন্য নাম নির্ধারণ করুন এবং একটি নতুন বালতি তৈরি করতে নিম্নলিখিত কমান্ডটি চালান। সমস্ত ব্যবহারকারীদের জন্য সমস্ত Google ক্লাউড প্রকল্প জুড়ে বালতির নামগুলি অনন্য, তাই আপনাকে বিভিন্ন নাম দিয়ে এটি কয়েকবার চেষ্টা করতে হতে পারে। আপনি একটি ServiceException
না পেলে একটি বালতি সফলভাবে তৈরি করা হয়।
BUCKET_NAME=<bucket_name>
gsutil mb gs://${BUCKET_NAME}
7. অনুসন্ধানমূলক ডেটা বিশ্লেষণ
আপনার প্রিপ্রসেসিং সম্পাদন করার আগে, আপনি যে ডেটা নিয়ে কাজ করছেন তার প্রকৃতি সম্পর্কে আপনার আরও জানতে হবে। এটি করার জন্য, আপনি ডেটা অনুসন্ধানের দুটি পদ্ধতি অন্বেষণ করবেন। প্রথমে, আপনি BigQuery ওয়েব UI ব্যবহার করে কিছু কাঁচা ডেটা দেখতে পাবেন এবং তারপরে আপনি PySpark এবং Dataproc ব্যবহার করে সাবরেডিট প্রতি পোস্টের সংখ্যা গণনা করবেন।
BigQuery ওয়েব UI ব্যবহার করা
আপনার ডেটা দেখতে BigQuery ওয়েব UI ব্যবহার করে শুরু করুন। ক্লাউড কনসোলের মেনু আইকন থেকে, নিচে স্ক্রোল করুন এবং BigQuery ওয়েব UI খুলতে "BigQuery" টিপুন।
এরপর, BigQuery ওয়েব UI ক্যোয়ারী এডিটরে নিম্নলিখিত কমান্ডটি চালান। এটি 2017 সালের জানুয়ারি থেকে ডেটার 10টি সম্পূর্ণ সারি ফিরিয়ে দেবে:
select * from fh-bigquery.reddit_posts.2017_01 limit 10;
আপনি উপলব্ধ সমস্ত কলামের পাশাপাশি কিছু উদাহরণ দেখতে পৃষ্ঠা জুড়ে স্ক্রোল করতে পারেন। বিশেষ করে, আপনি দুটি কলাম দেখতে পাবেন যা প্রতিটি পোস্টের পাঠ্য বিষয়বস্তুকে উপস্থাপন করে: "শিরোনাম" এবং "সেলফটেক্সট", পরবর্তীটি পোস্টের মূল অংশ। এছাড়াও অন্যান্য কলামগুলি লক্ষ্য করুন যেমন "created_utc" যেটি একটি পোস্ট করার utc সময় এবং "সাবব্রেডিট" যেটি পোস্টটি বিদ্যমান সাবরেডিট।
একটি PySpark কাজ নির্বাহ করা
সঠিক ডিরেক্টরিতে নমুনা কোড এবং সিডি সহ রেপো ক্লোন করতে আপনার ক্লাউড শেলে নিম্নলিখিত কমান্ডগুলি চালান:
cd
git clone https://github.com/GoogleCloudPlatform/cloud-dataproc
আপনি PySpark ব্যবহার করতে পারেন প্রতিটি সাবরেডিটের জন্য কতগুলি পোস্ট বিদ্যমান তার গণনা নির্ধারণ করতে। আপনি ক্লাউড এডিটর খুলতে পারেন এবং পরবর্তী ধাপে এটি চালানোর আগে স্ক্রিপ্ট cloud-dataproc/codelabs/spark-bigquery
পড়তে পারেন:
আপনার ক্লাউড শেলে ফিরে যেতে ক্লাউড এডিটরের "ওপেন টার্মিনাল" বোতামে ক্লিক করুন এবং আপনার প্রথম PySpark কাজটি কার্যকর করতে নিম্নলিখিত কমান্ডটি চালান:
cd ~/cloud-dataproc/codelabs/spark-bigquery
gcloud dataproc jobs submit pyspark --cluster ${CLUSTER_NAME} \
--jars gs://spark-lib/bigquery/spark-bigquery-latest_2.12.jar \
--driver-log-levels root=FATAL \
counts_by_subreddit.py
এই কমান্ডটি আপনাকে Jobs API এর মাধ্যমে Dataproc-এ কাজ জমা দেওয়ার অনুমতি দেয়। এখানে আপনি pyspark
হিসাবে কাজের ধরন নির্দেশ করছেন। আপনি ক্লাস্টারের নাম, ঐচ্ছিক পরামিতি এবং কাজ ধারণকারী ফাইলের নাম সরবরাহ করতে পারেন। এখানে, আপনি --jars
প্যারামিটার প্রদান করছেন যা আপনাকে আপনার কাজের সাথে spark-bigquery-connector
অন্তর্ভুক্ত করতে দেয়। আপনি --driver-log-levels root=FATAL
ব্যবহার করে লগ আউটপুট স্তরও সেট করতে পারেন যা ত্রুটি ব্যতীত সমস্ত লগ আউটপুটকে দমন করবে। স্পার্ক লগগুলি বরং কোলাহলপূর্ণ হতে থাকে।
এটি চালানোর জন্য কয়েক মিনিট সময় নেওয়া উচিত এবং আপনার চূড়ান্ত আউটপুটটি এইরকম দেখতে হবে:
8. Dataproc এবং Spark UIs অন্বেষণ করা
Dataproc-এ স্পার্ক জব চালানোর সময়, আপনার চাকরি/ক্লাস্টারের স্থিতি পরীক্ষা করার জন্য আপনার কাছে দুটি UI-তে অ্যাক্সেস থাকে। প্রথমটি হল Dataproc UI, যা আপনি মেনু আইকনে ক্লিক করে Dataproc-এ স্ক্রোল করে খুঁজে পেতে পারেন। এখানে, আপনি বর্তমান মেমরির পাশাপাশি মুলতুবি থাকা মেমরি এবং কর্মীদের সংখ্যা দেখতে পারেন।
এছাড়াও আপনি সম্পূর্ণ কাজ দেখতে জব ট্যাবে ক্লিক করতে পারেন। আপনি একটি নির্দিষ্ট কাজের জন্য জব আইডিতে ক্লিক করে সেই কাজের লগ এবং আউটপুটের মতো কাজের বিবরণ দেখতে পারেন।
এছাড়াও আপনি স্পার্ক UI দেখতে পারেন। কাজের পৃষ্ঠা থেকে, পিছনের তীরটিতে ক্লিক করুন এবং তারপরে ওয়েব ইন্টারফেসে ক্লিক করুন। আপনি উপাদান গেটওয়ে অধীনে বিভিন্ন বিকল্প দেখতে হবে. আপনার ক্লাস্টার সেট আপ করার সময় এর মধ্যে অনেকগুলি ঐচ্ছিক উপাদানগুলির মাধ্যমে সক্ষম করা যেতে পারে। এই ল্যাবের জন্য, "স্পার্ক হিস্ট্রি সার্ভারে ক্লিক করুন।
এটি নিম্নলিখিত উইন্ডোটি খুলতে হবে:
সমস্ত সম্পূর্ণ কাজ এখানে প্রদর্শিত হবে, এবং আপনি চাকরি সম্পর্কে আরও তথ্য জানতে যেকোনো অ্যাপ্লিকেশন_আইডিতে ক্লিক করতে পারেন। একইভাবে, আপনি বর্তমানে চলমান সমস্ত চাকরি দেখতে ল্যান্ডিং পৃষ্ঠার একেবারে নীচে "অসম্পূর্ণ অ্যাপ্লিকেশনগুলি দেখান" এ ক্লিক করতে পারেন।
9. আপনার ব্যাকফিল কাজ চালানো
আপনি এখন এমন একটি কাজ চালাবেন যা মেমরিতে ডেটা লোড করে, প্রয়োজনীয় তথ্য বের করে এবং আউটপুটটিকে একটি Google ক্লাউড স্টোরেজ বালতিতে ডাম্প করে। আপনি প্রতিটি reddit মন্তব্যের জন্য "শিরোনাম", "বডি" (কাঁচা পাঠ) এবং "টাইমস্ট্যাম্প তৈরি" বের করবেন। তারপরে আপনি এই ডেটা নেবেন, এটিকে একটি csv-এ রূপান্তর করবেন, জিপ করবেন এবং gs://${BUCKET_NAME}/reddit_posts/YYYY/MM/food.csv.gz-এর URI সহ একটি বালতিতে লোড করবেন৷
cloud-dataproc/codelabs/spark-bigquery/backfill.sh
এর কোডটি পড়ার জন্য আপনি আবার ক্লাউড এডিটরের সাথে যোগাযোগ করতে পারেন যা cloud-dataproc/codelabs/spark-bigquery/backfill.py
এ কোড চালানোর জন্য একটি র্যাপার স্ক্রিপ্ট। .
cd ~/cloud-dataproc/codelabs/spark-bigquery
bash backfill.sh ${CLUSTER_NAME} ${BUCKET_NAME}
আপনি শীঘ্রই কাজ সমাপ্তির বার্তা একটি গুচ্ছ দেখতে হবে. কাজটি সম্পূর্ণ হতে 15 মিনিট পর্যন্ত সময় লাগতে পারে। আপনি gsutil ব্যবহার করে সফল ডেটা আউটপুট যাচাই করতে আপনার স্টোরেজ বালতি দুবার চেক করতে পারেন। সমস্ত কাজ শেষ হয়ে গেলে, নিম্নলিখিত কমান্ডটি চালান:
gsutil ls gs://${BUCKET_NAME}/reddit_posts/*/*/food.csv.gz
আপনি নিম্নলিখিত আউটপুট দেখতে হবে:
অভিনন্দন, আপনি আপনার reddit মন্তব্য ডেটার জন্য সফলভাবে একটি ব্যাকফিল সম্পন্ন করেছেন! আপনি যদি এই ডেটার উপরে মডেলগুলি তৈরি করতে আগ্রহী হন তবে দয়া করে স্পার্ক-এনএলপি কোডল্যাবে চালিয়ে যান।
10. পরিষ্কার করা
এই কুইকস্টার্টটি সম্পূর্ণ করার পরে আপনার GCP অ্যাকাউন্টে অপ্রয়োজনীয় চার্জ এড়াতে:
- আপনার তৈরি করা পরিবেশের জন্য ক্লাউড স্টোরেজ বালতি মুছুন
- Dataproc পরিবেশ মুছুন ।
আপনি যদি এই কোডল্যাবের জন্য একটি প্রকল্প তৈরি করেন তবে আপনি ঐচ্ছিকভাবে প্রকল্পটি মুছে ফেলতে পারেন:
- GCP কনসোলে, প্রকল্প পৃষ্ঠায় যান।
- প্রকল্প তালিকায়, আপনি যে প্রকল্পটি মুছতে চান সেটি নির্বাচন করুন এবং মুছুন ক্লিক করুন।
- বাক্সে, প্রজেক্ট আইডি টাইপ করুন এবং তারপরে প্রজেক্ট মুছে ফেলতে শাট ডাউন ক্লিক করুন।
লাইসেন্স
এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন 3.0 জেনেরিক লাইসেন্স এবং Apache 2.0 লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।