উদাহরণসহ ETL প্রক্রিয়া সম্পন্ন করা

Glue Job এবং ETL প্রক্রিয়া - আমাজন গ্লু (AWS Glue) - Latest Technologies

196

AWS Glue ব্যবহার করে একটি ETL (Extract, Transform, Load) প্রক্রিয়া সম্পন্ন করার জন্য নিচে একটি বিস্তারিত উদাহরণ দেওয়া হলো। এই উদাহরণে আমরা S3 থেকে ডেটা এক্সট্র্যাক্ট (Extract) করব, কিছু ট্রান্সফরমেশন (Transform) প্রয়োগ করব এবং পরে এটি একটি টার্গেট S3 বালতিতে লোড (Load) করব।

ETL প্রক্রিয়ার উদাহরণ

প্রাক-শর্ত

  1. AWS Account: আপনার একটি AWS অ্যাকাউন্ট থাকতে হবে।
  2. S3 Bucket: আপনার একটি S3 বালতি থাকতে হবে যেখানে ডেটা থাকবে এবং যেখানে প্রক্রিয়াকৃত ডেটা লোড হবে।

উদাহরণ ডেটা

  • Source Data: একটি CSV ফাইল (employees.csv) S3 বালতিতে সংরক্ষিত থাকবে।
id,name,department,salary
1,John Doe,Sales,60000
2,Jane Smith,Marketing,70000
3,Alice Brown,Sales,75000
4,Bob Johnson,IT,80000
5,Charlie Lee,Marketing,65000

ধাপ ১: S3 এ Source Data আপলোড করা

  1. AWS Management Console এ লগ ইন করুন।
  2. S3 সার্ভিসে যান এবং একটি নতুন বালতি তৈরি করুন (যদি প্রয়োজন হয়)।
  3. employees.csv ফাইলটি আপলোড করুন আপনার S3 বালতিতে (যেমন s3://your-bucket-name/source/employees.csv)।

ধাপ ২: Glue Crawler তৈরি করা

  1. AWS Glue সার্ভিসে যান।
  2. "Crawlers" ট্যাবে ক্লিক করুন এবং "Add crawler" বাটনে ক্লিক করুন।
  3. Crawler এর নাম এবং বর্ণনা দিন, তারপর "Next" এ ক্লিক করুন।
  4. Data store নির্বাচন করুন এবং "S3" নির্বাচন করুন। তারপর আপনার S3 বালতির URI দিন।
  5. IAM Role নির্বাচন করুন এবং Data Catalog-এ টেবিলের জন্য একটি নাম দিন।
  6. Crawler চালানোর সময় নির্ধারণ করুন এবং "Finish" ক্লিক করুন।

ধাপ ৩: Glue Job তৈরি করা

  1. AWS Glue ড্যাশবোর্ডে যান এবং "Jobs" ট্যাব নির্বাচন করুন।
  2. "Add Job" ক্লিক করুন।
  3. Job এর নাম এবং বর্ণনা দিন।
  4. Job Type হিসেবে "Spark" নির্বাচন করুন।
  5. IAM Role নির্বাচন করুন।
  6. "Script" ফিল্ডে একটি Python স্ক্রিপ্ট প্রদান করুন যা 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

args = getResolvedOptions(sys.argv, ['JOB_NAME'])
glueContext = GlueContext(SparkContext.getOrCreate())
spark = glueContext.spark_session
job = Job(glueContext)

# Data Extraction
datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "your_database_name", table_name = "your_table_name", transformation_ctx = "datasource0")

# Data Transformation (For example, filtering high salary employees)
transformed_data = Filter.apply(frame = datasource0, f = lambda x: x["salary"] > 65000)

# Data Loading
datasink2 = glueContext.write_dynamic_frame.from_options(frame = transformed_data, connection_type = "s3", connection_options = {"path": "s3://your-bucket-name/target/"}, format = "csv", transformation_ctx = "datasink2")

job.commit()
  1. স্ক্রিপ্টে your_database_name, your_table_name, এবং S3 URI আপডেট করুন আপনার পরিবেশ অনুসারে।

ধাপ ৪: Job চালানো

  1. Job তৈরি হওয়ার পরে, "Run Job" এ ক্লিক করুন।
  2. Job সম্পন্ন হলে এটি S3 এর টার্গেট বালতিতে প্রক্রিয়াকৃত ডেটা লোড করবে (যেমন s3://your-bucket-name/target/employees.csv)।

ধাপ ৫: ফলাফল পরীক্ষা করা

  1. S3 তে গিয়ে আপনার টার্গেট বালতির মধ্যে লোড হওয়া ডেটা পরীক্ষা করুন।
  2. আপনি দেখতে পাবেন যে শুধুমাত্র salary 65000-এর বেশি কর্মচারীদের তথ্য সংরক্ষণ করা হয়েছে।

উপসংহার

এই উদাহরণের মাধ্যমে AWS Glue ব্যবহার করে একটি সম্পূর্ণ ETL প্রক্রিয়া সম্পন্ন করা হয়েছে। S3 থেকে ডেটা এক্সট্র্যাক্ট করে, ট্রান্সফরমেশন প্রয়োগ করে এবং পরে প্রক্রিয়াকৃত ডেটা আবার S3-তে লোড করা হয়েছে। AWS Glue এই প্রক্রিয়াটিকে স্বয়ংক্রিয় এবং সহজ করে তোলে, যা ডেটা ব্যবস্থাপনার জন্য একটি শক্তিশালী সমাধান।

Content added By
Promotion

Are you sure to start over?

Loading...