S3 Data Source কনফিগার করা

Database Tutorials - অ্যাপাচি প্রেস্টো (Apache Presto) Presto with AWS S3 |
175
175

Presto একটি শক্তিশালী ডিস্ট্রিবিউটেড SQL কোয়েরি ইঞ্জিন যা বিভিন্ন ডেটা সোর্সের সাথে কাজ করতে পারে। এর মধ্যে একটি জনপ্রিয় সোর্স হল Amazon S3 (Simple Storage Service), যা ক্লাউড ভিত্তিক ডেটা স্টোরেজ হিসাবে ব্যবহার করা হয়। Presto S3-এর সাথে সংযুক্ত হয়ে ডেটা বিশ্লেষণ করতে পারে। এই টিউটোরিয়ালে আমরা Presto S3 Data Source কনফিগারেশন প্রক্রিয়া বিস্তারিতভাবে দেখবো।


১. Presto S3 Connector কনফিগারেশন

Presto S3 ডেটা সোর্সে সংযোগ স্থাপন করতে Hive Connector ব্যবহার করা হয়। সুতরাং, আপনাকে Hive Connector কনফিগার করতে হবে যা Amazon S3-এর সাথে সংযুক্ত হবে।

ধাপ ১: Hive Connector কনফিগারেশন ফাইল তৈরি করা

Presto-তে S3 কনফিগার করতে etc/catalog/hive.properties ফাইলে সঠিক কনফিগারেশন করতে হবে। এটি Presto S3 সংযোগের জন্য নির্দেশিকা হিসেবে কাজ করবে। ফাইলটির মধ্যে নিম্নলিখিত কনফিগারেশন সেট করতে হবে:

hive.properties কনফিগারেশন ফাইল:

connector.name=hive-hadoop2
hive.metastore.uri=thrift://localhost:9083
hive.s3.endpoint=s3.amazonaws.com
hive.s3.aws-access-key-id=<AWS_ACCESS_KEY_ID>
hive.s3.aws-secret-access-key=<AWS_SECRET_ACCESS_KEY>
hive.s3.use-instance-credentials=true

কনফিগারেশন ফাইলের ব্যাখ্যা:

  • connector.name=hive-hadoop2: Presto Hive Connector ব্যবহার করছে। এটি সঠিক হাইভ কনফিগারেশন করতে সাহায্য করে।
  • hive.metastore.uri=thrift://localhost:9083: Hive Metastore URI যা সঠিকভাবে সন্নিবেশিত এবং Hive ডেটাবেসের সাথে সংযোগ করবে।
  • hive.s3.endpoint=s3.amazonaws.com: Amazon S3-এ সংযোগের জন্য ইন্ডপয়েন্ট নির্ধারণ।
  • hive.s3.aws-access-key-id=<AWS_ACCESS_KEY_ID>: S3 অ্যাক্সেসের জন্য আপনার AWS অ্যাক্সেস কী। এটি আপনার AWS অ্যাকাউন্ট থেকে পাওয়া যাবে।
  • hive.s3.aws-secret-access-key=<AWS_SECRET_ACCESS_KEY>: S3 অ্যাক্সেসের জন্য আপনার AWS সিক্রেট অ্যাক্সেস কী।
  • hive.s3.use-instance-credentials=true: যদি আপনি AWS EC2 ইন্সট্যান্স ব্যবহার করেন, তবে এটি EC2 ইনস্ট্যান্সের সুরক্ষিত তথ্য ব্যবহার করবে।

ধাপ ২: AWS Access Key এবং Secret Key সঠিকভাবে কনফিগার করা

আপনার AWS অ্যাকাউন্টে লগ ইন করুন এবং IAM (Identity and Access Management) থেকে একটি Access Key এবং Secret Key তৈরি করুন। এই কীগুলির মাধ্যমে Presto আপনার S3 ব্যাকএন্ডের সাথে সংযুক্ত হবে। সেগুলি উপরের কনফিগারেশন ফাইলে সঠিকভাবে প্রবেশ করান।


২. AWS CLI Configuration (Optional)

যদি আপনার সিস্টেমে AWS CLI ইনস্টল করা থাকে এবং আপনি AWS CLI credential ব্যবহার করতে চান, তাহলে আপনি নিম্নলিখিত কনফিগারেশন ফাইল ব্যবহার করতে পারেন:

aws configure

এটি আপনাকে আপনার AWS Access Key ID এবং AWS Secret Access Key প্রবেশ করতে বলবে। CLI কনফিগারেশন ফাইলটি স্বয়ংক্রিয়ভাবে /home/<user>/.aws/credentials ফাইলে সংরক্ষণ করবে। Presto S3 এর জন্য এই তথ্য ব্যবহার করবে।


৩. Presto S3 Connector এবং Hive Query Execution

S3 ডেটা সোর্স কনফিগার করার পরে, Presto সন্নিবেশিত S3 ডেটার উপর SQL কোয়েরি চালাতে সক্ষম হবে। একবার সঠিক কনফিগারেশন সম্পন্ন হলে, Presto আপনার S3-এ সংরক্ষিত ডেটাকে কোয়েরি করতে সক্ষম হবে।

ধাপ ১: Presto CLI বা Web UI ব্যবহার করে কোয়েরি চালানো

এখন আপনি Presto CLI বা Web UI ব্যবহার করে S3 ডেটাসোর্সে কোয়েরি চালাতে পারবেন। উদাহরণ:

Presto CLI এ কোয়েরি চালানো:

java -jar presto-cli-350-executable.jar --server <presto-server-ip>:8080 --catalog hive --schema default

তারপর আপনি S3 তে সংরক্ষিত ডেটাতে কোয়েরি চালাতে পারবেন:

SELECT * FROM s3_table LIMIT 10;

এটি আপনার S3 bucket এর s3_table টেবিল থেকে প্রথম ১০টি রেকর্ড তুলে আনবে।


৪. Presto S3 Connector এর উন্নত কনফিগারেশন

আপনার S3 ডেটা সোর্সের জন্য কিছু অতিরিক্ত কনফিগারেশন অপশন রয়েছে যা আপনি Performance এবং Security এর জন্য কাস্টমাইজ করতে পারেন।

৪.১. S3 Storage Class নির্বাচন

S3-এর বিভিন্ন স্টোরেজ ক্লাস রয়েছে যেমন STANDARD, IA (Infrequent Access), এবং ONEZONE_IA। আপনি যদি স্টোরেজ ক্লাস কাস্টমাইজ করতে চান, তাহলে Presto-র hive.s3.storage-class প্যারামিটার ব্যবহার করতে পারেন।

hive.s3.storage-class=STANDARD_IA

৪.২. S3 Multipart Upload

S3-এর বড় ফাইলের জন্য Multipart Upload ব্যবহার করতে পারেন, যা বড় ফাইল দ্রুত আপলোড করার জন্য সহায়ক। Presto সিস্টেমের মাধ্যমে S3 multipart upload সমর্থিত।

hive.s3.multipart-upload-enabled=true

৫. S3 Data Query Optimization Techniques

Presto-তে S3 ডেটা সোর্সের উপর কোয়েরি অপটিমাইজ করার জন্য কিছু টিপস:

  1. Partitioning:
    S3 ডেটা সোর্সে পাটিশনিং ব্যবহার করে ডেটা দ্রুত পাওয়া যায়। S3 bucket তে পাটিশন তৈরি করুন এবং Presto তা ব্যবহার করে কোয়েরি অপটিমাইজ করবে।
  2. File Formats:
    Presto S3 এর জন্য Parquet এবং ORC ফাইল ফরম্যাট ব্যবহার করতে পারে, যা কোয়েরি এক্সিকিউশনে উচ্চ পারফরম্যান্স নিশ্চিত করে। এই ফরম্যাটগুলি কলাম-বেসড স্টোরেজের জন্য উপযুক্ত।
  3. Predicate Pushdown:
    Presto বিভিন্ন ফিল্টারিং অপারেশন, যেমন WHERE ক্লজ, S3-এ ডেটা পড়ার আগে প্রয়োগ করতে পারে, যা ডেটা প্রক্রিয়াকরণ দ্রুত করে।

সারাংশ

Presto-তে S3 ডেটা সোর্স কনফিগার করা একটি সহজ প্রক্রিয়া, যেখানে Hive Connector ব্যবহার করে S3-এর সাথে সংযোগ স্থাপন করা হয়। S3 এ সংরক্ষিত ডেটা কুয়েরি করার জন্য আপনাকে সঠিক কনফিগারেশন ফাইল সেট করতে হবে, যা Presto-কে আপনার ডেটা সোর্সে সংযুক্ত করতে সাহায্য করবে। একবার কনফিগারেশন হয়ে গেলে, Presto S3-এর উপর দ্রুত SQL কোয়েরি চালাতে সক্ষম হবে, এবং আপনিও সহজেই বিশ্লেষণ করতে পারবেন।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion
;