Glue Job ব্যবহার করে Data Transformation এবং Data Cleaning

প্র্যাকটিস প্রোজেক্টস - আমাজন গ্লু (AWS Glue) - Latest Technologies

223

AWS Glue Job ব্যবহার করে Data Transformation এবং Data Cleaning

AWS Glue একটি শক্তিশালী ETL (Extract, Transform, Load) সেবা, যা ডেটা ট্রান্সফরমেশন এবং ক্লিনিং-এর জন্য ব্যবহার করা হয়। নিচে AWS Glue Job ব্যবহার করে কীভাবে ডেটা ট্রান্সফর্ম এবং ক্লিন করতে হয় তার বিস্তারিত পদক্ষেপ এবং উদাহরণ দেওয়া হলো।


১. প্রয়োজনীয়তা

  • AWS Account: AWS Glue এবং S3 ব্যবহার করতে একটি AWS অ্যাকাউন্ট প্রয়োজন।
  • IAM Role: Glue Job চালানোর জন্য একটি IAM Role তৈরি করতে হবে, যা Glue এবং S3-তে অ্যাক্সেসের অনুমতি দেবে।

২. AWS Glue Crawler ব্যবহার করে ডেটা শনাক্তকরণ

ধাপ ১: Crawler তৈরি করা

  1. AWS Glue Console এ লগইন করুন।
  2. Crawlers সেকশনে যান এবং "Add Crawler" নির্বাচন করুন।
  3. Data Store নির্বাচন করুন, যেখানে আপনার ডেটা সংরক্ষিত আছে (যেমন S3)।
  4. Crawler কে ডেটার URI প্রদান করুন।
  5. IAM রোল নির্বাচন করুন এবং Crawler তৈরি করুন।

ধাপ ২: Crawler চালানো

  • Crawler চালানোর মাধ্যমে Glue Data Catalog এ ডেটার স্কিমা শনাক্ত হবে।

৩. AWS Glue Job তৈরি করা

ধাপ ১: Job তৈরি করা

  1. Jobs সেকশনে যান: Glue Console এ "Jobs" ট্যাবে ক্লিক করুন এবং "Add Job" নির্বাচন করুন।
  2. Job Name এবং IAM Role: Job এর নাম এবং IAM রোল নির্বাচন করুন।
  3. Script language: Python বা Scala নির্বাচন করুন।
  4. Glue Studio ব্যবহার করুন: Glue Studio ব্যবহার করে ETL স্ক্রিপ্ট তৈরি করুন।

৪. Data Transformation এবং Data Cleaning উদাহরণ

নমুনা ETL স্ক্রিপ্ট

import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job

# Arguments received from the Glue Job
args = getResolvedOptions(sys.argv, ['JOB_NAME'])
glueContext = GlueContext(SparkContext.getOrCreate())
spark = glueContext.spark_session
job = Job(glueContext)
job.init(args['JOB_NAME'], args)

# Read data from S3
datasource = glueContext.create_dynamic_frame.from_options(
    connection_type="s3",
    connection_options={"paths": ["s3://your-bucket-name/path-to-input-data/"]},
    format="csv",
    format_options={"withHeader": True}
)

# Data Cleaning Example: Drop null values
cleaned_data = datasource.filter(lambda x: x["column1"] is not None and x["column2"] is not None)

# Data Transformation Example: Change data types
transformed_data = ApplyMapping.apply(frame=cleaned_data, mappings=[
    ("column1", "string", "column1", "string"),
    ("column2", "int", "column2", "int"),
    ("column3", "double", "column3", "double"),
])

# Write transformed data to S3
glueContext.write_dynamic_frame.from_options(
    frame=transformed_data,
    connection_type="s3",
    connection_options={"path": "s3://your-bucket-name/path-to-output-data/"},
    format="csv"
)

job.commit()

স্ক্রিপ্টের বিশ্লেষণ

  1. Data Source: S3 থেকে CSV ফাইল পড়া।
  2. Data Cleaning: filter ফাংশন ব্যবহার করে NULL মানগুলি ফিল্টার করা।
  3. Data Transformation: ApplyMapping ফাংশন ব্যবহার করে ডেটার কলামগুলির টাইপ পরিবর্তন করা।
  4. Data Output: প্রস্তুতকৃত ডেটা আবার S3 তে CSV ফাইল হিসেবে সংরক্ষণ করা।

৫. Job রান করা

  1. Save: স্ক্রিপ্ট সংরক্ষণ করুন।
  2. Run: Glue Job চালান এবং মনিটর করুন। Job সফলভাবে সম্পন্ন হলে S3 তে আউটপুট ডেটা দেখতে পারবেন।

সারসংক্ষেপ

AWS Glue Job ব্যবহার করে ডেটা ট্রান্সফরমেশন এবং ক্লিনিং একটি সহজ এবং কার্যকরী প্রক্রিয়া। Glue Crawler ডেটার স্কিমা শনাক্ত করে, Glue Job ডেটা ক্লিন এবং ট্রান্সফর্ম করার জন্য ব্যবহৃত হয়। এই প্রক্রিয়ার মাধ্যমে, ব্যবহারকারীরা তাদের ডেটার গুণমান বৃদ্ধি এবং বিশ্লেষণের জন্য প্রস্তুতি নিশ্চিত করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...