Glue এবং Redshift এর সাথে ডেটা লোড করা

Glue এবং AWS এর অন্যান্য সেবা - আমাজন গ্লু (AWS Glue) - Latest Technologies

220

AWS Glue এবং Amazon Redshift একসাথে ব্যবহার করে ডেটা লোড করার প্রক্রিয়া একটি শক্তিশালী ETL (Extract, Transform, Load) সমাধান প্রদান করে। নিচে AWS Glue ব্যবহার করে S3 থেকে Amazon Redshift-এ ডেটা লোড করার পদক্ষেপগুলি আলোচনা করা হলো।

প্রাক-শর্ত

  1. AWS অ্যাকাউন্ট: আপনার একটি AWS অ্যাকাউন্ট থাকতে হবে।
  2. Amazon Redshift ক্লাস্টার: একটি Redshift ক্লাস্টার তৈরি করা থাকতে হবে এবং সেট আপ করা থাকতে হবে।
  3. S3 বালতি: যেখানে আপনার ডেটা ফাইলগুলি সংরক্ষিত আছে।

ধাপ ১: S3 এ ডেটা আপলোড করা

আপনার ডেটা ফাইল (যেমন, employees.csv) S3 বালতিতে আপলোড করুন। উদাহরণস্বরূপ:

  • S3 URI: s3://your-bucket-name/source/employees.csv

ধাপ ২: Amazon Redshift টেবিল তৈরি করা

Amazon Redshift এ আপনার ডেটা সংরক্ষণ করার জন্য একটি টেবিল তৈরি করুন। Redshift ক্লাস্টারে লগ ইন করে SQL কমান্ড ব্যবহার করে টেবিল তৈরি করুন:

CREATE TABLE employees (
    id INT,
    name VARCHAR(100),
    department VARCHAR(50),
    salary DECIMAL(10, 2)
);

ধাপ ৩: AWS Glue Crawler তৈরি করা

  1. AWS Glue সার্ভিসে যান।
  2. "Crawlers" ট্যাব নির্বাচন করুন এবং "Add crawler" ক্লিক করুন।
  3. Crawler এর নাম এবং বর্ণনা দিন (যেমন, MyS3Crawler)।
  4. Data store নির্বাচন করুন এবং S3 নির্বাচন করুন।
  5. S3 বালতির URI দিন (s3://your-bucket-name/source/)।
  6. IAM Role নির্বাচন করুন যাতে S3 অ্যাক্সেসের অনুমতি থাকে।
  7. Crawler তৈরি হয়ে গেলে এটি চালান এবং নিশ্চিত করুন যে এটি S3 থেকে ডেটার স্কিমা শনাক্ত করে Data Catalog-এ সংরক্ষণ করছে।

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

  1. Jobs ট্যাবে যান এবং "Add job" ক্লিক করুন।
  2. Job এর নাম (যেমন, LoadToRedshiftJob) এবং বর্ণনা দিন।
  3. IAM Role নির্বাচন করুন।
  4. Job Type হিসেবে "Spark" নির্বাচন করুন।
  5. Job script লিখুন। নিচে একটি উদাহরণ স্ক্রিপ্ট দেওয়া হলো:
import sys
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
from awsglue.transforms import *

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

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

# Data Transformation (Optional)
# transformed_data = ApplyMapping.apply(frame=datasource0, mappings=[("id", "int", "id", "int"), ("name", "string", "name", "string"), ("department", "string", "department", "string"), ("salary", "double", "salary", "double")])

# Load data into Redshift
redshift_options = {
    "url": "jdbc:redshift://your-redshift-cluster-url:5439/your-database",
    "dbtable": "employees",
    "user": "your-username",
    "password": "your-password",
    "redshiftTmpDir": "s3://your-bucket-name/temp/"
}

glueContext.write_dynamic_frame.from_options(
    frame=datasource0,
    connection_type="redshift",
    connection_options=redshift_options,
    transformation_ctx="datasink"
)

job.commit()

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

  1. Job তৈরি হওয়ার পর, "Run Job" ক্লিক করুন।
  2. Job সফলভাবে সম্পন্ন হলে, S3 থেকে Redshift-এ ডেটা লোড হবে।

ধাপ ৬: ডেটা পরীক্ষা করা

Amazon Redshift-এ লগ ইন করুন এবং নিশ্চিত করুন যে employees টেবিলে ডেটা সফলভাবে লোড হয়েছে:

SELECT * FROM employees;

উপসংহার

AWS Glue এবং Amazon Redshift ব্যবহার করে S3 থেকে ডেটা লোড করা একটি কার্যকরী প্রক্রিয়া। AWS Glue Crawler স্বয়ংক্রিয়ভাবে ডেটার স্কিমা শনাক্ত করে এবং Glue Job-এর মাধ্যমে S3 থেকে Redshift-এ ডেটা লোড করা হয়। এই সমন্বয়টি ডেটা ইন্টিগ্রেশন এবং বিশ্লেষণের জন্য একটি শক্তিশালী সমাধান তৈরি করে।

Content added By
Promotion

Are you sure to start over?

Loading...