আমার কাছে প্রায় 100000 সারি ডেটা রয়েছে। আমি যদি এই ডেটাটিকে কোনও টেক্সট ফাইল ফর্ম্যাটে সঞ্চয় করি তবে আমি যদি এটি এক্সেল ফাইল ফর্ম্যাটে সংরক্ষণ করি তবে তার চেয়ে বেশি জায়গা লাগে। কেন এমন?
আমার কাছে প্রায় 100000 সারি ডেটা রয়েছে। আমি যদি এই ডেটাটিকে কোনও টেক্সট ফাইল ফর্ম্যাটে সঞ্চয় করি তবে আমি যদি এটি এক্সেল ফাইল ফর্ম্যাটে সংরক্ষণ করি তবে তার চেয়ে বেশি জায়গা লাগে। কেন এমন?
উত্তর:
xlsx
বিন্যাস আধুনিক এক্সেল দ্বারা ব্যবহৃত আসলে একটি সংকুচিত ফরম্যাট। এটি একটি জিপ সংরক্ষণাগার যা নির্দিষ্ট কাঠামোর মধ্যে পাঠ্য (এক্সএমএল) ফাইল রয়েছে।
আপনি যদি একই ধরণের জিপ সংক্ষেপণ সরঞ্জামের সাহায্যে আপনার সরল পাঠ্য ফাইলটি সংকুচিত করেন তবে আপনার অনুরূপ ফাইলের আকার অর্জন করা উচিত।
উপরন্তু, যেমন উল্লেখ ব্র্যাডলি Uffner এবং প্রায় দুই একর পরিমাণবিশিষ্ট মন্তব্য, এক্সেল deduplicate হবে অভিন্ন স্ট্রিং এবং শুধুমাত্র তাদের একজন কপি সংরক্ষণ করি। আমি এই জাতীয় পদ্ধতির সঠিক লাভ সম্পর্কে নিশ্চিত নই এবং এটি আপনার ডেটা সেটের উপর নির্ভর করবে, তবে সাধারণ জিপ সংক্ষেপণ সম্ভবত আপনাকে বেশিরভাগ পথেই পেয়ে যাবে। 1
9.1.3 শারীরিক প্যাকেজ
প্রতিটি অফিস ওপেন এক্সএমএল নথিটি জিপ সংরক্ষণাগার হিসাবে প্রয়োগ করা হয়।
1 আমার ধারণাটি হ'ল আপনার একাধিক ওয়ার্কশিট থাকা অবস্থায় এই প্রতিলিপিটি সবচেয়ে কার্যকর, যেহেতু জিপ সংক্ষেপণ একটি আর্কাইভের প্রতিটি ফাইলের জন্য স্বাধীনভাবে প্রয়োগ হয় এবং একসাথে কেবলমাত্র ডেটার সীমিত বিভাগের উপরে - সমস্ত স্ট্রিং একসাথে একটি ফাইলের মধ্যে সংরক্ষণ করে, সেখানে পরবর্তী সংকোচনের কিছুটা উপকার হওয়া উচিত। আরও ব্যবহারিকভাবে, যদি আপনার প্লেইন পাঠ্য বিন্যাসটি যাইহোক একক ফাইলে থাকে তবে সম্ভবত সামান্য পার্থক্য হবে।
.zip
)। স্পেকটি উপলভ্য, তবে এটি শুকনো পড়ার জন্য তৈরি করে।
প্রদত্ত উত্তরটি সঠিক, এটি এক্সেল আপনার ডেটা এক্সএমএল হিসাবে সংরক্ষণ করার কারণে ঘটে। এটি এর কারণেই, আপনার ডেটা দক্ষতার সাথে বাছাই করা ফাইলের আকারও হ্রাস করবে। এটি নিজে পরীক্ষা করুন - বলুন আপনার মতো ডেটা আছে
A B C
John Smith-Johnson-Williamson 12345
Sally Smith-Johnson-Williamson 67890
John Williams 34567
আপনি যদি সি অনুসারে বাছাই করেন (সমস্ত বা প্রায় সমস্ত অনন্য মানের সহ একটি কলাম) তবে বি এর অভিন্ন মান সংলগ্ন হবে না। এক্সেলের এক্সএমএলে এটির মতো দেখাচ্ছে:
<12345><John><Smith-Johnson-Williamson>
<34567><John><Williams>
<67890><Sally><Smith-Johnson-Williamson>
আপনি যদি বি অনুসারে বাছাই করেন (সাধারণ মানগুলির সাথে একটি কলাম), তবে অভিন্ন মানগুলি সংলগ্ন। এক্সেলের এক্সএমএলে এটির মতো দেখাচ্ছে:
<Smith-Johnson-Williamson><John><12345>
<Sally><67890>
<Williams><John><34567>
যেহেতু লম্বা স্ট্রিংটি অভিন্ন এবং সংলগ্ন, এক্সেল জানে যে এগুলি এগুলি একসাথে প্যাক করতে পারে, লোকে তালিকা লেখার সময় এবং উপরের লাইনের অংশটির পুনরাবৃত্তি করার জন্য, তারা একই জিনিসটি আবার লেখার চেয়ে উদ্ধৃতিগুলি টাইপ করে। আমি আমার তদন্তে একটি ভাগ করে নেওয়া স্ট্রিংয়ের অভিধানের কোনও প্রমাণ পাইনি - কেবলমাত্র পুনরাবৃত্ত ক্ষেত্রের মানের জায়গায় এই ইনডেন্টেশন।
আমার কাছে কেবল 11 টি রাজ্য জুড়ে 250,000 গ্রাহকের মেলিংয়ের তালিকা ছিল এবং প্রতিটি রেকর্ডে এমন একটি ক্ষেত্র ছিল যা তারা যে অফারটি পেয়েছিল তা চিহ্নিত করে দুটি স্ট্রিংগুলির মধ্যে একটি ছিল। আমাদের কর্মীরা কোনও কারণে লোকদের তাদের কথার মতো রাস্তার ঠিকানায় খোঁজ করতে অভ্যস্ত ছিল, সুতরাং এটি রাস্তার নম্বর কলামে, তারপরে রাস্তার নাম, শহর, ইত্যাদি অনুসারে সাজানো হয়েছিল ... যখন আমি প্রথমে অফারটি দিয়েছিলাম, তারপরে রাজ্য, জিপ কোড, শহর, রাস্তার নাম, রাস্তার নম্বর এবং শেষ পর্যন্ত ঠিকানা-লাইন -2, ফাইলের আকারটি অবিশ্বাস্যভাবে হ্রাস পেয়েছে। আমি কী চলছে তা দেখার জন্য ফাইলের মধ্যে আনপ্যাকড এক্সএমএলটি প্রতিটিভাবে সাজানো হয়েছে এবং যা আমি ছাড় করেছি তার উপরের অংশটি পরীক্ষা করেছি the যদি 5 টিরও বেশি অক্ষর বলার একাধিক ক্ষেত্র থাকে তবে মানগুলি সীমিত সেট (বলে, 'সমাধান করা', 'প্রত্যাখ্যানিত', 'অনুমোদিত', ইত্যাদি) এর মতো টিকিটের ব্যবস্থা রয়েছে,
আপনার যদি 3.14159265359 এর মতো নম্বর থাকে তবে এটি একটি টেক্সট ফাইলে সংরক্ষণ করার জন্য আপনার 13 বাইটের প্রয়োজন; যদি আপনি এই সংখ্যাটি একটি ফ্লোট হিসাবে সংরক্ষণ করেন তবে আপনার কেবল 4 বাইট দরকার।
xls
(বিআইএফএফ) এর ক্ষেত্রে হতে পারে , আমি মনে করি xlsx
না এটি এটি করে। xlsx
এক্সএমএল ফাইলগুলিতে সমস্ত ডেটা সংরক্ষণ করে, যা সংখ্যার বাইনারি এনকোডিং করে না - এগুলিতে রূপান্তরিত হয় এবং পাঠ্য স্ট্রিং হিসাবে সংরক্ষণ করা হয়। আমি এখনও স্পেসিফিকেশনের প্রাসঙ্গিক বিভাগটি সন্ধান করার চেষ্টা করছি, তবে আমার অভিজ্ঞতাবাদী পরীক্ষা (অর্থাত কোনও সংরক্ষিত নথি বের করা) দেখায় যে 1.123
XML এ আক্ষরিক অর্থে 5 অক্ষরের স্ট্রিং হিসাবে সঞ্চিত রয়েছে।
c
(সেল) দেখায় যে কোষে তাদের ডেটা জমা v
হিসাবে সংজ্ঞায়িত, ট্যাগ ECMA-376-1: 2016 § 18.3.1.96 v
(সেল ভ্যালু) যেখানে তারা বলে এই উপাদান সম্ভাব্য মান ST_Xstring সরল ধরণের (§22.9.2.19) দ্বারা সংজ্ঞায়িত করা হয়। - তারা উদাহরণ দেয় <v>28086.3541666667</v>
যেখানে ডেটা স্পষ্টভাবে স্ট্রিং হিসাবে সংরক্ষণ করা হয়।
xlsb
, যা বিশাল চাদরের জন্য অত্যন্ত প্রস্তাবিত