تخطي إلى المحتوى

لا يمكن تحويل هذا النوع من الملفات في المتصفح.

┐─ تحليل الملف ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
المطور : مؤسسة Apache للبرمجيات
الفئة : بيانات
نوع MIME : application/vnd.apache.parquet
بايتات : 50415231
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

ما هو ملف Parquet؟

Apache Parquet هو صيغة تخزين عمودية مفتوحة المصدر طوّرتها Twitter وCloudera مجتمعتَين وتبرعتا بها لـ Apache عام 2013. على خلاف الصيغ القائمة على الصفوف (CSV، Avro)، يُخزِّن Parquet بيانات العمود الواحد معاً بدلاً من بيانات الصف الواحد معاً.

هذا التصميم يُحقق ميزتين رئيسيتين: أولاً، يُمكِّن من ضغط استثنائي لأن بيانات العمود الواحد متشابهة النوع ومتقاربة القيم. ثانياً، عند استعلام يقرأ 3 أعمدة فقط من جدول بـ 100 عمود، يقرأ Parquet تلك الأعمدة الثلاثة فقط دون لمس الباقي — فتبادل قرصي هائل.

أصبح Parquet المعيار الصناعي للتحليلات في بيئات البيانات الضخمة.

كيفية فتح ملفات Parquet

  • DuckDB (ويندوز، ماك، لينكس) — SELECT * FROM 'file.parquet' مجاني وسريع جداً
  • Python pandaspd.read_parquet('file.parquet') (يتطلب pyarrow أو fastparquet)
  • Apache Spark — للمعالجة الموزعة على مليارات السجلات
  • AWS Athena / Google BigQuery — استعلامات SQL مباشرة على Parquet في S3/GCS
  • ParquetViewer (ويندوز) — عارض رسومي مجاني
  • VS Code مع إضافة Parquet Visualizer — عرض داخل المحرر

المواصفات التقنية

الخاصيةالقيمة
البايتات السحرية50 41 52 31 (PAR1) في البداية والنهاية
نوع التخزينعمودي (Column-oriented)
الضغطSnappy (افتراضي)، Gzip، LZ4، Zstd، Brotli
الترميزDictionary، RLE، Delta، PLAIN
المخططوصف ذاتي (مضمن في الملف)
أنواع البياناتجميع الأنواع الأساسية + أنواع منطقية معقدة
الأعمدة المتداخلة✅ Dremel encoding

الاستخدامات الشائعة

  • بحيرات البيانات (Data Lakes): التنسيق القياسي لتخزين بيانات التحليل في S3 وAzure Data Lake وGCS
  • خطوط أنابيب ETL والتحويل: تمرير البيانات المعالجة بين مراحل خط الأنابيب بكفاءة
  • مخازن الميزات للتعلم الآلي: تخزين ميزات التدريب بضغط عالٍ مع استعلام سريع
  • ذكاء الأعمال والتقارير: الاستعلامات التحليلية (GROUP BY، AVG، SUM) أسرع بمراحل من CSV
  • Apache Iceberg / Delta Lake: صيغة التخزين الافتراضية لجداول مستودعات البيانات الحديثة

Parquet مقابل CSV مقابل Avro

الميزةParquetCSVAvro
حجم الملف✅ صغير جداًكبيرمتوسط
الاستعلامات التحليلية✅ ممتازةبطيءمتوسط
قابل للقراءة البشرية
تطور المخططجيد✅ ممتاز
البث في Kafkaغير مناسبيُستخدم
سهولة التبادلمتوسطةمتوسطة

قراءة Parquet بـ Python

import pandas as pd
import pyarrow.parquet as pq

# قراءة كاملة
df = pd.read_parquet("data.parquet")

# قراءة أعمدة محددة فقط (أسرع بكثير)
df = pd.read_parquet("data.parquet", columns=["name", "sales"])

# كتابة ملف Parquet مضغوط
df.to_parquet("output.parquet", compression="snappy", index=False)

# الاستعلام مباشرة بـ DuckDB
import duckdb
result = duckdb.sql("SELECT AVG(sales) FROM 'data.parquet' WHERE year = 2024").df()