6 पॉइंट द्वारा GN⁺ 2023-12-31 | 2 टिप्पणियां | WhatsApp पर शेयर करें

समझना: 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 टिप्पणियां

 
happing94 2024-01-03

मैं Iceberg और Delta Lake की तुलना देख रहा था, और इसे इस तरह काफ़ी साफ़-सुथरे तरीके से व्यवस्थित किया गया है।
मेरी जो राय और नज़रिया था, उससे यह लगभग पूरी तरह मेल खाता है।
ऑनलाइन किया गया benchmark Spark का उपयोग करके था, और Tabular के Head DevRel ने लिखा है कि benchmark देखने लायक तो है, लेकिन उसका बहुत बड़ा मतलब नहीं है।
open source के रूप में चुनना हो तो iceberg ही एकमात्र विकल्प लगता है।
सारांश अच्छा है, लेकिन जिन लिंक का संदर्भ लिया गया है वे भी होते तो अच्छा रहता

 
GN⁺ 2023-12-31
Hacker News राय
  • Apache Iceberg और Delta Lake को अक्सर open table format कहा जाता है, लेकिन वास्तव में इनमें फर्क है.

    • Apache Iceberg table format specification इतनी स्पष्ट है कि database system से परिचित लोगों के लिए Iceberg table बनाना और query करना बहुत कठिन नहीं होना चाहिए.
    • दूसरी ओर, Delta Lake specification को पूरी तरह implement करने या लगातार update रखते रहने के लिए कितनी मेहनत चाहिए, यह समझना मुश्किल है.
    • Delta Lake specification ऐसा लगता है मानो Databricks ने Hadoop से निराश Fortune 1000 कंपनियों के लिए lakehouse बनाने के अपने internal implementation decisions को reverse-engineer करके लिखा हो.
    • यह भरोसे के साथ कहना मुश्किल है कि Delta Lake सच में एक खुले ecosystem के रूप में कितना मूल्य रखता है.
  • Database की दुनिया में Delta, Iceberg और Hudi का S3 जैसी storage पर open source format में data store करना एक बड़ा बदलाव है.

    • इसका मतलब है कि storage और processing का बड़ा हिस्सा standardize हो जाता है, जिससे databases के बीच migration आसान होता है, और ज़्यादातर tools एक ही file set पर transactionally stable तरीके से काम कर सकते हैं.
    • उदाहरण के लिए, जब Snowflake files में लिख रहा हो, तब एक data scientist Jupyter notebook में real time में data query कर सकता है, और ClickHouse उसी data पर user-facing analytics दे सकता है.
    • अगर कोई business Snowflake से Databricks पर switch करने का फैसला करे, तो वह कोई बहुत बड़ी समस्या नहीं रह जाती.
    • अभी S3 पर इन formats को query करने की गति native ingestion जितनी तेज़ नहीं है, लेकिन market pressure के कारण सभी database vendors performance optimize करेंगे.
    • यह open source और openness के लिए बड़ी जीत है, और businesses को अपना data खुले और portable format में रखने की सुविधा देता है.
    • Lakehouse का असर भी इसी तरह है. बहुत-सी कंपनियों के पास data lake और data warehouse दोनों होते हैं, और उन्हें दोनों systems के बीच data copy करना पड़ता है. उसी data set को query कर पाना और सिर्फ़ एक system manage करना उतना ही महत्वपूर्ण है.
  • कई वर्षों से S3 पर Parquet files के साथ काम किया है, लेकिन Iceberg आखिर क्या है, यह ठीक से समझ नहीं पाया था. हालांकि, उस लेख ने Iceberg को अच्छी तरह समझाया.

    • Iceberg मूल data set के लिए एक database metadata format है, जो schema, partitioning आदि का वर्णन करता है.
    • पारंपरिक DBMS में schema, query engine और storage format एक ही package में मिलते हैं.
    • लेकिन big data में database components को शुरू से बनाया जा सकता है, और mix-and-match भी किया जा सकता है. Metadata format के रूप में Iceberg, query engine के रूप में DuckDB, storage format के रूप में Parquet, और storage medium के रूप में S3 इस्तेमाल किए जा सकते हैं.
  • Apache Arrow dataframe को disk पर file के रूप में store करने का सबसे अच्छा तरीका Feather इस्तेमाल करना है, लेकिन उसे Apache Parquet format में convert करना भी संभव है.

    • अगर कोई अपना non-JVM lakehouse बनाना चाहता है, तो metadata के लिए Iceberg, data के लिए Parquet, DuckDB से query करने के लिए Arrow table, और data process करने के लिए Arrow->Pandas या Polars का उपयोग कर सकता है.
    • यदि Feather को इसमें मिलाया जाए, तो मौजूदा Python lakehouse stack काम नहीं करता.
  • Data lake के बारे में सुना था, लेकिन "data lakehouse" ऐसा लगता है जैसे कोई ऐसी जगह हो जहाँ अमीर data लोग गर्मियों में data boat से data fishing करने जाते हों.

  • GCP पर लगभग 100TB data संभाल रहा हूँ, BigQuery को query engine की तरह और simple Hive partitioning का इस्तेमाल कर रहा हूँ. इस बात से संतुष्ट हूँ कि सभी queries चल जाती हैं और लागत बहुत कम है, लेकिन latency काफ़ी ज़्यादा है (हालाँकि कंपनी के लिए यह कोई बड़ी समस्या नहीं है).

    • जानना चाहता हूँ कि क्या Iceberg लागू करने से इसमें सुधार हो सकता है. क्या किसी ने Iceberg का उपयोग करके ऐसा अनुभव किया है?
  • Iceberg को लेकर बहुत उत्साहित हूँ, लेकिन जब आख़िरी बार देखा था, तब सिर्फ़ Spark library ही implementation थी, और Trino का Iceberg connector Hive पर काफ़ी निर्भर था.

    • पूरा industry MapReduce, Hive और Spark जैसी legacy technologies से अलग होने में संघर्ष कर रहा है.
    • Iceberg पर फिर से नज़र डालने की योजना है, और उम्मीद है कि यह क्षेत्र आगे बढ़ेगा. आज हमारे पास ऐसे tools और computing power हैं जिनसे legacy technologies के बिना भी data process किया जा सकता है, और हर data big data नहीं होता.
    • नतीजतन, "data engineering" अब धीरे-धीरे सामान्य backend development जैसा होता जा रहा है, और सामान्य development practices इस पर लागू हो रही हैं.
    • उम्मीद है कि एक pure Python Iceberg library बहुत जल्द आएगी.
  • यह सवाल उठाया गया कि कोई भी इन सबको ज़्यादा ठोस तरीके से क्यों नहीं समझाता. Data को कैसे store किया जाता है, कैसे connect और query किया जाता है, और query speed कैसी होती है (transaction speed बनाम "analytics" speed) — यह समझाया जाना चाहिए.

  • ऑनलाइन देखे गए लगभग सभी benchmarks में Delta Lake format का performance Iceberg से कहीं बेहतर दिखता है.

    • सवाल यह है कि क्या यह specification में कोई बुनियादी बात है, या Iceberg के पास इस gap को कम करने की संभावना है.
  • यह माना गया कि ब्लॉग पोस्ट 100% comprehensive नहीं होगी और न ही ज़्यादातर लोगों के लिए सबसे अच्छा starting point होगी.

    • लेकिन यह रवैया पसंद आया कि कुछ नया सीखने का सबसे अच्छा तरीका है उसे दूसरों को फिर से समझाना, और इसे अपने website notes पर भी लागू करना शुरू कर दिया है.