অভ্র বনাম পরকুইট


92

আমি আমার হ্যাডোপ সম্পর্কিত প্রকল্পের জন্য একটি হ্যাডোপ ফাইল ফর্ম্যাট ব্যবহার করার পরিকল্পনা করছি। আমি বুঝতে পারি যে parquet কলাম ভিত্তিক ক্যোয়ারি এবং পূর্ণ স্ক্যানের জন্য অভ্র বা যখন আমাদের সমস্ত কলামের ডেটা প্রয়োজন তখন দক্ষ!

আমি এগিয়ে যাওয়ার আগে এবং ফাইল ফর্ম্যাটটির একটি চয়ন করার আগে, আমি বুঝতে চাই যে অন্যগুলির মধ্যে কীগুলির অসুবিধা / ত্রুটি রয়েছে। কেউ কি আমাকে সহজ কথায় এটি ব্যাখ্যা করতে পারেন?

উত্তর:


53

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

job.setOutputFormatClass(AvroKeyOutputFormat.class);
AvroJob.setOutputKeySchema(MyAvroType.getClassSchema());

জন্য

job.setOutputFormatClass(AvroParquetOutputFormat.class);
AvroParquetOutputFormat.setSchema(job, MyAvroType.getClassSchema());

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

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

পারকুইটটি আরও সাধারণকরণ / বুদ্ধিমান ডেটার জন্য এখনও ব্যবহার করার আমার খুব বেশি সুযোগ হয়নি তবে আমি বুঝতে পারি যে যদি এটি ভালভাবে ব্যবহার করা হয় তবে এটি পারফরম্যান্সের উল্লেখযোগ্য উন্নতির জন্য অনুমতি দেয়।


4
Parquet নেস্টেড ডেটাসেট / সংগ্রহগুলিও সমর্থন করে।
তাগর

@ রুসলান: হ্যাঁ, এটি নেস্টেড কাঠামোগত প্রযুক্তিগতভাবে সমর্থন করেছিল। ডেটা বিস্তৃত করার কারণে সমস্যাটি হ'ল কলামগুলির খুব বেশি সংখ্যক। এটি কাজ করেছে তবে এটি খুব ধীর ছিল।
স্টিমার 25

4
হ্যাঁ, কাঠের কাঠামোয় ডেটা লেখার জন্য ব্যয় বেশি। পাঠগুলি অন্যভাবে হয়, বিশেষত যদি আপনার প্রশ্নগুলি কলামগুলির একটি উপসেটটি সাধারণত পড়ে থাকে।
তাগর

4
আমি মনে করি Parquet বেশিরভাগ ব্যবহারের ক্ষেত্রে উপযুক্ত তবে ব্যতীত একই কলামে ডেটা অনেক রকম হয় এবং সর্বদা প্রায় সমস্ত কলামে বিশ্লেষণ করা হয়।
রকি ইয়াং

অ্যাপাচি অ্যারো এখনও মিক্সড নেস্টিং সমর্থন করে না (অভিধান সহ অভিধান বা তালিকার সাথে অভিধান)। সুতরাং যদি আপনি পরকুইটে জটিল বাসা বাঁধতে কাজ করতে চান তবে আপনি স্পার্ক, মধু ইত্যাদি ইত্যাদির সাথে আটকে আছেন এবং এমন সরঞ্জামগুলি যা পারকুইট পড়তে এবং লেখার জন্য অ্যারোর উপর নির্ভর করে না।
জোশিয়ার

49

অভ্র একটি সারি ভিত্তিক ফর্ম্যাট। আপনি যদি সামগ্রিকভাবে ডেটা পুনরুদ্ধার করতে চান তবে আপনি অভ্র ব্যবহার করতে পারেন

Parquet একটি কলাম ভিত্তিক ফর্ম্যাট। যদি আপনার ডেটাতে প্রচুর কলাম থাকে তবে আপনি কলামগুলির একটি উপসেটে আগ্রহী হন তবে আপনি Parquet ব্যবহার করতে পারেন

ঘন ঘন ডেটা আপডেট করার সাথে জড়িত থাকার সময় এইচবেস দরকারী useful অভ্র পুনরুদ্ধারে দ্রুত, পারকোয়েট আরও দ্রুত।


7
শেষ অনুচ্ছেদে দয়া করে আপনার 2 টি শেষ বাক্য ঠিক করুন। এরা নিখুঁতভাবে বোধগম্য নয়।
সিবিহে

39

অভ্র

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

ছদ্মবেশ

  • কলাম-ওরিয়েন্টেড বাইনারি ফাইল ফর্ম্যাট
  • ড্রিমেল পেপারে বর্ণিত রেকর্ড শেডিং এবং এসেম্বলি অ্যালগরিদম ব্যবহার করে
  • প্রতিটি ডেটা ফাইলে সারিগুলির সেটগুলির মান থাকে
  • নির্দিষ্ট কলামগুলি অনুসন্ধান করার দরকার হলে ডিস্ক I / O এর ক্ষেত্রে দক্ষ

থেকে একটি HDFS তথ্য সংগ্রহের বিন্যাস- অভ্র বনাম Parquet এবং আরো নির্বাচন


30

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

  1. পঠন / লেখার ক্রিয়াকলাপ : Parquet একটি কলাম-ভিত্তিক ফাইল ফর্ম্যাট। এটি সূচকে সমর্থন করে। এ কারণে এটি একবারে লেখার জন্য এবং পড়া-নিবিড়, জটিল বা বিশ্লেষণমূলক অনুসন্ধান, স্বল্প-বিলম্বিত ডেটা প্রশ্নের জন্য উপযুক্ত। এটি সাধারণত শেষ ব্যবহারকারী / তথ্য বিজ্ঞানীরা ব্যবহার করেন।
    এদিকে অভ্র, একটি সারি-ভিত্তিক ফাইল ফর্ম্যাট হওয়ায় রাইট-নিবিড় ক্রিয়াকলাপের জন্য সবচেয়ে বেশি ব্যবহৃত হয়। এটি সাধারণত ডেটা ইঞ্জিনিয়াররা ব্যবহার করেন। সিরিয়ালাইজেশন এবং সংক্ষেপণ ফর্ম্যাট উভয়ই সমর্থন করে যদিও তারা বিভিন্ন উপায়ে এটি করে।

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

  3. স্কিমা বিবর্তন : একটি ডিবি স্কিমা বিবর্তনের অর্থ ডিবি'র কাঠামো পরিবর্তন করা, সুতরাং এর ডেটা এবং এভাবে কোয়েরি প্রক্রিয়াজাতকরণ।
    পরকুইট এবং অভ্র উভয়ই স্কিমা বিবর্তনকে সমর্থন করে তবে ভিন্ন মাত্রায় supports
    কাঠামোয় 'অ্যাপেন্ড' অপারেশনের জন্য ভাল, যেমন কলাম যুক্ত করা, তবে কলামগুলি নামকরণের জন্য নয় যতক্ষণ না 'পঠন' সূচক দ্বারা করা হয়।
    পার্কুয়েটের তুলনায় কলামগুলি সাধারণত মুছে ফেলার জন্য এবং মুছে ফেলার জন্য অভ্র আরও ভাল suited Orতিহাসিকভাবে অভ্র পার্কুইটের তুলনায় স্কিমা বিবর্তনের সম্ভাবনার একটি আরও সমৃদ্ধ সংস্থান সরবরাহ করেছেন এবং তাদের স্কিমা বিবর্তন ক্ষমতা ঝাপসা করার প্রবণতা থাকলেও, পরকুইটের তুলনায় অভ্র তখনও সেই অঞ্চলে জ্বলজ্বল করে।


4
"সরঞ্জাম" অংশটি কিছুটা বিভ্রান্তিকর। পরকুইত দক্ষতার সাথে স্পার্ক, প্রেস্টো, হিভ ইত্যাদির মতো প্রচুর অন্যান্য ফ্রেমওয়ার্ক দ্বারা ব্যবহৃত হয়, অভ্রো স্পার্কের সাথে সুনির্দিষ্ট নয়, এটি কাফকার মতো একটি এইচডিএফএস স্টোরেজ ফর্ম্যাট এবং বার্তা প্রেরণের পরিস্থিতিতে ব্যাপকভাবে ব্যবহৃত হয় is
ri দেবরিম্বরীস

4
আকাশ আগরওয়াল: "স্পার্ক প্রসেসিংয়ের জন্য অভ্র সেরা উপযুক্ত" দিয়ে অনুচ্ছেদ 2 এ আপনি কী বোঝাতে চেয়েছেন তা ব্যাখ্যা করতে পারেন? দেবরিম্বরিস যেমন উল্লেখ করেছেন, স্পার্ক প্রক্রিয়াকরণ পরিবেশেও পরকীয়া খুব ভালভাবে সংহত হয়েছে। ও_ও?!?
সিবিহে

11

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

আমরা সিডিএইচ ডিস্ট্রো থেকে হাইভ 0.12 ব্যবহার করছি। আপনি উল্লেখ করেছেন যে আপনি হাইভ + পারকুইট নিয়ে সমস্যা নিয়ে চলেছেন, সেগুলি কী? আমরা কারও মুখোমুখি হই নি।


3

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

এমন একাধিক ফাইল ফর্ম্যাট রয়েছে যা আপনি হিভে ব্যবহার করতে পারেন। উল্লেখযোগ্য উল্লেখযোগ্যগুলি হ'ল AVRO, Parquet। আরসিফাইল এবং ওআরসি। অনলাইনে উপলভ্য কিছু ভাল নথি রয়েছে যা আপনি যদি এই ফাইল ফর্ম্যাটগুলির কার্যকারিতা এবং স্থান ব্যবহারের তুলনা করতে চান তবে আপনি উল্লেখ করতে পারেন। কিছু কার্যকর লিঙ্ক অনুসরণ করে যা আপনাকে যেতে সাহায্য করবে।

এই ব্লগ পোস্ট

ম্যাপআর থেকে এই লিঙ্কটি [তারা পারকুইট যদিও আলোচনা করে না]

ইনকুইডিয়া থেকে এই লিঙ্ক

উপরের প্রদত্ত লিঙ্কগুলি আপনাকে যেতে বাধ্য করবে। আমি এই আপনার প্রশ্নের উত্তর আশা করি।

ধন্যবাদ!


0

পারকুইট সম্পর্কে কেবল বিবরণের জন্য, আপনি এখানে উল্লেখ করতে পারেন: http://bigdata.devcodenote.com/2015/04/parquet-file-format.html

আমি খুব শিগগির অভ্র এবং 2 এর মধ্যে একটি তুলনা নিয়ে লিখতে চাই। একবার হয়ে গেলে এখানে পোস্ট করবে।


অপেক্ষা করার অপেক্ষা। বর্তমানে আমি আমার প্রকল্পের জন্য অভ্রকে বেছে নিয়েছি কারণ পোড়ামাটির সাথে মধুচক্রের সাথে সামঞ্জস্যতা সমস্যা রয়েছে :)
অভিষেক

4
@ আবশাইনেক, আপনি কি এইচআইভি এবং অভ্র সহ সামঞ্জস্যতার বিষয়ে কিছু তথ্য সরবরাহ করতে পারেন
ইবি

@ ইবি কোনও সমস্যা থাকতে পারে না, যদি থাকে তবে সেগুলি cwiki.apache.org/confluence/display/Hive/AvroSerDe
ক্রিকেটারের
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.