স্থানীয়ভাবে AWS এর জন্য ETL পাইপলাইনগুলির উন্নয়ন ও পরীক্ষা

উত্স নোড: 997665

স্থানীয়ভাবে AWS এর জন্য ETL পাইপলাইনগুলির উন্নয়ন ও পরীক্ষা

সাধারণত, ইটিএল পাইপলাইনগুলির বিকাশ এবং পরীক্ষা বাস্তব পরিবেশ/ক্লাস্টারে করা হয় যা সেটআপ করতে সময় লাগে এবং রক্ষণাবেক্ষণের প্রয়োজন হয়। এই নিবন্ধটি ডকার এবং লোকালস্ট্যাকের সাহায্যে স্থানীয়ভাবে ETL পাইপলাইনগুলির বিকাশ এবং পরীক্ষার উপর দৃষ্টি নিবদ্ধ করে। সমাধানটি ক্লাউডে কোনও পরিষেবা সেট আপ না করেই স্থানীয় পরিবেশে পরীক্ষা করার নমনীয়তা দেয়।


By সুভাষ শ্রীনিবাসাচার, সফ্টওয়্যার ইঞ্জিনিয়ার এপসিলনে টেকনিক্যাল লিড

ভূমিকা

 
 
এডব্লিউএস প্রকৌশলী, ডেটা-সায়েন্টিস্টদের পরিকাঠামো সেটআপ করার প্রয়োজনীয়তা সম্পর্কে উদ্বেগ না করে সমাধান তৈরি এবং সমস্যা সমাধানে ফোকাস করতে সহায়তা করার ক্ষেত্রে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। মূল্য নির্ধারণের জন্য সার্ভারলেস এবং পে-অ্যাজ-ইউ-গো পদ্ধতির সাথে, AWS ফ্লাইতে পরিষেবা তৈরির সহজতা প্রদান করে।

AWS আঠালো সার্ভারহীন ETL পাইপলাইন তৈরি করতে ডেটা ইঞ্জিনিয়ারদের দ্বারা ব্যাপকভাবে ব্যবহৃত হয়। PySpark উন্নয়নের জন্য ব্যবহৃত একটি সাধারণ টেক-স্ট্যাক। যাইহোক, পরিষেবার প্রাপ্যতা সত্ত্বেও, কিছু চ্যালেঞ্জ রয়েছে যা মোকাবেলা করা প্রয়োজন।

ETL স্ক্রিপ্ট (PySpark) বা অন্য কোনও পরিষেবার জন্য AWS পরিবেশে কোড ডিবাগ করা একটি চ্যালেঞ্জ।

  • AWS পরিষেবা ব্যবহারের চলমান নিরীক্ষণ খরচ ফ্যাক্টরকে নিয়ন্ত্রণে রাখতে চাবিকাঠি
  • AWS সমস্ত স্পার্ক লাইব্রেরি ইনস্টল সহ ডেভ এন্ডপয়েন্ট অফার করে, কিন্তু দাম বিবেচনা করে, এটি বড় উন্নয়ন দলের জন্য ব্যবহারের জন্য কার্যকর নয়
  • AWS পরিষেবাগুলির অ্যাক্সেসযোগ্যতা হতে পারে সীমিত নির্দিষ্ট ব্যবহারকারীদের জন্য

সমাধান

 
 
AWS-এর জন্য সমাধানগুলি অ্যাক্সেসযোগ্যতা বা খরচ ফ্যাক্টর সম্পর্কে চিন্তা না করে স্থানীয় পরিবেশে পরীক্ষা করা যেতে পারে। এই নিবন্ধটির মাধ্যমে, আমরা দুটি সমস্যার সমাধান করছি-

  1. AWS ডেভ এন্ডপয়েন্ট ব্যবহার না করে স্থানীয়ভাবে PySpark কোড ডিবাগ করা।
  2. স্থানীয়ভাবে AWS পরিষেবাগুলির সাথে ইন্টারঅ্যাক্ট করা

উভয় সমস্যা ডকার ইমেজ ব্যবহার করে সমাধান করা যেতে পারে.

  1. প্রথমত, আমরা AWS পরিবেশে সার্ভারের প্রয়োজনীয়তা দূর করি এবং পরিবর্তে, মেশিনে চলমান একটি ডকার চিত্র কোডটি কার্যকর করার পরিবেশ হিসাবে কাজ করে।

AWS একটি স্যান্ডবক্স ইমেজ প্রদান করে যা PySpark স্ক্রিপ্টের জন্য ব্যবহার করা যেতে পারে। ডকার ইমেজ PySpark কোড চালানোর জন্য সেটআপ করা যেতে পারে। https://aws.amazon.com/blogs/big-data/developing-aws-glue-etl-jobs-locally-using-a-container/
 

  1. কোড চালানোর জন্য ডকার মেশিন উপলব্ধ থাকায়, একটি ETL পাইপলাইন তৈরি করার সময় ফাইলগুলি সংরক্ষণ (পড়া/লিখতে) করার জন্য S3 এর মতো একটি পরিষেবার প্রয়োজন রয়েছে।

S3 সঙ্গে মিথস্ক্রিয়া সঙ্গে প্রতিস্থাপিত করা যেতে পারে লোকালস্ট্যাক যা ক্লাউড অ্যাপ্লিকেশন বিকাশের জন্য একটি সহজে ব্যবহারযোগ্য পরীক্ষা/মকিং ফ্রেমওয়ার্ক প্রদান করে। এটি আপনার স্থানীয় মেশিনে একটি পরীক্ষার পরিবেশ তৈরি করে যা আসল AWS ক্লাউড পরিবেশের মতো একই কার্যকারিতা এবং API প্রদান করে।

শিরোলেখ

এখনও অবধি, নিবন্ধটি একটি ETL পাইপলাইন নির্মাণ এবং উপলব্ধ পরিষেবাগুলির ব্যবহার সম্পর্কিত। যাইহোক, SNS, SQS, ক্লাউডফরমেশন, Lambda ফাংশন ইত্যাদির মতো AWS পরিষেবাগুলির সাথে কাজ করার সময় অনুরূপ পদ্ধতিটি যে কোনও ব্যবহারের ক্ষেত্রে অভিযোজিত হতে পারে।

অভিগমন

  • দূরবর্তী দোভাষী হিসাবে ডকার পাত্রে ব্যবহার করুন
  • পাত্রে PySpark সেশন চালান
  • LocalStack ব্যবহার করে স্থানীয়ভাবে S3 পরিষেবা স্পিন আপ করুন
  • LocalStack এ চলমান S3 বাকেট থেকে পড়তে এবং লিখতে PySpark কোড ব্যবহার করুন

আগ্রহী

 
নিম্নলিখিত সরঞ্জামগুলি আপনার মেশিনে ইনস্টল করা আবশ্যক

  • ডকশ্রমিক
  • পাইচর্ম প্রফেশনাল/ ভিজ্যুয়াল স্টুডিও কোড

সেটআপ

  • ডকার ইমেজ ডাউনলোড বা টানুন (ডকার টান )
    • libs:glue_libs_1.0.0_image_01
    • localstack/localstack
  • ডকার পাত্রে PyCharm পেশাদার সংস্করণে দূরবর্তী দোভাষী হিসাবে ব্যবহার করা যেতে পারে।

বাস্তবায়ন

 
ডকার ইনস্টল করা এবং আপনার স্থানীয় মেশিনে ছবি টেনে নিয়ে, কন্টেইনারগুলি শুরু করতে কনফিগারেশন সহ PyCharm সেট করা শুরু করুন।

  • একটি docker-compose.yml ফাইল তৈরি করুন

https://gist.github.com/subhash-sreenivasachar/526221a4ede6053b1d576e666db8ec87#file-docker-compose-yml

  • একটি ডকারফাইল তৈরি করুন

https://gist.github.com/subhash-sreenivasachar/526221a4ede6053b1d576e666db8ec87#file-dockerfile

  • ইনস্টল করার জন্য প্যাকেজ সহ প্রয়োজনীয় ফাইল ব্যবহার করুন

https://gist.github.com/subhash-sreenivasachar/526221a4ede6053b1d576e666db8ec87#file-requirements-txt
 

  • পাইথন রিমোট ইন্টারপ্রেটার সেটআপ করুন
    • ডকার-কম্পোজ ফাইল ব্যবহার করে পাইথন ইন্টারপ্রেটার সেটআপ করুন।
    • PyCharm Docker Compose সেটিংসে `glue-service` নির্বাচন করুন।
    • ডকার-কম্পোজ ফাইল উভয় ইমেজের জন্য কন্টেইনার তৈরি করে এবং চালায়
    • লোকালস্ট্যাক ডিফল্টভাবে পোর্ট 4566 এ চলে এবং এতে S3 পরিষেবা সক্রিয় করা আছে

কোড

  • প্রয়োজনীয় লাইব্রেরি আমদানি করতে হবে

https://gist.github.com/subhash-sreenivasachar/526221a4ede6053b1d576e666db8ec87#file-imports

  • LocalStack এ চলমান S3 বালতিতে একটি ফাইল যোগ করুন

https://gist.github.com/subhash-sreenivasachar/526221a4ede6053b1d576e666db8ec87#file-add_to_bucket
http://host.docker.internal:4566 S3 হল স্থানীয়ভাবে ডকার কন্টেইনারের ভিতরে চলছে

  • S3 থেকে পড়ার জন্য PySpark সেশন সেটআপ করুন

https://gist.github.com/subhash-sreenivasachar/526221a4ede6053b1d576e666db8ec87#file-create_pyspark_session

  • PySpark সেশন প্রদত্ত মক শংসাপত্রের মাধ্যমে S3 এর সাথে সংযোগ করে
  • আপনি তৈরি করা PySpark সেশন ব্যবহার করে সরাসরি S3 থেকে পড়তে পারেন

https://gist.github.com/subhash-sreenivasachar/526221a4ede6053b1d576e666db8ec87#file-read_from_s3

  • অবশেষে, যেকোনো পছন্দের বিন্যাসে S3-তে লেখা সম্ভব

https://gist.github.com/subhash-sreenivasachar/526221a4ede6053b1d576e666db8ec87#file-write_to_s3

উপরে উল্লিখিত পদক্ষেপগুলি অনুসরণ করা হয়ে গেলে, আমরা পরীক্ষার জন্য মক ডেটা সহ একটি ডামি সিএসভি ফাইল তৈরি করতে পারি এবং আপনার ভাল হওয়া উচিত

  • S3 এ ফাইল যোগ করুন (যা লোকালস্ট্যাকে চলছে)
  • S3 থেকে পড়ুন
  • parquet হিসাবে S3 ফিরে লিখুন

আপনি চালানোর জন্য .py ফাইলটি চালাতে সক্ষম হবেন এবং PySpark সেশন তৈরি হবে যা S3 বাকেট থেকে পড়তে পারে যা স্থানীয়ভাবে LocalStack API ব্যবহার করে চলছে।

উপরন্তু, আপনি LocalStack এর সাথে চলছে কিনা তাও পরীক্ষা করতে পারেন http://localhost:4566/health

LocalStack আপনাকে AWS CLI ব্যবহার করে কমান্ড চালানোর ক্ষমতা প্রদান করে।

উপসংহার

 
 
ডকার এবং লোকালস্ট্যাকের ব্যবহার পাইসপার্ক কোড চালানোর একটি দ্রুত এবং সহজ উপায় প্রদান করে, পাত্রে ডিবাগ করে এবং স্থানীয়ভাবে চলমান S3-এ লিখতে পারে। কোন AWS পরিষেবার সাথে সংযোগ না করেই এই সব।

 
তথ্যসূত্র:

 
বায়ো: সুভাষ শ্রীনিবাসাচার এপসিলন ডিজিটাল এক্সপেরিয়েন্স টিমের লিড সফ্টওয়্যার প্রকৌশলী, ডেটা বিজ্ঞানের সমস্যাগুলি বিশেষভাবে ব্যক্তিগতকরণ এবং ক্লায়েন্টদের জন্য ROI ড্রাইভ করতে সহায়তা করার জন্য ইঞ্জিনিয়ারিং সমাধান তৈরি করে৷

সম্পর্কিত:



শীর্ষ গল্পগুলি গত 30 দিন
সবচেয়ে জনপ্রিয়
  1. ডেটা সায়েন্টিস্ট এবং এমএল ইঞ্জিনিয়াররা বিলাসবহুল কর্মচারী
  2. 6 সালে শীর্ষ 2021 ডেটা সায়েন্স অনলাইন কোর্স
  3. গুগলের গবেষণা পরিচালক থেকে ডেটা সায়েন্স শেখার পরামর্শ
  4. পান্ডা যথেষ্ট নয়? পাইথনে বড় এবং দ্রুত ডেটা প্রক্রিয়াকরণের জন্য এখানে কয়েকটি ভাল বিকল্প রয়েছে
  5. ডেটা সায়েন্টিস্ট হওয়ার একটি শিক্ষণ পথ
সর্বাধিক ভাগ করা
  1. ডেটা সায়েন্টিস্ট এবং এমএল ইঞ্জিনিয়াররা বিলাসবহুল কর্মচারী
  2. আরাম! ডেটা সায়েন্টিস্ট 10 বছরে বিলুপ্ত হবে না, কিন্তু ভূমিকা পরিবর্তন হবে
  3. পান্ডা যথেষ্ট নয়? পাইথনে বড় এবং দ্রুত ডেটা প্রক্রিয়াকরণের জন্য এখানে কয়েকটি ভাল বিকল্প রয়েছে
  4. কেন এবং কীভাবে আপনার "উত্পাদনশীল ডেটা সায়েন্স" শিখতে হবে?
  5. শুধু গভীর শিক্ষার জন্য নয়: কিভাবে GPUs ডেটা সায়েন্স এবং ডেটা অ্যানালিটিক্সকে ত্বরান্বিত করে

সূত্র: https://www.kdnuggets.com/2021/08/development-testing-etl-pipelines-aws-locally.html

সময় স্ট্যাম্প:

থেকে আরো কেডনুগেটস

শীর্ষ খবর, অক্টোবর 4-10: একজন শিক্ষানবিস হিসাবে শক্তিশালী ডেটা সায়েন্স পোর্টফোলিও কীভাবে তৈরি করবেন; ডেটা সায়েন্সের জন্য কোর্সেরার উপর 38টি বিনামূল্যের কোর্স

উত্স নোড: 1877743
সময় স্ট্যাম্প: অক্টোবর 11, 2021