Presto একটি শক্তিশালী ডিস্ট্রিবিউটেড SQL কোয়েরি ইঞ্জিন যা বিভিন্ন ডেটা সোর্সের সাথে কাজ করতে পারে। এর মধ্যে একটি জনপ্রিয় সোর্স হল Amazon S3 (Simple Storage Service), যা ক্লাউড ভিত্তিক ডেটা স্টোরেজ হিসাবে ব্যবহার করা হয়। Presto S3-এর সাথে সংযুক্ত হয়ে ডেটা বিশ্লেষণ করতে পারে। এই টিউটোরিয়ালে আমরা Presto S3 Data Source কনফিগারেশন প্রক্রিয়া বিস্তারিতভাবে দেখবো।
Presto S3 ডেটা সোর্সে সংযোগ স্থাপন করতে Hive Connector ব্যবহার করা হয়। সুতরাং, আপনাকে Hive Connector কনফিগার করতে হবে যা Amazon S3-এর সাথে সংযুক্ত হবে।
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
আপনার AWS অ্যাকাউন্টে লগ ইন করুন এবং IAM (Identity and Access Management) থেকে একটি Access Key এবং Secret Key তৈরি করুন। এই কীগুলির মাধ্যমে Presto আপনার S3 ব্যাকএন্ডের সাথে সংযুক্ত হবে। সেগুলি উপরের কনফিগারেশন ফাইলে সঠিকভাবে প্রবেশ করান।
যদি আপনার সিস্টেমে AWS CLI ইনস্টল করা থাকে এবং আপনি AWS CLI credential ব্যবহার করতে চান, তাহলে আপনি নিম্নলিখিত কনফিগারেশন ফাইল ব্যবহার করতে পারেন:
aws configure
এটি আপনাকে আপনার AWS Access Key ID এবং AWS Secret Access Key প্রবেশ করতে বলবে। CLI কনফিগারেশন ফাইলটি স্বয়ংক্রিয়ভাবে /home/<user>/.aws/credentials
ফাইলে সংরক্ষণ করবে। Presto S3 এর জন্য এই তথ্য ব্যবহার করবে।
S3 ডেটা সোর্স কনফিগার করার পরে, Presto সন্নিবেশিত S3 ডেটার উপর SQL কোয়েরি চালাতে সক্ষম হবে। একবার সঠিক কনফিগারেশন সম্পন্ন হলে, Presto আপনার S3-এ সংরক্ষিত ডেটাকে কোয়েরি করতে সক্ষম হবে।
এখন আপনি 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 টেবিল থেকে প্রথম ১০টি রেকর্ড তুলে আনবে।
আপনার S3 ডেটা সোর্সের জন্য কিছু অতিরিক্ত কনফিগারেশন অপশন রয়েছে যা আপনি Performance এবং Security এর জন্য কাস্টমাইজ করতে পারেন।
S3-এর বিভিন্ন স্টোরেজ ক্লাস রয়েছে যেমন STANDARD
, IA
(Infrequent Access), এবং ONEZONE_IA
। আপনি যদি স্টোরেজ ক্লাস কাস্টমাইজ করতে চান, তাহলে Presto-র hive.s3.storage-class
প্যারামিটার ব্যবহার করতে পারেন।
hive.s3.storage-class=STANDARD_IA
S3-এর বড় ফাইলের জন্য Multipart Upload ব্যবহার করতে পারেন, যা বড় ফাইল দ্রুত আপলোড করার জন্য সহায়ক। Presto সিস্টেমের মাধ্যমে S3 multipart upload সমর্থিত।
hive.s3.multipart-upload-enabled=true
Presto-তে S3 ডেটা সোর্সের উপর কোয়েরি অপটিমাইজ করার জন্য কিছু টিপস:
WHERE
ক্লজ, S3-এ ডেটা পড়ার আগে প্রয়োগ করতে পারে, যা ডেটা প্রক্রিয়াকরণ দ্রুত করে।Presto-তে S3 ডেটা সোর্স কনফিগার করা একটি সহজ প্রক্রিয়া, যেখানে Hive Connector ব্যবহার করে S3-এর সাথে সংযোগ স্থাপন করা হয়। S3 এ সংরক্ষিত ডেটা কুয়েরি করার জন্য আপনাকে সঠিক কনফিগারেশন ফাইল সেট করতে হবে, যা Presto-কে আপনার ডেটা সোর্সে সংযুক্ত করতে সাহায্য করবে। একবার কনফিগারেশন হয়ে গেলে, Presto S3-এর উপর দ্রুত SQL কোয়েরি চালাতে সক্ষম হবে, এবং আপনিও সহজেই বিশ্লেষণ করতে পারবেন।
Read more