Apache Arrow IPC (Feather)
Apache Arrow का इन-मेमोरी कॉलमर डेटा फॉर्मेट जो ज़ीरो-कॉपी डेटा शेयरिंग सक्षम करता है। Arrow IPC फ़ाइलें प्रोसेसेज़ और भाषाओं के बीच तेज़ डेटा ट्रांसफर के लिए अनुकूलित हैं।
MIME Type
application/vnd.apache.arrow.file
प्रकार
बाइनरी
संपीड़न
दोषरहित
लाभ
- + Zero-copy data sharing between languages and processes
- + Optimized for SIMD and vectorized computation
- + Standard memory layout for modern data tools (DuckDB, Polars, Pandas)
हानियाँ
- − Not designed for persistent storage — use Parquet for that
- − Files are larger than compressed Parquet or CSV
- − More complex than CSV for simple data exchange
.ARROW कब उपयोग करें
प्रोसेसेज़ के बीच डेटा शेयरिंग, pandas/Polars इंटरऑपरेबिलिटी, डेटा पाइपलाइन इंटरमीडिएट स्टोरेज, और ऐसे परिदृश्य जहाँ ज़ीरो-कॉपी डिसीरियलाइज़ेशन महत्वपूर्ण हो।
तकनीकी विवरण
Arrow IPC फ्लैटबफर-एन्कोडेड स्कीमा और कॉलमर RecordBatch डेटा का उपयोग करता है। ज़ीरो-कॉपी मेमोरी-मैप्ड एक्सेस सपोर्ट करता है। LZ4/ZSTD कम्प्रेशन वैकल्पिक है। IPC Stream (स्ट्रीमिंग) और IPC File (रैंडम एक्सेस) दो मोड हैं।
इतिहास
Wes McKinney (pandas के निर्माता) ने 2015 में Apache Arrow प्रोजेक्ट शुरू किया। Arrow IPC फॉर्मेट (पहले Feather) को R, Python, Julia और अन्य भाषाओं के बीच तेज़ डेटा इंटरचेंज के लिए डिज़ाइन किया गया। आज Arrow, pandas 2.0 और Polars जैसी लाइब्रेरी का बैकएंड है।