paint-brush
ডেটা লেক রহস্য প্রকাশিত হয়েছে: নেসি, ড্রেমিও এবং মিনিও মেক ওয়েভসদ্বারা@minio
8,080 পড়া
8,080 পড়া

ডেটা লেক রহস্য প্রকাশিত হয়েছে: নেসি, ড্রেমিও এবং মিনিও মেক ওয়েভস

দ্বারা MinIO6m2024/02/22
Read on Terminal Reader

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

এই নিবন্ধটি একটি ধাপে ধাপে নির্দেশিকা প্রদান করে যা প্রদর্শন করে কিভাবে Nessie, Dremio এবং MinIO একসাথে কাজ করে আপনার ডেটা ইঞ্জিনিয়ারিং ওয়ার্কফ্লোতে ডেটার গুণমান এবং সহযোগিতা বাড়াতে।
featured image - ডেটা লেক রহস্য প্রকাশিত হয়েছে: নেসি, ড্রেমিও এবং মিনিও মেক ওয়েভস
MinIO HackerNoon profile picture


আমাদের মধ্যে অনেকেই প্রয়োজনীয়তার উপর ভিত্তি করে ডেটাতে পরিবর্তন করেছি যা পরবর্তীতে বিকশিত হয়। যখন আমরা এটি বুঝতে পারি, তখন এটি ফিরে আসা অসম্ভব হয়ে পড়ে। পরিবর্তন শুধু একটি ধ্রুবক নয়; এটি ডেটা পরিচালনার একটি অপরিহার্য অংশ যা একটি পরিশীলিত পদ্ধতির দাবি করে। Dremio-এর ডেটা ক্যাটালগ Nessie-এর Git-এর মতো কার্যকারিতা লিখুন।


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


এই নিবন্ধটি একটি ধাপে ধাপে নির্দেশিকা প্রদান করে যা প্রদর্শন করে কিভাবে Nessie, Dremio এবং MinIO একসাথে কাজ করে আপনার ডেটা ইঞ্জিনিয়ারিং ওয়ার্কফ্লোতে ডেটার গুণমান এবং সহযোগিতা বাড়াতে। আপনি একজন ডেটা প্রকৌশলী, ML ইঞ্জিনিয়ার, বা শুধুমাত্র একজন আধুনিক ডেটা লেক উত্সাহী হোন না কেন, এই ব্লগটি আপনাকে আপনার ডেটা সংস্করণের অনুশীলনগুলিকে কার্যকরভাবে উন্নত করার জন্য প্রয়োজনীয় জ্ঞান এবং সরঞ্জামগুলির সাথে সজ্জিত করে৷

বুনিয়াদি বোঝা: নেসি ওয়ার্কলোডস

Nessie Git-এর মতো কাজের চাপের জন্য অনুমতি দেয় যা আপনাকে পরীক্ষা, বিকাশ এবং উত্পাদনে ঠেলে দেয়। আসুন কিছু মূল ধারণাগুলি ভেঙে দেওয়া যাক:


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


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


  • একত্রীকরণ : নেসি আপনাকে একটি শাখা থেকে অন্য শাখায় পরিবর্তনগুলিকে একত্রিত করার অনুমতি দেয়। এটি গিটে কোড পরিবর্তনগুলি মার্জ করার অনুরূপ। আপনি যখন একটি শাখাকে একত্রিত করেন, সেই শাখায় করা ডেটা পরিবর্তনগুলি লক্ষ্য শাখার অংশ হয়ে যায়।

উপাদানগুলো



Dremio একটি বিতরণ করা বিশ্লেষণ ইঞ্জিন যা একটি ওপেন-সোর্স প্ল্যাটফর্ম হিসাবে কাজ করে, ডেটা অনুসন্ধান, রূপান্তর এবং সহযোগী কাজের জন্য একটি স্বজ্ঞাত স্ব-পরিষেবা ইন্টারফেস অফার করে। এর ডিজাইন গ্রাউন্ডেড ইন অ্যাপাচি তীর, একটি উচ্চ-গতির কলামার মেমরি বিন্যাস।


আমরা ইতিমধ্যে কুবারনেটসের সাথে কীভাবে ড্রেমিও স্থাপন করতে হয় এবং কীভাবে তা অন্বেষণ করেছি Dremio-এর সাথে MinIO-তে আইসবার্গ টেবিলের প্রশ্ন করুন . Dremio সম্পর্কে অতিরিক্ত তথ্যের জন্য, পরামর্শ করুন Dremio সম্পদ .


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


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

শুরু হচ্ছে

আপনি প্রয়োজন হবে ডকার ইঞ্জিন এবং ডকার রচনা এই টিউটোরিয়ালের জন্য। আপনার কাছে ইতিমধ্যেই না থাকলে উভয়টি পাওয়ার সবচেয়ে সহজ উপায় হল ডকার ডেস্কটপ ইনস্টল করা।


টিউটোরিয়ালের এই অংশটি Dremio এর উপর ভিত্তি করে ব্লগ পোস্ট . আপনি এই প্রকল্পের জন্য রেপো পেতে পারেন এখানে .


শুরু করতে, একটি টার্মিনাল খুলুন এবং যে ফোল্ডারে আপনি রেপো ক্লোন/ডাউনলোড করেছেন সেখানে নেভিগেট করুন এবং Dremio শুরু করতে নিচের কমান্ডটি চালান।


 docker-compose up dremio


কয়েক মুহূর্ত অপেক্ষা করুন এবং তারপরে Dremio অ্যাক্সেস করতে http://localhost:9047 এ নেভিগেট করুন। অনুরোধ করা ক্ষেত্র আপডেট করুন এবং তারপর পরবর্তী ক্লিক করুন।



এর পরে, MinIO শুরু করতে নিম্নলিখিত কমান্ডটি চালান।


 docker-compose up minio


নীচের চূড়ান্ত docker-compose up কমান্ডটি নেসি শুরু করবে।


 docker-compose up nessie


minioadmin:minioadmin এর ব্যবহারকারীর নাম এবং পাসওয়ার্ড দিয়ে MinIO-তে লগ ইন করতে http://localhost:9001 এ নেভিগেট করুন। আপনাকে একটি বালতি তৈরি করতে বলা হবে।



একটা iceberg-datalake নাম দিন।



তারপর http://localhost:9047 এ Dremio-এ ফিরে যান এবং Add Source-এ ক্লিক করুন এবং Nessie নির্বাচন করুন।



  • nessie নাম সেট করুন
  • এন্ডপয়েন্ট URLটিকে http://nessie:19120/api/v2 এ সেট করুন
  • none প্রমাণীকরণ সেট করবেন না



এখনও সংরক্ষণ ক্লিক করবেন না. পরিবর্তে, বাম দিকের নেভিগেশন প্যানেলে, স্টোরেজ ক্লিক করুন। MinIO হল S3-API সামঞ্জস্যপূর্ণ অবজেক্ট স্টোরেজ এবং AWS S3 এর মতো একই সংযোগ পথ ব্যবহার করতে পারে।


  • আপনার অ্যাক্সেস কী এর জন্য, minioadmin সেট করুন
  • আপনার গোপন কী জন্য, minioadmin সেট করুন
  • রুট পাথ /iceberg-datalake সেট করুন



নির্দেশাবলীর পরবর্তী সেটের জন্য নিচে স্ক্রোল করুন।

  • নিম্নলিখিত বৈশিষ্ট্যগুলি তৈরি এবং কনফিগার করতে Connection Properties অধীনে Add Property বোতামে ক্লিক করুন।
    • fs.s3a.path.style.access to true
    • fs.s3a.endpoint থেকে minio:9000
    • dremio.s3.compat থেকে true
    • Encrypt connection আনচেক করুন



তারপর Save এ ক্লিক করুন। আপনার এখন আপনার ডেটা উত্সগুলিতে নেসি ক্যাটালগগুলি দেখতে হবে৷



একটি ডেটা উত্স তৈরি করুন

Dremio-তে বাম দিকে এসকিউএল রানারে নেভিগেট করুন। নিশ্চিত করুন যে টেক্সট এডিটরের উপরের ডানদিকে Context আমাদের Nessie উৎসে সেট করা আছে। অন্যথায়, এই ক্যোয়ারী চালানোর জন্য আপনাকে শুধুমাত্র SalesData এর পরিবর্তে nessie.SalesData এর মতো প্রসঙ্গ উল্লেখ করতে হবে। নিচের এসকিউএল কপি করে পেস্ট করুন এবং রান করুন।


 CREATE TABLE SalesData (    id INT,    product_name VARCHAR,    sales_amount DECIMAL,    transaction_date DATE ) PARTITION BY (transaction_date); 



আপনার তৈরি করা টেবিলে ডেটা সন্নিবেশ করতে নীচের ক্যোয়ারীটি চালান।


 INSERT INTO SalesData (id, product_name, sales_amount, transaction_date) VALUES    (1, 'ProductA', 1500.00, '2023-10-15'),    (2, 'ProductB', 2000.00, '2023-10-15'),    (3, 'ProductA', 1200.00, '2023-10-16'),    (4, 'ProductC', 1800.00, '2023-10-16'),    (5, 'ProductB', 2200.00, '2023-10-17'); 



আপনার ডেটা লেকটি আইসবার্গ টেবিলের সাথে জনবহুল হয়েছে তা দেখতে MinIO-তে ফিরে যান।


ব্রাঞ্চিং এবং নেসির সাথে একত্রিত হওয়া

http://localhost:9047 এ Dremio-এ ফিরে যান। AT BRANCH সিনট্যাক্স ব্যবহার করে প্রধান শাখায় একটি টেবিলের অনুসন্ধান করে শুরু করুন:


 SELECT * FROM nessie.SalesData AT BRANCH main; 



একটি ETL (এক্সট্র্যাক্ট ট্রান্সফর্ম এবং লোড) শাখা তৈরি করুন যাতে আপনি উত্পাদনকে প্রভাবিত না করে ডেটার সাথে খেলতে এবং রূপান্তর করতে পারেন।


 CREATE BRANCH etl_06092023 in nessie


ETL শাখার মধ্যে, টেবিলে নতুন ডেটা সন্নিবেশ করান:

 USE BRANCH etl_06092023 in nessie; INSERT INTO nessie.SalesData (id, product_name, sales_amount, transaction_date) VALUES (6, 'ProductC', 1400.00, '2023-10-18');


ETL শাখার মধ্যে নতুন ডেটার অবিলম্বে উপলব্ধতা নিশ্চিত করুন:

 SELECT * FROM nessie.SalesData AT BRANCH etl_06092023;


প্রধান শাখায় ব্যবহারকারীদের থেকে পরিবর্তনের বিচ্ছিন্নতা নোট করুন:

 SELECT * FROM nessie.SalesData AT BRANCH main;


ETL শাখা থেকে মূল শাখায় পরিবর্তনগুলি মার্জ করুন:

 MERGE BRANCH etl_06092023 INTO main in nessie;


পরিবর্তনগুলি সত্যিই একত্রিত হয়েছে তা দেখতে আবার প্রধান শাখা নির্বাচন করুন৷

 SELECT * FROM nessie.SalesData AT BRANCH main


এই ব্রাঞ্চিং কৌশলটি ডেটা ইঞ্জিনিয়ারদের স্বাধীনভাবে একাধিক টেবিল জুড়ে অসংখ্য লেনদেন পরিচালনা করতে সক্ষম করে। যখন তারা প্রস্তুত হয়, ডেটা ইঞ্জিনিয়াররা এই লেনদেনগুলিকে প্রধান শাখার মধ্যে একটি একক, ব্যাপক মাল্টি-টেবিল লেনদেনে একত্রিত করতে পারেন।

উপসংহার

এই ব্লগ পোস্টটি ডেটা ইঞ্জিনিয়ারিং-এ গিট-এর মতো সংস্করণ নিয়ন্ত্রণের শক্তির উপর আলোকপাত করেছে, কীভাবে জোর দেওয়া হয়েছে নেসি নির্বিঘ্নে ডেটা সংস্করণ, শাখা এবং মার্জ পরিচালনা করে। এই ধাপে ধাপে নির্দেশিকা প্রদর্শন করে কিভাবে Nessie, Dremio এবং MinIO-এর সহযোগিতায়, অবজেক্ট স্টোরেজ ফাউন্ডেশন হিসেবে, ডেটার গুণমান এবং ডেটা ইঞ্জিনিয়ারিং ওয়ার্কফ্লোতে সহযোগিতা বাড়ায়।


আপনার ডেটা লেকহাউস দেখতে কেমন তা আমাদের জানান [email protected] অথবা চালু আমাদের স্ল্যাক চ্যানেল .


এছাড়াও এখানে উপস্থিত হয়.