paint-brush
আইসবার্গ, ট্যাবুলার এবং মিনিও সহ কার্যকরী আধুনিক ডেটা আর্কিটেকচার তৈরি করাদ্বারা@minio
7,928 পড়া
7,928 পড়া

আইসবার্গ, ট্যাবুলার এবং মিনিও সহ কার্যকরী আধুনিক ডেটা আর্কিটেকচার তৈরি করা

দ্বারা MinIO7m2024/04/17
Read on Terminal Reader
Read this story w/o Javascript

অতিদীর্ঘ; পড়তে

আধুনিক ডেটালেকগুলি আপনার সমস্ত ডেটা প্রয়োজনের জন্য একটি কেন্দ্রীয় হাব প্রদান করে। যাইহোক, একটি কার্যকর ডেটা লেক তৈরি এবং পরিচালনা করা জটিল হতে পারে।
featured image - আইসবার্গ, ট্যাবুলার এবং মিনিও সহ কার্যকরী আধুনিক ডেটা আর্কিটেকচার তৈরি করা
MinIO HackerNoon profile picture
0-item
1-item


আধুনিক ডেটা ল্যান্ডস্কেপ অবকাঠামোর একটি নতুন প্রজাতির দাবি করে – যা নির্বিঘ্নে কাঠামোগত এবং অসংগঠিত ডেটাকে একীভূত করে, অনায়াসে স্কেল করে এবং দক্ষ AI/ML কাজের চাপকে শক্তিশালী করে। এই হল যেখানে আধুনিক ডেটালেক আপনার সমস্ত ডেটা প্রয়োজনের জন্য একটি কেন্দ্রীয় হাব প্রদান করুন। যাইহোক, একটি কার্যকর ডেটা লেক তৈরি এবং পরিচালনা করা জটিল হতে পারে।


এই ব্লগ পোস্টটি তিনটি শক্তিশালী টুলের গভীরে ডুব দেয় যা আপনার বর্তমান পদ্ধতিকে অপ্টিমাইজ করতে পারে: অ্যাপাচি আইসবার্গ , ট্যাবুলার, এবং MinIO। নীচের পদক্ষেপগুলি আপনাকে নির্দেশ করবে যে কীভাবে এই পরিষেবাগুলি নির্বিঘ্নে একত্রিত হয়ে একটি শক্তিশালী, ক্লাউড-নেটিভ ডেটা লেক আর্কিটেকচার তৈরি করে যা বিশেষভাবে AI/ML কাজের চাপের জন্য অপ্টিমাইজ করা হয়েছে।

ট্যাবুলার কি?

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


একটি মধ্যে স্থাপত্য MinIO এবং Iceberg এর এবং Tabular দ্বারা উন্নত করা যেতে পারে। ট্যাবুলারটি MinIO-তে সংরক্ষিত আইসবার্গ ডেটা পরিচালনা এবং অনুসন্ধান করতে ব্যবহার করা যেতে পারে, যা একটি পরিমাপযোগ্য, উচ্চ-পারফরম্যান্স এবং ক্লাউড-নেটিভ পদ্ধতিতে কাঠামোগত ডেটা সঞ্চয় ও পরিচালনার অনুমতি দেয়। এই Kubernetes নেটিভ, উপাদানগুলি খুব কম ঘর্ষণ সহ মসৃণভাবে একসাথে কাজ করে এবং স্কেলে পারফর্ম করার জন্য একে অপরের ক্ষমতা তৈরি করে।

Hadoop এর ফাইল-io এর পরিবর্তে S3FileIO কেন?

এই বাস্তবায়ন আইসবার্গের S3FileIO সুবিধা দেয়। S3FileIO বিভিন্ন কারণে Hadoop এর ফাইল-io থেকে ভাল বলে বিবেচিত হয়। যার মধ্যে কিছু আমরা ইতিমধ্যে আলোচনা করেছি অন্যত্র :


  1. ক্লাউড স্টোরেজের জন্য অপ্টিমাইজ করা হয়েছে : আইসবার্গের S3FileIO ক্লাউড-নেটিভ স্টোরেজের সাথে কাজ করার জন্য ডিজাইন করা হয়েছে।


  2. উন্নত থ্রুপুট এবং মিনিমাইজড থ্রটলিং: আইসবার্গ একটি ব্যবহার করে ObjectStoreLocationProvider একটি MinIO বালতিতে একাধিক উপসর্গ জুড়ে ফাইল বিতরণ করতে, যা S3-সম্পর্কিত IO ক্রিয়াকলাপগুলির জন্য থ্রোটলিং কমাতে এবং সর্বাধিক থ্রুপুট করতে সহায়তা করে।


  3. কঠোর ধারাবাহিকতা: আইসবার্গ হয়েছে আপডেট করা হয়েছে কর্মক্ষমতা প্রভাবিত করতে পারে এমন অপ্রয়োজনীয় ধারাবাহিকতা পরীক্ষাগুলিকে বাদ দিয়ে কঠোর ধারাবাহিকতা সম্পূর্ণরূপে লাভ করা।


  4. প্রগতিশীল মাল্টিপার্ট আপলোড: আইসবার্গের S3FileIO একটি প্রয়োগ করে প্রগতিশীল মাল্টিপার্ট আপলোড অ্যালগরিদম, যা প্রতিটি অংশ প্রস্তুত হওয়ার সাথে সাথে ডেটা ফাইলের অংশগুলি সমান্তরালভাবে আপলোড করে, স্থানীয় ডিস্কের ব্যবহার হ্রাস করে এবং আপলোডের গতি বাড়ায়।


  5. চেকসাম যাচাইকরণ: আইসবার্গ অনুমতি দেয় চেকসাম বৈধতা আপলোড করা বস্তুর অখণ্ডতা নিশ্চিত করার জন্য S3 API লিখে, যা উপযুক্ত ক্যাটালগ বৈশিষ্ট্য সেট করে সক্ষম করা যেতে পারে।


  6. কাস্টম ট্যাগ: আইসবার্গ যোগ সমর্থন করে কাস্টম ট্যাগ S3 API দিয়ে লেখা এবং মুছে ফেলার ক্রিয়াকলাপ চলাকালীন অবজেক্টগুলিতে, যা খরচ ট্র্যাকিং এবং পরিচালনার জন্য দরকারী হতে পারে।


  7. নেতিবাচক ক্যাশিং এড়ানো: আইসবার্গের ফাইলআইও ইন্টারফেসের জন্য হ্যাডুপ-সামঞ্জস্যপূর্ণ ফাইল সিস্টেমের মতো কঠোর গ্যারান্টির প্রয়োজন হয় না, যা এটিকে অনুমতি দেয় নেতিবাচক ক্যাশে এড়ান যে অন্যথায় কর্মক্ষমতা অধঃপতন হতে পারে.


বিপরীতে, Hadoop এর S3A ফাইলসিস্টেম, যা S3FileIO এর আগে ব্যবহার করা হয়েছিল, ক্লাউড স্টোরেজের জন্য একই স্তরের অপ্টিমাইজেশন অফার করে না। এই সব বলার জন্য: অতীতের ফাঁদ দিয়ে আপনার ভবিষ্যত-মুখী ডেটা লেকের পরিকাঠামোকে আটকে রাখবেন না।

পূর্বশর্ত

আপনি শুরু করার আগে, নিশ্চিত করুন যে আপনার সিস্টেম নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করে:

আপনি স্ক্র্যাচ থেকে শুরু করছেন, আপনি উভয় ব্যবহার করে ইনস্টল করতে পারেন ডকার ডেস্কটপ আপনার নির্দিষ্ট প্ল্যাটফর্মের জন্য ইনস্টলার। ডকার এবং ডকার কম্পোজ আলাদাভাবে ডাউনলোড করার চেয়ে এটি প্রায়শই সহজ। নিম্নলিখিত কমান্ডটি চালিয়ে ডকার ইনস্টল করা আছে কিনা তা যাচাই করুন:


 docker-compose --version


শুরু হচ্ছে

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


ব্রেকিং ডাউন

প্রদত্ত YAML ফাইলটি একটি ডকার কম্পোজ কনফিগারেশন ফাইল। এটি একটি মাল্টি-কন্টেইনার ডকার অ্যাপ্লিকেশনের জন্য পরিষেবাগুলির একটি সেট এবং তাদের কনফিগারেশনকে সংজ্ঞায়িত করে। এই ক্ষেত্রে, দুটি পরিষেবা রয়েছে: স্পার্ক-আইসবার্গ এবং মিনিও। আসুন প্রতিটি বিভাগ ভাঙ্গুন:


1. স্পার্ক-আইসবার্গ পরিষেবা:


 spark-iceberg: image: tabulario/spark-iceberg container_name: spark-iceberg build: spark/ networks: iceberg_net: depends_on: - rest - minio volumes: - ./warehouse:/home/iceberg/warehouse - ./notebooks:/home/iceberg/notebooks/notebooks environment: - AWS_ACCESS_KEY_ID=admin - AWS_SECRET_ACCESS_KEY=password - AWS_REGION=us-east-1 ports: - 8888:8888 - 8080:8080 - 10000:10000 - 10001:10001 rest: image: tabulario/iceberg-rest container_name: iceberg-rest networks: iceberg_net: ports: - 8181:8181 environment: - AWS_ACCESS_KEY_ID=admin - AWS_SECRET_ACCESS_KEY=password - AWS_REGION=us-east-1 - CATALOG_WAREHOUSE=s3://warehouse/ - CATALOG_IO__IMPL=org.apache.iceberg.aws.s3.S3FileIO - CATALOG_S3_ENDPOINT=http://minio:9000



চিত্র: স্পার্ক-আইসবার্গ পরিষেবার জন্য ব্যবহার করার জন্য ডকার চিত্রটি নির্দিষ্ট করে। এই ক্ষেত্রে, এটি ট্যাবুলারিও/স্পার্ক-আইসবার্গ: সাম্প্রতিক চিত্র ব্যবহার করে।

depends_on: নির্দিষ্ট করে যে স্পার্ক-আইসবার্গ পরিষেবা বাকি এবং মিনিও পরিষেবাগুলির উপর নির্ভর করে৷

ধারক_নাম: ধারকটিতে একটি নির্দিষ্ট নাম (স্পার্ক-আইসবার্গ) বরাদ্দ করে।

পরিবেশ: স্পার্ক এবং AWS শংসাপত্র সহ কন্টেইনারের জন্য পরিবেশের ভেরিয়েবল সেট করে।

ভলিউম: কন্টেইনারের ভিতরে ভলিউম হিসাবে স্থানীয় ডিরেক্টরি (./গুদাম এবং ./নোটবুক) মাউন্ট করে।

পোর্ট: স্পার্ক UI এবং অন্যান্য পরিষেবাগুলি অ্যাক্সেস করার জন্য পোর্টগুলি হোস্ট করার জন্য মানচিত্র কন্টেইনার পোর্ট।


2. মিনিও পরিষেবা:


 minio: image: minio/minio container_name: minio environment: - MINIO_ROOT_USER=admin - MINIO_ROOT_PASSWORD=password - MINIO_DOMAIN=minio networks: iceberg_net: aliases: - warehouse.minio ports: - 9001:9001 - 9000:9000 command: ["server", "/data", "--console-address", ":9001"]


চিত্র: MinIO পরিষেবার জন্য ডকার ইমেজ নির্দিষ্ট করে।

ধারক_নাম: কন্টেইনারে একটি নির্দিষ্ট নাম (MinIO) বরাদ্দ করে।

পরিবেশ: রুট ব্যবহারকারীর শংসাপত্র সহ MinIO কনফিগার করার জন্য পরিবেশ ভেরিয়েবল সেট করে।

পোর্ট: MinIO UI অ্যাক্সেস করার জন্য পোর্ট হোস্ট করতে মানচিত্র কন্টেইনার পোর্ট।

কমান্ড: নির্দিষ্ট পরামিতি সহ MinIO সার্ভার শুরু করার কমান্ডটি নির্দিষ্ট করে।


MinIO পরিষেবার আরেকটি দিক হল mc , MinIO এর কমান্ড লাইন টুল।


 mc: depends_on: - minio image: minio/mc container_name: mc networks: iceberg_net: environment: - AWS_ACCESS_KEY_ID=admin - AWS_SECRET_ACCESS_KEY=password - AWS_REGION=us-east-1 entrypoint: > /bin/sh -c " until (/usr/bin/mc config host add minio http://minio:9000 admin password) do echo '...waiting...' && sleep 1; done; /usr/bin/mc rm -r --force minio/warehouse; /usr/bin/mc mb minio/warehouse; /usr/bin/mc policy set public minio/warehouse; tail -f /dev/null "


depends_on: উল্লেখ করে যে mc পরিষেবা MinIO পরিষেবার উপর নির্ভর করে।

চিত্র: mc পরিষেবার জন্য ডকার ইমেজ নির্দিষ্ট করে।

कंटेनर_নাম: কন্টেইনারে একটি নির্দিষ্ট নাম (mc) বরাদ্দ করে।

পরিবেশ: MinIO ক্লায়েন্ট কনফিগার করার জন্য পরিবেশ ভেরিয়েবল সেট করে।

এন্ট্রিপয়েন্ট: MinIO ক্লায়েন্টের জন্য সেটআপ পদক্ষেপ সহ কন্টেইনারের জন্য এন্ট্রি পয়েন্ট কমান্ড সংজ্ঞায়িত করে।


 /usr/bin/mc rm -r --force minio/warehouse; /usr/bin/mc mb minio/warehouse; /usr/bin/mc policy set public minio/warehouse; tail -f /dev/null "



কমান্ডের এই ক্রমটি মূলত নিম্নলিখিত কাজগুলি সম্পাদন করে:


  • MinIO সার্ভার থেকে বিদ্যমান গুদাম ডিরেক্টরি এবং এর বিষয়বস্তু সরিয়ে দেয়।

  • গুদাম নামে একটি নতুন বালতি তৈরি করে।

  • গুদাম বাকেটের অ্যাক্সেস নীতি জনসাধারণের জন্য সেট করে।


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

শুরু হচ্ছে

একটি টার্মিনাল উইন্ডোতে, সংগ্রহস্থলের ট্যাবুলার-স্পার্ক-সেটআপ ডিরেক্টরিতে cd এবং নিম্নলিখিত কমান্ডটি চালান:


 docker-compose up


গুদাম বালতি তৈরি হয়েছে তা দেখতে শংসাপত্রের admin:password দিয়ে http://127.0.0.1:9001 এ MinIO-তে লগইন করুন।



সব কন্টেইনার চালু হয়ে গেলে, আপনি http://localhost:8888 এ নেভিগেট করে আপনার Jupyter Notebook সার্ভার অ্যাক্সেস করতে পারবেন



একটি নমুনা নোটবুক চালান এবং আপনার গুদামটি ডেটাতে ভরপুর দেখতে http://127.0.0.1:9001 এ MinIO-তে ফিরে যান।


আপনার আধুনিক ডাটালেক তৈরি করা

আইসবার্গ, ট্যাবুলার, এবং মিনিও সহ একটি আধুনিক ডেটালেক তৈরির এই টিউটোরিয়ালটি মাত্র শুরু। এই শক্তিশালী ত্রয়ী সম্ভাবনার জগতের দরজা খুলে দেয়। এই টুলগুলির সাহায্যে, আপনি নিখুঁতভাবে আপনার সমস্ত ডেটা সংহত এবং বিশ্লেষণ করতে পারেন, কাঠামোগত এবং অসংগঠিত, লুকানো নিদর্শনগুলি উন্মোচন করতে এবং ডেটা-চালিত সিদ্ধান্তগুলিকে চালিত করতে যা উদ্ভাবনকে উত্সাহিত করে৷ আপনার AI/ML উদ্যোগগুলিকে ত্বরান্বিত করতে এবং আপনার মেশিন লার্নিং মডেলগুলির সত্যিকারের সম্ভাবনাকে আনলক করতে উত্পাদনে এই আর্কিটেকচারের দক্ষতা এবং নমনীয়তা ব্যবহার করুন, যুগান্তকারী আবিষ্কারের পথে আপনার পথকে ত্বরান্বিত করুন। এ আমাদের সাথে যোগাযোগ করুন [email protected] বা আমাদের উপর স্ল্যাক চ্যানেল নির্মাণের সময় আপনার কোন প্রশ্ন থাকলে।