Parquet, Iceberg और डेटा लेकहाउस को समझना
(davidgomes.com)समझना: Parquet, Iceberg और BroadIn का डेटा लेकहाउस
-
डेटा स्टोरेज के तरीके (फ़ाइल और मेमोरी के भीतर)
- डेटा एक्सेस और स्टोरेज के लिए कई तरह के फ़ाइल फ़ॉर्मैट मौजूद हैं
- कुछ सिस्टम मुख्य रूप से बंद डेटा फ़ॉर्मैट का उपयोग करते हैं, लेकिन अधिकांश सिस्टम ओपन डेटा फ़ॉर्मैट को सपोर्ट करते हैं
- प्रमुख ओपन सोर्स फ़ाइल फ़ॉर्मैट में Apache Avro, Parquet, ORC, Arrow, Feather, Protobuf आदि शामिल हैं
- ये फ़ॉर्मैट इस बात की specification देते हैं कि डेटा को वास्तविक binary layout में कैसे व्यवस्थित किया जाए
- Parquet compression को अच्छी तरह सपोर्ट करता है, जबकि Avro खास row blocks को पढ़ने के लिए उपयुक्त है
- ये schema evolution और file splitting को सपोर्ट करते हैं, जो parallel processing के लिए ज़रूरी है
- अलग-अलग programming languages और tools में इन फ़ॉर्मैट्स के साथ काम किया जा सकता है
-
बड़े पैमाने पर डेटा प्रबंधन - Iceberg और Delta Lake
- विभिन्न tables को स्टोर करने, अलग-अलग schema को evolve करने, डेटा को कुशलता से partition करने और बाहरी tools को schema आसानी से पढ़ने देने के तरीकों की ज़रूरत होती है
- Hive, Iceberg और Delta Lake सभी schema registry या metastore को सपोर्ट करते हैं
- Iceberg और Delta Lake individual file format के रूप में Parquet का उपयोग करते हैं
- Iceberg और Delta Lake query या storage engine नहीं हैं, बल्कि open specifications हैं जो query engines को काम करने में सक्षम बनाती हैं
- ये partition evolution, schema evolution, data compression, ACID transactions, efficient query optimization, time travel जैसी क्षमताएँ उपलब्ध कराते हैं
-
डेटा लेक और डेटा लेकहाउस क्या हैं?
- डेटा लेक वह जगह है जहाँ कंपनियाँ OCR, Parquet या CSV files जैसे raw formats में बड़ी मात्रा में डेटा स्टोर करती हैं
- डेटा लेकहाउस ऐसी क्षमताओं का संयोजन है जो डेटा लेक के ऊपर SQL queries चलाना, batch jobs सेट करना, data governance कॉन्फ़िगर करना आदि संभव बनाता है
- डेटा लेकहाउस को open data warehouse के एक संस्करण के रूप में देखा जा सकता है
- Snowflake और BigQuery जैसे data warehouses जब Iceberg जैसे open data formats को सपोर्ट करने लगे हैं, तब data warehouse और data lakehouse के बीच की सीमा धुंधली होती जा रही है
GN⁺ की राय
- Iceberg और Delta Lake बड़े डेटा सेट्स को प्रबंधित करने के लिए metadata layer के रूप में महत्वपूर्ण भूमिका निभाते हैं। ये डेटा के कुशल प्रबंधन और query optimization को संभव बनाते हैं, इसलिए डेटा साइंटिस्ट्स और इंजीनियर्स के लिए उपयोगी हैं।
- डेटा लेकहाउस, डेटा लेक और डेटा वेयरहाउस दोनों के फ़ायदों को मिलाकर, डेटा प्रबंधन और विश्लेषण के लिए एक नया paradigm प्रस्तुत करता है। यह data-driven decision-making को और मज़बूत करने का अवसर देता है।
- Iceberg के बढ़ते सपोर्ट के साथ, यह उम्मीद की जाती है कि डेटा प्रबंधन और विश्लेषण सिस्टम धीरे-धीरे अधिक standardized और interoperable बनेंगे। इससे डेटा प्लेटफ़ॉर्म के चयन और उपयोग में अधिक लचीलापन और दक्षता आएगी।
2 टिप्पणियां
मैं Iceberg और Delta Lake की तुलना देख रहा था, और इसे इस तरह काफ़ी साफ़-सुथरे तरीके से व्यवस्थित किया गया है।
मेरी जो राय और नज़रिया था, उससे यह लगभग पूरी तरह मेल खाता है।
ऑनलाइन किया गया benchmark Spark का उपयोग करके था, और Tabular के Head DevRel ने लिखा है कि benchmark देखने लायक तो है, लेकिन उसका बहुत बड़ा मतलब नहीं है।
open source के रूप में चुनना हो तो iceberg ही एकमात्र विकल्प लगता है।
सारांश अच्छा है, लेकिन जिन लिंक का संदर्भ लिया गया है वे भी होते तो अच्छा रहता
Hacker News राय
Apache Iceberg और Delta Lake को अक्सर open table format कहा जाता है, लेकिन वास्तव में इनमें फर्क है.
Database की दुनिया में Delta, Iceberg और Hudi का S3 जैसी storage पर open source format में data store करना एक बड़ा बदलाव है.
कई वर्षों से S3 पर Parquet files के साथ काम किया है, लेकिन Iceberg आखिर क्या है, यह ठीक से समझ नहीं पाया था. हालांकि, उस लेख ने Iceberg को अच्छी तरह समझाया.
Apache Arrow dataframe को disk पर file के रूप में store करने का सबसे अच्छा तरीका Feather इस्तेमाल करना है, लेकिन उसे Apache Parquet format में convert करना भी संभव है.
Data lake के बारे में सुना था, लेकिन "data lakehouse" ऐसा लगता है जैसे कोई ऐसी जगह हो जहाँ अमीर data लोग गर्मियों में data boat से data fishing करने जाते हों.
GCP पर लगभग 100TB data संभाल रहा हूँ, BigQuery को query engine की तरह और simple Hive partitioning का इस्तेमाल कर रहा हूँ. इस बात से संतुष्ट हूँ कि सभी queries चल जाती हैं और लागत बहुत कम है, लेकिन latency काफ़ी ज़्यादा है (हालाँकि कंपनी के लिए यह कोई बड़ी समस्या नहीं है).
Iceberg को लेकर बहुत उत्साहित हूँ, लेकिन जब आख़िरी बार देखा था, तब सिर्फ़ Spark library ही implementation थी, और Trino का Iceberg connector Hive पर काफ़ी निर्भर था.
यह सवाल उठाया गया कि कोई भी इन सबको ज़्यादा ठोस तरीके से क्यों नहीं समझाता. Data को कैसे store किया जाता है, कैसे connect और query किया जाता है, और query speed कैसी होती है (transaction speed बनाम "analytics" speed) — यह समझाया जाना चाहिए.
ऑनलाइन देखे गए लगभग सभी benchmarks में Delta Lake format का performance Iceberg से कहीं बेहतर दिखता है.
यह माना गया कि ब्लॉग पोस्ट 100% comprehensive नहीं होगी और न ही ज़्यादातर लोगों के लिए सबसे अच्छा starting point होगी.