أرضيات أباتشي باركيه
أباتشي باركيه هو تنسيق تخزين بيانات عمودي مجاني ومفتوح المصدر ضمن بيئة أباتشي هادوب، مستوحى من نظام الاستعلام التفاعلي المخصص جوجل دريميل لتحليل البيانات المتداخلة للقراءة فقط. [ 3 ] وهو مشابه لتنسيقي RCFile و ORC ، وهما تنسيقا ملفات تخزين عمودي آخران في هادوب ، ويتوافق مع معظم أطر معالجة البيانات في هادوب . يوفر باركيه أنظمة ضغط وتشفير بيانات ذات أداء مُحسّن للتعامل مع كميات كبيرة من البيانات المعقدة.
تاريخ
بدأ مشروع Apache Parquet مفتوح المصدر كجهد مشترك بين تويتر [ 4 ] وكلاوديرا [ 5 ] باستخدام خوارزمية تمزيق وتجميع السجلات [ 6 ] كما هو موضح في دريميل من جوجل. [ 7 ] صُمم Parquet كتحسين لتنسيق التخزين العمودي Trevni الذي ابتكره دوغ كاتينغ ، مبتكر هادوب. يشير اسم "parquet" ( حرفيًا " مقصورة صغيرة " ) إلى نمط من الأرضيات المزخرفة ، وقد تم اختياره "ليُحاكي الطبقة السفلية لقاعدة البيانات بتصميمها المميز". [ 8 ] صدرت النسخة الأولى، Apache Parquet 1.0، في يوليو 2013. ومنذ 27 أبريل 2015، أصبح Apache Parquet مشروعًا رئيسيًا برعاية مؤسسة برمجيات أباتشي (ASF). [ 9 ] [ 10 ]
سمات
تُنفَّذ مكتبة Apache Parquet باستخدام خوارزمية تقطيع السجلات وتجميعها، [ 11 ] مما يُتيح التعامل مع هياكل البيانات المعقدة التي يُمكن استخدامها لتخزين البيانات. [ 12 ] تُخزَّن القيم في كل عمود في مواقع ذاكرة متجاورة، مما يُوفر المزايا التالية: [ 13 ]
- يُعد الضغط العمودي فعالاً في مساحة التخزين
- يمكن استخدام تقنيات التشفير والضغط الخاصة بنوع البيانات في كل عمود.
- لا تحتاج الاستعلامات التي تسترجع قيم أعمدة محددة إلى قراءة الصف بأكمله، مما يحسن الأداء.
تم تنفيذ Apache Parquet باستخدام إطار عمل Apache Thrift ، مما يزيد من مرونته؛ ويمكنه العمل مع عدد من لغات البرمجة مثل C++ و Java و Python و PHP وما إلى ذلك. [ 14 ]
اعتبارًا من أغسطس 2015، [ 15 ] يدعم Parquet أطر معالجة البيانات الضخمة، بما في ذلك Apache Hive و Apache Drill و Apache Impala و Apache Crunch و Apache Pig و Cascading و Presto و Apache Spark . وهو أحد تنسيقات البيانات الخارجية التي تستخدمها مكتبة pandas لمعالجة البيانات وتحليلها في لغة Python .
الضغط والترميز
في نظام Parquet، يتم الضغط عمودًا تلو الآخر، مما يتيح استخدام أنظمة ترميز مختلفة للبيانات النصية والرقمية. كما تتيح هذه الاستراتيجية إمكانية تطبيق أنظمة ترميز أحدث وأفضل فور ابتكارها.
يدعم Parquet تنسيقات ضغط متنوعة: snappy و gzip و LZO و brotli و zstd و LZ4 . [ 16 ]
ترميز القاموس
يحتوي Parquet على ترميز قاموس تلقائي يتم تفعيله ديناميكيًا للبيانات ذات عدد قليل من القيم الفريدة (أي أقل من 10⁵ ) مما يتيح ضغطًا كبيرًا ويعزز سرعة المعالجة. [ 17 ]
تعبئة البتات
عادةً ما يتم تخزين الأعداد الصحيحة باستخدام 32 أو 64 بت مخصصة لكل عدد. بالنسبة للأعداد الصحيحة الصغيرة، فإن تجميع عدة أعداد صحيحة في نفس المساحة يجعل التخزين أكثر كفاءة. [ 17 ]
ترميز طول التشغيل (RLE)
لتحسين تخزين القيم المتكررة لنفس القيمة، يتم استخدام ترميز طول التشغيل ، حيث يتم تخزين القيمة الواحدة مرة واحدة مع عدد مرات تكرارها. [ 17 ]
تُطبّق خوارزمية Parquet مزيجًا من ضغط البتات وRLE، حيث يتم تبديل الترميز بناءً على الترميز الذي يُحقق أفضل نتائج ضغط. تُناسب هذه الاستراتيجية أنواعًا مُحددة من البيانات العددية وتتكامل جيدًا مع ترميز القاموس. [ 17 ]
التخزين السحابي وبحيرات البيانات
يُستخدم تنسيق Parquet على نطاق واسع كتنسيق ملفات أساسي في بنى بحيرات البيانات الحديثة القائمة على الحوسبة السحابية . وتُخزّن أنظمة التخزين السحابية، مثل Amazon S3 وAzure Data Lake Storage وGoogle Cloud Storage، البيانات عادةً بتنسيق Parquet نظرًا لكفاءة تمثيلها العمودي وقدرات استرجاعها. [ 18 ] وتُضيف أُطر عمل بحيرات البيانات، بما في ذلك Apache Iceberg [ 19 ] و Delta Lake [ 20 ] وApache Hudi [ 21 ] ، طبقة بيانات وصفية إضافية فوق ملفات Parquet لدعم ميزات مثل تطوير المخطط، والاستعلامات الزمنية، والمعاملات المتوافقة مع خصائص ACID . في هذه البنى، تعمل ملفات Parquet كطبقة تخزين غير قابلة للتغيير، بينما تُدير تنسيقات الجداول إصدارات البيانات وسلامة المعاملات.
مقارنة
يُشابه Apache Parquet تنسيقات ملفات RCFile و Optimized Row Columnar (ORC) ، إذ تندرج جميعها ضمن فئة تخزين البيانات العمودية في بيئة Hadoop. تتميز هذه التنسيقات بضغط وتشفير أفضل، مع أداء قراءة مُحسّن، ولكن على حساب بطء الكتابة. إضافةً إلى هذه الميزات، يدعم Apache Parquet تطورًا محدودًا للمخطط ، [ 22 ] أي أنه يُمكن تعديل المخطط وفقًا للتغييرات في البيانات. كما يُتيح إمكانية إضافة أعمدة جديدة ودمج المخططات غير المتعارضة. [ 22 ]
صُممت مكتبة Apache Arrow لتكون مكملاً في الذاكرة لتنسيقات البيانات العمودية على القرص مثل Parquet وORC. وتتضمن مشاريع Arrow وParquet مكتبات تسمح بالقراءة والكتابة بين التنسيقين. [ 23 ]
التطبيقات
تشمل التطبيقات المعروفة لتقنية باركيه ما يلي:
- أباتشي باركيه (جافا)
- أباتشي آرو باركيه (سي++)
- أرضيات باركيه أباتشي آرو (صدأ)
- أباتشي آرو باركيه (جو)
- أرضيات أباتشي آرو باركيه (R)
- جورجي كارليتاو/باركيه 2 (الصدأ)
- cuDF Parquet (C++)
- فاستباركيه (بايثون)
- أباتشي إمبالا باركيه (سي++)
- DuckDB Parquet (C++)
- أرضيات باركيه بولارز (صدأ)
- فيلوكس باركيه (سي++)
- parquet-go (ex-segmentio) (Go)
- باركيه-جو (زيتونغسيس) (جو)
- هايباركيه (JS)
- الخشب الصلب (جافا)
انظر أيضاً
مراجع
- ↑ "تنسيق أباتشي باركيه - الإصدارات" . Apache.org . تم الاطلاع عليه بتاريخ 18 أبريل 2026 .
- ↑ "شفرة مصدر Parquet-MR" . GitHub . مؤرشفة من الأصل في 11 يونيو 2018. تم الاطلاع عليها في 2 يوليو 2019 .
- ↑ ميلنيك، سيرجي؛ غوباريف، أندريه؛ لونغ، جينغ جينغ؛ رومر، جيفري؛ شيفاكومار، شيفا؛ تولتون، مات؛ فاسيلاكيس، ثيو (2010). "دريمل: تحليل تفاعلي لمجموعات البيانات على نطاق الويب" . وقائع مؤسسة VLDB . 3 ( 1-2 ): 330-339 . doi : 10.14778/1920841.1920886 . ISSN 2150-8097 .
- ↑ "تاريخ الإصدار" . مؤرشف من الأصل بتاريخ 20-10-2016 . تم الاطلاع عليه بتاريخ 12-09-2016 .
- ↑ "تقديم Parquet: تخزين عمودي فعال لـ Apache Hadoop - مدونة Cloudera الهندسية" . 13 مارس 2013. مؤرشف من الأصل في 4 مايو 2013. تم الاطلاع عليه في 22 أكتوبر 2018 .
- ↑ "دريمل: تحليل تفاعلي لمجموعات البيانات على نطاق الويب" . research.google . تم الاطلاع عليه بتاريخ 2025-11-05 .
- ↑ "الدافع" . أباتشي باركيه . تم الاسترجاع في 2025-11-05 .
- ↑ "الفصل الأول: ميلاد باركيه - مدونة الحبر المتعاطف" . 24 يناير 2024. مؤرشف من الأصل بتاريخ 18 مارس 2025. تم الاطلاع عليه بتاريخ 23 يوليو 2025 .
- ↑ يغولالب، سردار (28 أبريل 2015). "أباتشي باركيه يمهد الطريق لتخزين بيانات هادوب بشكل أفضل" . إنفوورلد . مؤرشف من الأصل في 31 مايو 2017. تم الاطلاع عليه في 21 مايو 2017 .
- ↑ «مؤسسة برمجيات أباتشي تعلن عن أباتشي™ باركيه™ كمشروع رئيسي : مدونة مؤسسة برمجيات أباتشي» . 27 أبريل 2015. مؤرشف من الأصل في 20 أغسطس 2017. تم الاطلاع عليه في 21 مايو 2017 .
- ↑ "خوارزميات التخطيط والتجميع من ورقة دريميل المستوحاة من جوجل" . جيت هاب . مؤرشف من الأصل في 26 أكتوبر 2020. تم الاطلاع عليه في 13 نوفمبر 2017 .
- ↑ "وثائق أباتشي باركيه" . مؤرشفة من الأصل بتاريخ 2016-09-05 . تم الاطلاع عليها بتاريخ 2016-09-12 .
- ↑ "Apache Parquet Cloudera" . مؤرشف من الأصل بتاريخ 19-09-2016 . تم الاطلاع عليه بتاريخ 12-09-2016 .
- ↑ "أباتشي ثريفت" . مؤرشف من الأصل بتاريخ 12 مارس 2021. تم الاطلاع عليه بتاريخ 14 سبتمبر 2016 .
- ↑ "الأطر المدعومة" . مؤرشف من الأصل بتاريخ 2015-02-02 . تم الاطلاع عليه بتاريخ 2016-09-12 .
- ↑ "ضغط ملفات Parquet" . وثائق Apache Parquet . مؤسسة برمجيات Apache. 11 مارس 2024. تم الاطلاع عليه في 2 ديسمبر 2024 .
- ١ ٢ ٣ ٤ " الإعلان عن Parquet 1.0: التخزين العمودي لـ Hadoop | مدونات تويتر" . blog.twitter.com . مؤرشف من الأصل بتاريخ ٢٠ أكتوبر ٢٠١٦. تم الاطلاع عليه بتاريخ ١٤ سبتمبر ٢٠١٦ .
- ↑ "أرضيات أباتشي باركيه" . أرضيات أباتشي باركيه . تم الاطلاع عليه بتاريخ 13 مارس 2025 .
- ↑ "جبل جليد أباتشي" . تم الاطلاع عليه بتاريخ 13-03-2025 .
- ↑ "بحيرة دلتا" . تم الاطلاع عليه بتاريخ 13-03-2025 .
- ^ "اباتشي هودي" . تم الاسترجاع 2025-03-13 .
- ١ ٢ "كل شيء عن باركيه الجزء ٠٤ - تطور المخطط في باركيه". ميديوم. https://medium.com/data-engineering-with-dremio/all-about-parquet-part-04-schema-evolution-in-parquet-c2c2b1aa6141
- ↑ "قراءة وكتابة تنسيق أباتشي باركيه". وثائق أباتشي آرو. https://arrow.apache.org/docs/python/parquet.html
روابط خارجية
- برنامج 2015
- مشاريع مؤسسة برمجيات أباتشي
- الحوسبة السحابية
- برامج نظام مجانية
- أباتشي هادوب
- برنامج يستخدم ترخيص أباتشي
- التنسيقات المفتوحة
