📦 Apache Parquet – კოლონური მონაცემთა ფორმატი¶
Apache Parquet არის ღია, კოლონური (სვეტური) მონაცემთა ფორმატი, რომელიც ოპტიმიზირებულია დიდმასშტაბიანი ანალიტიკური მონაცემების ეფექტურად შესანახად და გადასაცემად.
🔍 რატომ Parquet?¶
- კოლონური შენახვა – მონაცემები ინახება სვეტების მიხედვით და არა მწკრივებად, რაც აჩქარებს ანალიტიკურ შეკითხვებს.
- მაღალი კომპრესია – მონაცემები უკეთესად იკუმშება, რადგან ერთ სვეტში ერთი და იგივე ტიპის მონაცემებია.
- მრავალენოვანი მხარდაჭერა – შესაძლებელია გამოყენება Python (pandas, pyarrow), R, Java, Spark და სხვა ტექნოლოგიებთან.
- შეესაბამება Hadoop-ის ეკოსისტემას – თავსებადია Hive, Impala, Drill, Spark და სხვებთან.
🧱 სტრუქტურა¶
Parquet ფაილი შედგება:
- Row Group-ებისგან – მონაცემთა ნაწყვეტები, რომლებიც შეიცავენ რიგებს.
- Column Chunk-ებისგან – თითოეული სვეტის მონაცემები Row Group-ის შიგნით.
- Page-ებისგან – Column Chunk დაყოფილია გვერდებად. თითო გვერდი შეიცავს მონაცემებს ან მეტამონაცემებს.
📈 უპირატესობები¶
უპირატესობა | აღწერა |
---|---|
🚀 სწრაფი კითხვა | განსაკუთრებით ეფექტურია იმ შემთხვევაში, როცა მხოლოდ გარკვეული სვეტებია საჭირო |
💾 სივრცის ეკონომია | კარგად იკუმშება და ამცირებს საცავზე დატვირთვას |
🔁 სკალირებადობა | ადვილად ადაპტირდება დიდ მონაცემთა ნაკადებზე |
🔌 ეკოსისტემასთან ინტეგრაცია | კარგად მუშაობს Spark, Hadoop, Hive, Presto და სხვებთან |
🧪 როგორ გამოვიყენოთ Python-ში?¶
import pandas as pd
# CSV-დან Parquet ფორმატში გარდაქმნა
df = pd.read_csv("data.csv")
df.to_parquet("data.parquet")
# Parquet ფაილის წაკითხვა
df_parquet = pd.read_parquet("data.parquet")
💡 შენიშვნა: საჭიროა
pyarrow
ანfastparquet
ბიბლიოთეკა.
🆚 Parquet vs CSV¶
მახასიათებელი | Parquet | CSV |
---|---|---|
შენახვის ტიპი | კოლონური | მწკრივი |
ფაილის ზომა | მცირე | დიდი |
წაკითხვის სიჩქარე | მაღალი | დაბალი |
მეტამონაცემები | კი | არა |
🌐 გამოყენების სფეროები¶
- მონაცემთა ანალიტიკა და BI
- მონაცემთა შენახვა დიდ მოცულობაზე (Data Lake)
- ETL პროცესები
- Machine Learning მონაცემების წინასწარი დამუშავება
📚 რესურსები¶
✅ შეჯამება¶
Apache Parquet წარმოადგენს თანამედროვე, ეფექტურ და სწრაფ ფაილის ფორმატს დიდი მოცულობის მონაცემთა ანალიზისთვის. ის განსაკუთრებით გამოსადეგია მაშინ, როცა საჭიროა მხოლოდ გარკვეული სვეტების წაკითხვა ან მონაცემების კომპაქტური შენახვა.