স্নেপ্পির সাথে পরকীট বনাম ওআরসি বনাম ওআরসি


88

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

আমি অনেকগুলি ডকুমেন্ট পড়েছি যা ওপিসির তুলনায় পার্কিটকে সময় / স্থান জটিলতায় আরও ভাল হতে বলেছে কিন্তু আমার পরীক্ষাগুলি আমি যে নথিগুলি দিয়েছিলাম তার বিপরীতে।

আমার ডেটা সম্পর্কিত কিছু বিবরণ অনুসরণ করে।

Table A- Text File Format- 2.5GB

Table B - ORC - 652MB

Table C - ORC with Snappy - 802MB

Table D - Parquet - 1.9 GB

আমার টেবিলের সংকোচনের বিষয়ে পরকীয়াটি সবচেয়ে খারাপ ছিল।

উপরের টেবিলগুলির সাথে আমার পরীক্ষাগুলি নিম্নলিখিত ফলাফল পেয়েছে।

সারি গণনা অপারেশন

Text Format Cumulative CPU - 123.33 sec

Parquet Format Cumulative CPU - 204.92 sec

ORC Format Cumulative CPU - 119.99 sec 

ORC with SNAPPY Cumulative CPU - 107.05 sec

একটি কলাম অপারেশনের যোগফল

Text Format Cumulative CPU - 127.85 sec   

Parquet Format Cumulative CPU - 255.2 sec   

ORC Format Cumulative CPU - 120.48 sec   

ORC with SNAPPY Cumulative CPU - 98.27 sec

কলাম ক্রিয়াকলাপের গড়

Text Format Cumulative CPU - 128.79 sec

Parquet Format Cumulative CPU - 211.73 sec    

ORC Format Cumulative CPU - 165.5 sec   

ORC with SNAPPY Cumulative CPU - 135.45 sec 

যেখানে ক্লজ ব্যবহার করে প্রদত্ত ব্যাপ্তি থেকে 4 টি কলাম নির্বাচন করা

Text Format Cumulative CPU -  72.48 sec 

Parquet Format Cumulative CPU - 136.4 sec       

ORC Format Cumulative CPU - 96.63 sec 

ORC with SNAPPY Cumulative CPU - 82.05 sec 

তার মানে কি ওআরসি পার্কুয়েট তত দ্রুত? বা এমন কিছু আছে যা আমি ক্যোয়ারীর প্রতিক্রিয়া সময় এবং সংক্ষেপণের অনুপাতের সাথে এটি আরও ভালভাবে কাজ করতে পারি

ধন্যবাদ!


4
আপনি কি সেই জেনেরিক অ্যালগরিদমটি ভাগ করে নিতে পারেন experiment যদিও একই তথ্য ব্যবহার করা প্রয়োজন। তবে আলাদা আলাদা ডেটাসেটের সাথে একই ফলাফল অর্জনের জন্য অন্য সমস্ত কিছু ভাগ করে নেওয়া আপনাকে আরও ভাল উত্তর দিতে বা আপনার কাছে খুব ভাল পয়েন্ট রয়েছে তা প্রমাণ করার জন্য এবং বিশ্বকে চিরতরে পরিবর্তন করার জন্য খুব দরকারী।
Mestre সান

orc vs parquet ব্যবহার করে আপনার কি স্পার্ক বনাম তেজ ফলাফল আছে? আমি যা দেখেছি তা থেকে মনে হয় তেজ তেমন দ্রুত (3 গুণ দ্রুত) যখন আরসি ফর্ম্যাটটি ব্যবহার করে।
ডেভিড এইচ

আপনার সুন্দর বেঞ্চমার্কিং ওভারভিউর জন্য + 1। যাইহোক, পর্দার আড়ালে কিছু প্রযুক্তিগত দিকগুলি পরিবর্তিত হয়েছে (উদাহরণস্বরূপ @ জোনাথনচ্যাপের উত্তরে আলোচনা করা হয়েছে) যেহেতু আপনি কি একটি আপডেট সংস্করণ সরবরাহ করতে পারবেন?
মার্কাস

উত্তর:


52

আমি বলব, এই উভয় বিন্যাসের নিজস্ব সুবিধা রয়েছে।

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

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

Parquet ডিফল্ট সংক্ষেপণ SNAPPY। টেবিল A ​​- B - C এবং D একই ডেটাসেটটি ধারণ করছে? যদি হ্যাঁ দেখে মনে হয় এটির মতো কিছু ছায়াময় রয়েছে, যখন এটি কেবল 1.9 গিগাবাইটে সংকুচিত হয়


4
টেবিল এ - টেক্সট ফাইল ফর্ম্যাট - কোনও সংকোচনের নয় ......... টেবিল বি - জেড এলআইবি সংকোচনের সাথে ওআরসি ফাইল ফর্ম্যাট ......... টেবিল সি - স্মিপি সহ ওআরসি ....... সারণী ডি - স্নেপ্পির সাথে পরকীয়া ..... সেখানে ফাইল ফর্ম্যাটগুলি কীভাবে সম্পাদন করে তা পরীক্ষা করার জন্য আমি অন্য টেবিলে ~ 150 কলাম এবং 160 গিগাবাইট আকারের সাথে কাজ করেছি। পারকুইটটি ১ 160০ গিগাবাইটের ডেটা সংরক্ষণ করতে ৩৫ জিবি সময় নিয়েছে এবং ওআরসি চটজলদি 39 গিগাবাইট নিয়েছে ...... প্রশ্নে পোস্ট করা পরীক্ষার তুলনায় পার্কেটের পক্ষে কমপ্রেশনটি আরও ভাল দেখায় তবে পারফরম্যান্স আবার একই ধরণের হয়ে থাকে ... ওআরসি এমনকি এখানেও জ্বলজ্বল করে ORC + SNAPPY সংমিশ্রণের চেয়ে ভাল পারফরম্যান্স।
রাহুল

4
আমার ব্যবহারের ক্ষেত্রে ডেটা কাঠামো কোনও বাসা ছাড়াই চাটুকার ছিল। আমি পরকুইট বনাম ওআরসি সম্পর্কে আপনার সূচক মন্তব্যে সম্মত এবং এটি আসলে কোনও পার্থক্য করে। উভয়ের পারফরম্যান্স তুলনা থেকে ভাগ করার কোনও ফলাফল কি আপনার আছে? এটি আমার বিবেককে শান্ত করতে সহায়তা করতে পারে যে আমি ফর্ম্যাটগুলি সঠিকভাবে প্রয়োগ করছি। :)
রাহুল

আমি কখনই পারকুয়েটে আমার ডেটাসেট পরীক্ষা করিনি কারণ সূচকটি প্রয়োজনীয় প্রয়োজনীয়তা এবং আমাদের কোনও নেস্টেড তথ্য ছাড়াই একটি সমতল ডেটা কাঠামো রয়েছে। আমি যেটা বুঝতে পেরেছি তা হল, আপনি যেখানে আপনার ফাইলগুলি সঞ্চয় করেন তার উপর নির্ভর করে সেরা ফলাফলগুলি পেতে আপনার আলাদা স্ট্রাইপ এবং ফাইলের আকার প্রয়োজন। আপনি যখন নিজের ফাইলগুলি স্থায়ীভাবে এইচডিএফএসে সঞ্চয় করবেন তখন বড় ফাইল এবং স্ট্রাইপ থাকা ভাল। "সেট ম্যাপ্রেড.ম্যাক্স.স্প্লিট.সাইজ = 4096000000" ফাইলের আকারকে প্রভাবিত করতে আমি ব্যবহৃত প্যারামিটার এবং স্ট্রাইপের আকারটিকে তার ডিফল্ট মান হিসাবে রেখে দিয়েছিলাম। এই সেটিংটির সাহায্যে এটি আমাকে প্রায় 94% ক্যোয়ারী এবং সংক্ষেপণ উত্সাহ দিয়েছে।
ফানথোমাস

আপনি যদি অ্যামাজন এস 3 এ আপনার ফাইলগুলি একটি কোল্ড স্টোরেজ হিসাবে সঞ্চয় করতে চান তবে একটি উপায় ছোট ফাইল এবং স্ট্রাইপের আকার আমাকে আরও ভাল ফলাফল দিয়েছে। আমি একক স্ট্রাইপযুক্ত 40-60MB আকারের ফাইলগুলি ব্যবহার করি।
ফানথোমাস

44

আপনি এটি দেখছেন কারণ:

  • মধুচক্রের একটি ভেক্টরাইজড ওআরসি রিডার রয়েছে তবে কোনও ভেক্টরাইজড পারকুইট রিডার নেই।

  • স্পার্কের একটি ভেক্টরাইজ পারকুইট রিডার রয়েছে এবং কোনও ভেক্টরাইজড ওআরসি রিডার নেই।

  • স্পার্ক parquet সঙ্গে সেরা সঞ্চালন, মুরগি ORC সঙ্গে সেরা সঞ্চালন করে।

স্পার্কের সাথে ওআরসি এবং পারকুইট চালানোর সময় আমি একই রকম পার্থক্য দেখেছি।

ভেক্টরাইজেশন এর অর্থ হল যে সারিগুলি ব্যাচগুলিতে ডিকোড হয় নাটকীয়ভাবে মেমরির স্থানীয়ত্ব এবং ক্যাশে ব্যবহারের উন্নতি করে।

(হাইভ ২.০ এবং স্পার্ক ২.১ হিসাবে সঠিক)


18
2.3.0 পর্যন্ত স্ফুলিঙ্গ নেই : একটি ভেক্টরকৃত ওআরসি পাঠক আছে issues.apache.org/jira/browse/SPARK-16060
Steen


স্পার্ক ২.৩, স্পার্ক একটি ভেক্টরাইজড ওআরসি রিডারকে সমর্থন করে spark.apache.org/docs/latest/sql-data-s ذرائع-orc.html
অনুরাগ শর্মা

10

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

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

আমরা একটি বৃহত্তর সমতল ফাইলের সাথে কিছু বেঞ্চমার্কিং করেছি, এটি স্পার্ক ডেটাফ্রেমে রূপান্তরিত করেছি এবং এটি এস 3-তে parquet এবং ORC উভয় ফর্ম্যাটে সংরক্ষণ করেছি এবং ** রেডশিফ্ট-স্পেকট্রাম ** দিয়ে অনুসন্ধান করেছি।

Size of the file in parquet: ~7.5 GB and took 7 minutes to write
Size of the file in ORC: ~7.1. GB and took 6 minutes to write
Query seems faster in ORC files.

শীঘ্রই আমরা নেস্টেড ডেটাগুলির জন্য কিছু বেঞ্চমার্কিং করব এবং ফলাফলগুলি এখানে আপডেট করব।


6

আমরা বিভিন্ন ব্যবহারের ক্ষেত্রে বিভিন্ন ফাইল ফর্ম্যাটগুলির (অভ্র, জেএসএন, ওআরসি, এবং পরকুইট) তুলনা করে কিছু বেঞ্চমার্ক করেছি।

https://www.slideshare.net/oom65/file-format-benchmark-avro-json-orc-parquet

ডেটা সমস্ত প্রকাশ্যে উপলভ্য এবং বেঞ্চমার্ক কোড এখানে সমস্ত ওপেন সোর্স:

https://github.com/apache/orc/tree/branch-1.4/java/bench


4
এটি সত্যিই দরকারী, তবে একটি দাবি অস্বীকার করা উচিত যা @ ওয়ান হর্টন ওয়ার্কসের পক্ষে কাজ করে যা মূলত ORC ফাইল ফর্ম্যাটটি তৈরি করেছে
ড্যানিয়েল কেটস

4
ধন্যবাদ! তবে দ্বিতীয় লিঙ্কটি নষ্ট হয়ে গেছে। আপনি দয়া করে আপনার উত্তর থেকে এটি ঠিক করতে বা মুছে ফেলতে পারেন?
ড্যানিলো গোমেস

3

তাদের উভয় সুবিধা আছে। আমরা একসাথে কর্মক্ষেত্রে Parquet ব্যবহার মধুচক্র এবং Impala সঙ্গে, কিন্তু Parquet উপর ওআরসি কয়েক সুবিধার বাতলান তৈরি করতে চেয়েছিলাম: সময় দীর্ঘ নির্বাহ প্রশ্নের, যখন মধুচক্র ওআরসি টেবিল জিজ্ঞাস্য জিসি কম ঘন ঘন 10 বার সম্পর্কে বলা হয় । অনেক প্রকল্পের জন্য কিছুই হতে পারে না, তবে অন্যদের জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।

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

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.