BigQuery-এ Google ফর্ম সমীক্ষার প্রতিক্রিয়াগুলি রূপান্তর করুন এবং লোড করুন

১. ভূমিকা

জরিপ চালানোর অনেক কারণ রয়েছে: গ্রাহক সন্তুষ্টি মূল্যায়ন করা, বাজার গবেষণা চালানো, কোনো পণ্য বা পরিষেবার উন্নতি করা, অথবা কর্মীদের সম্পৃক্ততা যাচাই করা। তবে, আপনি যদি আগে জরিপের ডেটা নিয়ে কাজ করে থাকেন, তাহলে সম্ভবত জানেন যে এর প্রচলিত ফরম্যাটটি নিয়ে কাজ করা বেশ কঠিন। এই নির্দেশিকায়, আমরা একটি স্বয়ংক্রিয় পাইপলাইন তৈরি করেছি যা গুগল ফর্মের ফলাফল সংগ্রহ করে, ক্লাউড ডেটাপ্রেপ (Cloud Dataprep) ব্যবহার করে বিশ্লেষণের জন্য ডেটা প্রস্তুত করে, সেটিকে বিগকোয়েরি (BigQuery)-তে লোড করে এবং আপনার টিমকে লুকার (Looker) বা ডেটা স্টুডিও (Data Studio)-র মতো টুল ব্যবহার করে ভিজ্যুয়াল অ্যানালিটিক্স করার সুযোগ দেয়।

আপনি যা তৈরি করবেন

এই কোডল্যাবে, আপনি ডেটাপ্রেপ (Dataprep) ব্যবহার করে আমাদের উদাহরণ গুগল ফর্মস সার্ভের উত্তরগুলোকে ডেটা অ্যানালিটিক্সের জন্য উপযোগী একটি ফরম্যাটে রূপান্তর করবেন। আপনি রূপান্তরিত ডেটা বিগকোয়েরি (BigQuery)-তে পাঠাবেন, যেখানে আপনি SQL ব্যবহার করে আরও গভীর প্রশ্ন করতে পারবেন এবং আরও শক্তিশালী বিশ্লেষণের জন্য এটিকে অন্যান্য ডেটাসেটের সাথে যুক্ত করতে পারবেন। শেষে, আপনি আগে থেকে তৈরি ড্যাশবোর্ডগুলো দেখতে পারেন, অথবা নতুন রিপোর্ট তৈরি করার জন্য আপনার নিজস্ব বিজনেস ইন্টেলিজেন্স টুলকে বিগকোয়েরির সাথে সংযুক্ত করতে পারেন।

আপনি যা শিখবেন

  • Dataprep ব্যবহার করে কীভাবে জরিপের ডেটা রূপান্তর করবেন
  • BigQuery-তে সার্ভে ডেটা কীভাবে পুশ করবেন
  • জরিপের তথ্য থেকে কীভাবে আরও গভীর অন্তর্দৃষ্টি লাভ করা যায়

আপনার যা যা লাগবে

  • বিলিং, BigQuery এবং Dataprep সক্রিয় একটি গুগল ক্লাউড প্রজেক্ট
  • ডেটাপ্রেপ সম্পর্কে প্রাথমিক জ্ঞান থাকলে সহায়ক, তবে আবশ্যক নয়।
  • BigQuery এবং SQL সম্পর্কে প্রাথমিক জ্ঞান থাকলে সহায়ক, কিন্তু আবশ্যক নয়।

২. গুগল ফর্মের প্রতিক্রিয়াগুলি পরিচালনা করুন

আমরা আমাদের নমুনা সমীক্ষার গুগল ফর্মের উত্তরগুলো আরও ভালোভাবে খতিয়ে দেখার মাধ্যমে শুরু করব।

f3d25efd2cc923f5.png

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

d499e5a4dccdf5fd.png

4939332a5d8f9f19.png

চলুন এখন প্রতিটি প্রতিক্রিয়ার ধরণ এবং গুগল শিটস ফাইলে তা কীভাবে রূপান্তরিত হয়, তা পর্যালোচনা করা যাক।

৩. জরিপের উত্তরগুলোকে রূপান্তর করুন

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

একক পছন্দের প্রশ্ন: সংক্ষিপ্ত উত্তর, অনুচ্ছেদ, ড্রপডাউন, লিনিয়ার স্কেল, ইত্যাদি।

  • প্রশ্নের নাম : কলামের নাম
  • প্রতিক্রিয়া : সেল মান
  • রূপান্তরের প্রয়োজনীয়তা : কোনো রূপান্তরের প্রয়োজন নেই; প্রতিক্রিয়াটি যেমন আছে তেমনই লোড করা হয়।

3eeedc50b0fd54fd.png

বহু নির্বাচনী প্রশ্ন: একাধিক বিকল্প, চেকবক্স

  • প্রশ্নের নাম : কলামের নাম
  • প্রতিক্রিয়া : সেমিকোলন দ্বারা পৃথক করা মানের তালিকা (যেমন "প্রতিক্রিয়া ১; প্রতিক্রিয়া ৪; প্রতিক্রিয়া ৬")
  • রূপান্তরের প্রয়োজনীয়তা : মানগুলির তালিকাটি বের করে পিভট করতে হবে, যাতে প্রতিটি প্রতিক্রিয়া একটি নতুন সারি হয়ে যায়।

cab8a38a96a13ce4.png

বহু নির্বাচনী গ্রিড প্রশ্ন

এখানে একটি বহুনির্বাচনী প্রশ্নের উদাহরণ দেওয়া হলো। প্রতিটি সারি থেকে একটি করে মান নির্বাচন করতে হবে।

c6ea3d47d4dd5e78.png

  • প্রশ্নের নাম : প্রতিটি স্বতন্ত্র প্রশ্ন "প্রশ্ন [বিকল্প]" বিন্যাসে একটি কলামের নাম হয়ে যায়।
  • প্রতিক্রিয়া : গ্রিডের প্রতিটি স্বতন্ত্র প্রতিক্রিয়া একটি অনন্য মান সহ একটি কলামে পরিণত হয়।
  • রূপান্তরের শর্তাবলী : প্রতিটি প্রশ্ন/উত্তর অবশ্যই টেবিলের একটি নতুন সারি হবে এবং দুটি কলামে বিভক্ত থাকবে। একটি কলামে প্রশ্নের বিকল্প এবং অন্যটিতে তার উত্তর উল্লেখ থাকবে।

9223d0271516c58d.png

বহু নির্বাচনী চেকবক্স গ্রিড প্রশ্নাবলী

এখানে একটি চেকবক্স গ্রিডের উদাহরণ দেওয়া হলো। প্রতিটি সারি থেকে কোনোটিই নয় অথবা একাধিক মান নির্বাচন করা যায়।

4e3189b8cc2d4a8b.png

  • প্রশ্নের নাম : প্রতিটি স্বতন্ত্র প্রশ্ন "প্রশ্ন [বিকল্প]" বিন্যাসে একটি কলামের নাম হয়ে যায়।
  • প্রতিক্রিয়া : গ্রিডের প্রতিটি স্বতন্ত্র প্রতিক্রিয়া সেমিকোলন দ্বারা পৃথক করা মানগুলির একটি তালিকা সহ একটি কলামে পরিণত হয়।
  • রূপান্তরের আবশ্যকতা : এই প্রশ্ন প্রকারগুলি 'চেকবক্স' এবং 'বহু নির্বাচনী গ্রিড' বিভাগগুলিকে একত্রিত করে এবং অবশ্যই এই ক্রমেই সমাধান করতে হবে।

প্রথমে, প্রতিটি উত্তরের মানগুলির তালিকা বের করে পিভট করতে হবে, যাতে প্রতিটি উত্তর নির্দিষ্ট প্রশ্নটির জন্য একটি নতুন সারি হয়ে যায়।

দ্বিতীয়ত: প্রতিটি স্বতন্ত্র উত্তরকে সারণির একটি নতুন সারি হিসেবে দুটি কলামে ভাগ করতে হবে। একটি কলামে প্রশ্নের বিকল্প এবং অন্যটিতে উত্তর উল্লেখ থাকবে।

3c3c2bd098e03003.png

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

৪. ক্লাউড ডেটাপ্রেপ ফ্লো তৈরি করুন

Cloud Dataprep-এ 'Google Forms Analytics Design Pattern' ইম্পোর্ট করুন

Google Forms Analytics Design Pattern ফ্লো প্যাকেজটি ডাউনলোড করুন (আনজিপ না করে)। Cloud Dataprep অ্যাপ্লিকেশনে , বাম দিকের নেভিগেশন বারে থাকা Flows আইকনে ক্লিক করুন। এরপর, Flows পেজে, কনটেক্সট মেনু থেকে Import নির্বাচন করুন।

ba7c0cb0eec398df.png

ফ্লোটি ইম্পোর্ট করার পর, সেটি সম্পাদনা করার জন্য ইম্পোর্ট করা ফ্লোটি নির্বাচন করুন, আপনার স্ক্রিনটি দেখতে এইরকম হবে:

44978861eb34ec71.png

গুগল শিটস সমীক্ষার ফলাফল স্প্রেডশিট সংযুক্ত করুন

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

55c16f0c04366f0c.png

এরপর মডালের নিচের 'Import Datasets' লিঙ্কে ক্লিক করুন। 'Edit path' পেন্সিলটিতে ক্লিক করুন।

8afeef260c96277f.png

সেখান থেকে, বর্তমান মানটিকে এই লিঙ্কটি দিয়ে প্রতিস্থাপন করুন, যা কিছু গুগল ফর্মের ফলাফলসহ একটি গুগল শিটসের দিকে নির্দেশ করছে। আপনি আমাদের উদাহরণ বা আপনার নিজের কপি ব্যবহার করতে পারেন: https://docs.google.com/spreadsheets/d/1DgIlvlLceFDqWEJs91F8rt1B-X0PJGLY6shkKGBPWpk/edit?usp=sharing

"Go"-তে ক্লিক করুন এবং তারপর নিচের ডানদিকে থাকা "Import & Add to Flow"-তে ক্লিক করুন। যখন আপনি মডালে ফিরে আসবেন, তখন নিচের ডানদিকে থাকা "Replace" বোতামটি ক্লিক করুন।

BigQuery টেবিল সংযুক্ত করুন

ফ্লো-এর ডানদিকে, আপনাকে আউটপুটগুলিকে আপনার নিজের BigQuery ইনস্ট্যান্সের সাথে সংযুক্ত করতে হবে। প্রতিটি আউটপুটের জন্য, আইকনে ক্লিক করুন এবং তারপরে নিম্নলিখিতভাবে এর প্রোপার্টিগুলি সম্পাদনা করুন।

প্রথমে, 'ম্যানুয়াল গন্তব্যস্থল' সম্পাদনা করে শুরু করুন।

a3fc2cb80153ec25.png

পরবর্তী "প্রকাশনা সেটিংস" স্ক্রিনে, সম্পাদনা বোতামে ক্লিক করুন।

85791e6162a370de.png

যখন আপনি "Publishing Action" স্ক্রিনটি দেখবেন, তখন আপনাকে BigQuery কানেকশনটিতে ক্লিক করে এর প্রোপার্টিগুলো এডিট করার মাধ্যমে কানেকশন সেটিংস পরিবর্তন করতে হবে।

1f3e4887baaeaffd.png

সেই BigQuery ডেটাসেটটি নির্বাচন করুন যেখানে আপনি Google Forms-এর ফলাফল লোড করতে চান। আপনি যদি এখনও কোনো BigQuery ডেটাসেট তৈরি না করে থাকেন, তাহলে 'ডিফল্ট' নির্বাচন করতে পারেন।

f4eaa05ecf9de162.png

'ম্যানুয়াল ডেস্টিনেশন' সম্পাদনা করার পরে, 'শিডিউলড ডেস্টিনেশন' আউটপুটের জন্যও একইভাবে কাজ করুন।

46edea1b8ca63270.png

একই ধাপগুলো অনুসরণ করে প্রতিটি আউটপুটের উপর পুনরাবৃত্তি করুন। আপনাকে মোট ৮টি গন্তব্য সম্পাদনা করতে হবে।

৫. ক্লাউড ডেটাপ্রেপ কার্যপ্রবাহের ব্যাখ্যা

"গুগল ফর্মস অ্যানালিটিক্স ডিজাইন প্যাটার্ন" ফ্লো-এর মূল ধারণাটি হলো, পূর্বে বর্ণিত পদ্ধতি অনুযায়ী জরিপের উত্তরগুলোর উপর রূপান্তর সম্পাদন করা — যার জন্য প্রতিটি প্রশ্নের বিভাগকে একটি নির্দিষ্ট ক্লাউড ডেটাপ্রেপ ডেটা ট্রান্সফরমেশন রেসিপিতে বিভক্ত করা হয়।

সরলতার জন্য, এই বিন্যাসটি প্রশ্নগুলোকে ৪টি প্রশ্ন বিভাগের সাথে সঙ্গতি রেখে ৪টি টেবিলে বিভক্ত করে।

afa421849b1bd398.png

আমরা আপনাকে পরামর্শ দিচ্ছি যে, আপনি প্রথমে 'Clean Headers', তারপর 'SingleChoiceSELECT-Questions' এবং এরপর এর নিচের প্রতিটি রেসিপি এক এক করে খতিয়ে দেখুন।

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

449da06d96cd520e.png

4ac6e14f578d0707.png

৬. ক্লাউড ডেটাপ্রেপ ফ্লোটি চালান।

এখন যেহেতু আপনার সোর্স এবং ডেস্টিনেশনগুলো সঠিকভাবে কনফিগার করা হয়েছে, আপনি রেসপন্সগুলোকে ট্রান্সফর্ম করে BigQuery-তে লোড করার জন্য ফ্লোটি রান করতে পারেন। প্রতিটি আউটপুট সিলেক্ট করে "Run" বাটনে ক্লিক করুন। যদি নির্দিষ্ট BigQuery টেবিলটি বিদ্যমান থাকে, তাহলে Dataprep নতুন সারি যুক্ত করবে, অন্যথায় এটি একটি নতুন টেবিল তৈরি করবে।

47cf50f6d17a5b1e.png

জবগুলো নিরীক্ষণ করতে বাম দিকের প্যানে থাকা 'জব হিস্ট্রি' আইকনে ক্লিক করুন। প্রক্রিয়াটি সম্পন্ন হতে এবং BigQuery টেবিলগুলো লোড হতে কয়েক মিনিট সময় লাগতে পারে।

afc79eeb27202fb4.png

সমস্ত কাজ সম্পন্ন হলে, সমীক্ষার ফলাফলগুলো বিশ্লেষণের জন্য প্রস্তুত একটি পরিচ্ছন্ন, সুসংগঠিত এবং নর্মালাইজড ফরম্যাটে BigQuery-তে লোড করা হবে।

৭. BigQuery-তে জরিপের ডেটা বিশ্লেষণ করুন

BigQuery-এর Google Console- এ আপনি প্রতিটি নতুন টেবিলের বিবরণ দেখতে পাবেন।

df370873572511ac.png

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

SELECT
   programming_answers.Language  AS programming_answers_language,
   project_answers.Title  AS project_answers_title,
   AVG((case when programming_answers.Level='None' then 0 
when programming_answers.Level='beginner' then 1
when programming_answers.Level='competent' then 2 
when programming_answers.Level='proficient' then 3
when programming_answers.Level='expert' then 4 
else null end) ) AS programming_answers_average_level_value
FROM `my-project.DesignPattern.A000111_ProjectAnswers` AS project_answers
INNER JOIN `my-project.A000111_ProgrammingAnswers` AS programming_answers
ON programming_answers.RESPONSE_ID = project_answers.RESPONSE_ID
GROUP BY 1,2
ORDER BY 3 DESC

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

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

SELECT
   account.TYPE  AS account_type,
   COUNT(DISTINCT project_answers.Domainname) AS project_answers_count_domains
FROM `my-project.A000111_ProjectAnswers` AS project_answers
LEFT JOIN `my-project.testing.account` AS account 
ON project_answers.Domainname=account.website
GROUP BY 1

৮. ভিজ্যুয়াল অ্যানালিটিক্স সম্পাদন করুন

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

লুকার

আপনার যদি আগে থেকেই একটি Looker ইনস্ট্যান্স থাকে, তাহলে এই প্যাটার্নটির জন্য নমুনা সমীক্ষা এবং CRM ডেটা বিশ্লেষণ শুরু করতে আপনি এই ফোল্ডারের LookML ব্যবহার করতে পারেন। শুধু একটি নতুন Looker প্রজেক্ট তৈরি করুন, LookML যোগ করুন, এবং আপনার BigQuery কনফিগারেশনের সাথে মেলানোর জন্য ফাইলটিতে সংযোগ এবং টেবিলের নাম পরিবর্তন করুন। আপনার যদি কোনো Looker ইনস্ট্যান্স না থাকে কিন্তু আরও জানতে আগ্রহী হন, তাহলে আপনি এখানে একটি ডেমো শিডিউল করতে পারেন।

129db05d6f85f484.png

ডেটা স্টুডিও

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

5e744869e3fe3f8f.png

৯. পরিষ্কার করা

বিলিং বন্ধ করার সবচেয়ে সহজ উপায় হলো টিউটোরিয়ালের জন্য তৈরি করা ক্লাউড প্রজেক্টটি ডিলিট করে দেওয়া। বিকল্পভাবে, আপনি স্বতন্ত্র রিসোর্সগুলোও ডিলিট করতে পারেন।

  1. ক্লাউড কনসোলে, রিসোর্স পরিচালনা করুন-এ যান।
  2. প্রজেক্ট তালিকা থেকে, আপনি যে প্রজেক্টটি মুছতে চান সেটি নির্বাচন করুন এবং তারপর ডিলিট বোতামে ক্লিক করুন।
  3. ডায়ালগ বক্সে প্রজেক্ট আইডি টাইপ করুন এবং তারপর প্রজেক্টটি মুছে ফেলার জন্য 'শাট ডাউন'-এ ক্লিক করুন।