20 पॉइंट द्वारा xguru 2020-11-23 | 2 टिप्पणियां | WhatsApp पर शेयर करें

Nemo, Amundsen, DataHub आदि क्यों ज़रूरी हैं और वे कौन-सी सुविधाएँ देते हैं, इसका सारांश

"DDP की ज़रूरत क्यों है? यह क्या काम करता है?"

→ संगठन के भीतर ज़रूरी डेटा कहाँ है, उसे तेज़ी से खोजने, वह क्या है यह समझने, और उसका उपयोग कैसे करना है यह सीखने में मदद करने वाला प्लेटफ़ॉर्म

[ डेटा खोजते समय आमतौर पर पूछे जाने वाले सवाल ]

→ "_____" डेटा कहाँ मिल सकता है? : कई बार यह भी पता नहीं होता कि किस शब्द से खोजें। click, page view जैसे शब्दों से table/column नाम खोजे जाते हैं

→ यह डेटा क्या है? : इस table में कौन-कौन से column हैं, उनका data type क्या है, और इन values का मतलब क्या है?

→ access permission किससे माँगनी चाहिए? : डेटा ownership और permission जानकारी भी metadata का हिस्सा होनी चाहिए

→ यह डेटा कैसे बनाया गया? क्या इस पर भरोसा किया जा सकता है? : इसे किसने बनाया, किस रास्ते से बना? क्या analyst ने इसे हर महीने manually तैयार किया? कंपनी के अंदर इसका कितना उपयोग होता है? इस डेटा की lineage क्या है?

→ इस डेटा का उपयोग कैसे करना चाहिए? : कौन-से column आपस में related हैं? किस table के साथ join करना चाहिए? डेटा साफ़ करने के लिए कौन-से filter लगाने चाहिए? इस table का सबसे ज़्यादा उपयोग कौन करता है? (क्योंकि उससे पूछ सकते हैं) कौन-से column सबसे अधिक उपयोग होते हैं?

→ यह डेटा कितनी बार refresh होता है? : अगर अक्सर delay होता है, तो वह कितनी बार होता है? डेटा की time range कितनी है? अगर सिर्फ़ कुछ हफ्तों का डेटा है, तो शायद वह machine learning के लिए उपयुक्त न हो।

[ डेटा खोजने, समझने और उपयोग करने के लिए ज़रूरी सुविधाएँ ]

  • डेटा को search से या और अधिक स्मार्ट तरीकों से खोजना

→ मनचाहा डेटा खोजने का बुनियादी तरीका है column नाम, table और column description, user द्वारा डाली गई description या comment जैसी metadata को ElasticSearch में search करना

→ अगर search result बहुत ज़्यादा हों, तो उनकी ranking करना ज़रूरी है। Lyft और Spotify के मामले में ranking इस आधार पर तय होती है कि table कितना अधिक उपयोग होता है। यानी query log को parse करके table usage को ElasticSearch की ranking जानकारी में डाला जाता है।

→ Facebook का Nemo इसे और आगे बढ़ाता है। search query को spaCy से natural language parsing करके, social graph search में इस्तेमाल होने वाले Unicorn के साथ kNN-आधारित scoring आदि के ज़रिए ranking तय की जाती है

→ एक और तरीका recommendation है। संगठन और टीम के भीतर सबसे अधिक access और उपयोग किए जाने वाले डेटा की सिफारिश की जाती है

  • schema, preview, statistics, lineage के ज़रिए डेटा को समझना

→ table को समझने की बुनियादी जानकारी है data schema : column नाम, data type, description

→ अगर user के पास read permission हो, तो डेटा का preview (लगभग 100 rows) दिया जा सकता है

→ पहले से calculate किए गए column-level statistics भी दिए जा सकते हैं : हर column के लिए row count, null row count, max/min/average/median/standard deviation, unique row count, और यदि date column हो तो डेटा की पूरी time range

→ data lineage देकर upstream/downstream dependency संबंध भी देखे जा सकते हैं : ETL jobs (जो Airflow से schedule होती हैं) के लिए schedule या delay जैसी जानकारी देखी जा सकती है

  • अन्य users के usage pattern से डेटा का उपयोग करना सीखना

→ table मिल जाने के बाद, users को उसे इस्तेमाल करने में कैसे मदद की जाए? सबसे आसान तरीका है उस table से जुड़े लोगों को दिखाना

→ डेटा owner access दे सकता है, और frequent users डेटा का परिचय या खास बातें बता सकते हैं : Amundsen और DataHub में table से लोगों को entity के रूप में जोड़ना संभव है

→ लेकिन केवल ऐसे experts पर निर्भर रहना bottleneck बन सकता है, इसलिए अतिरिक्त metadata जोड़ना अधिक scalable तरीका है

→ users को सबसे relevant column खोजने में मदद के लिए, हर column की usage statistics दी जा सकती है

→ साथ ही किस table के साथ join करना है यह समझने के लिए, अक्सर join होने वाले tables और join columns की सूची देना उपयोगी है। ऐसे डेटा के लिए query log parsing की ज़रूरत होती है

→ डेटा उपयोग के बारे में और विस्तृत जानकारी देने के लिए, उस table पर हाल की queries दिखाई जा सकती हैं, जिससे पता चलता है कि वास्तव में किस तरह के filters इस्तेमाल हो रहे हैं

→ data lineage भी उपयोगी है। इससे उन downstream tables के बारे में पता चलता है जो current table का उपयोग करते हैं, और उन्हें बनाने वाली queries भी दिखाई जा सकती हैं। इससे समझ आता है कि यह table दूसरे use cases में कैसे उपयोग हो रही है

→ अगर इस तरह पता चला downstream table आपके उद्देश्य से मेल खाता हो, तो उसका उपयोग करके compute/storage cost कम की जा सकती है

→ Twitter का Data Access Layer, Uber का Databook, और Netflix का Metacat lineage को support करते हैं

→ डेटा का वास्तव में उपयोग करने से पहले यह जानना भी ज़रूरी होता है कि वह कितनी बार update होता है। डेटा किस time unit (दिन/घंटा आदि) पर partitioned है, यह स्पष्ट करना मददगार होता है

→ DDP, Airflow जैसे platforms के साथ integrate होकर scheduled ETL jobs की जाँच कर सकता है और देख सकता है कि वे कितना समय लेते हैं आदि

[ अलग-अलग DDP का उच्च-स्तरीय तुलना ]

→ सभी ElasticSearch या Solr-आधारित free-text search को support करते हैं। Amundsen और Lexikon homepage पर recommendation feature देते हैं

→ सभी basic table information (schema, description) दिखाते हैं। Amundsen और Databook डेटा preview और column statistics भी देते हैं

→ ज़्यादातर platforms में data lineage built-in है। Amundsen अभी support नहीं करता, लेकिन 2020 roadmap में शामिल है

→ 5 platforms open source के रूप में उपलब्ध हैं

[ open source DDPs की तुलना ]

→ फ़रवरी 2020 में जारी किया गया

→ search, table schema, ownership, lineage features को support करता है

→ Dataset, User, Group — इन तीन entities को support करता है। Schemas/Jobs/Metrics/Dashboards जैसी entities आगे जोड़ी जानी थीं

→ Hive, Kafka, RDB metadata को support करता है (अंदरूनी तौर पर इससे अधिक support है, और आगे सार्वजनिक भी हो सकता है)

→ Expedia, TypeForm आदि ने अपनाया है, और MS, Morgan Stanley, Orange Telecom, ThoughtWorks आदि POC कर रहे हैं

→ अक्टूबर 2019 में जारी किया गया

→ search, recommendation, preview/column statistics/owner/frequent users को अच्छी तरह दिखाने वाला table detail page support करता है। lineage feature अभी नहीं है, लेकिन जोड़ा जाना तय है

→ Data Quality System के साथ integration भी आने वाला है (शायद Great Expectations - https://greatexpectations.io/)

→ इसकी community शानदार है : BigQuery/Redshift/Apache Atlas आदि के integration विकसित करके योगदान दिए गए हैं

→ 15 से अधिक data sources (Redshift, Cassandra, Hive, Snowflake और विभिन्न RDB), Tableau, Redash, Mode Analytics dashboards, Airflow आदि के साथ integration support करता है

→ documentation अच्छी है, और Docker के ज़रिए local में test किया जा सकता है

→ Asana, Instacart, iRobot, Square सहित 30 से अधिक organizations ने अपनाया है

→ जुलाई 2020 में Linux AI Foundation के नए incubation project के रूप में शामिल हुआ

→ जून 2018 में जारी किया गया

→ search, schema view, और cost तथा storage analysis metrics शामिल हैं

→ table/partition changes पर notification alert feature है। cost आदि कारणों से delete होने पर alert मिल सकता है

→ Hive, Teradata, Redshift, S3, Cassandra, RDS integration support करता है

→ schema/metadata versioning और validation features पर काम चल रहा था, ऐसा बताया गया है

→ open source होने के बावजूद documentation बिल्कुल नहीं है, इसलिए इसे अपनाने वाली कोई कंपनी नहीं है

→ अक्टूबर 2018 में जारी किया गया

→ data quality और lineage पर केंद्रित है

→ data governance, Great Expectations के माध्यम से data quality, और datasets तथा jobs के लिए catalog support करता है

→ WebUI तथा Airflow component और Java/Python clients प्रदान करता है

→ Docker से local test संभव है, लेकिन documentation बहुत अधिक नहीं है

→ जुलाई 2015 में Data Governance Initiative के हिस्से के रूप में शुरू हुआ

→ जून 2018 में 1.0 जारी हुआ और वर्तमान version 2.1 है

→ मुख्य लक्ष्य data governance है, ताकि संगठन security/compliance requirements को पूरा कर सकें

→ resources पर tagging, downstream datasets तक tag propagation, metadata access security जैसी समृद्ध सुविधाएँ हैं

→ metadata change notifications भी संभव हैं

→ free-text search, schema detail view, data lineage support करता है

→ advanced search feature में SQL जैसी syntax से search करना भी संभव है

→ HBase, Hive, Kaflka आदि metadata sources के साथ integration support करता है

→ metadata को REST API से create/modify भी किया जा सकता है

→ documentation भी अच्छी है

  • ING द्वारा Atlas और Amundsen को साथ में अपनाने का मामला दिलचस्प है https://medium.com/wbaa/…

  • पूरी तरह DDP तो नहीं, लेकिन open source Whale एक बहुत सरल DDP tool है जो data warehouse की सामग्री को Markdown में index करता है और search, editing, versioning आदि को support करता है

→ developer-oriented DDP tool के रूप में देखने लायक है। https://github.com/dataframehq/whale

  • machine learning जितना आकर्षक न सही, लेकिन data discovery, data science workflow का एक महत्वपूर्ण पहला चरण है

2 टिप्पणियां

 
toughrogrammer 2020-11-23

ओह, यह वाकई बहुत अच्छी तरह से किया गया सारांश है। लगता है मुझे Amundsen एक बार ज़रूर आज़माना चाहिए।

 
xguru 2020-11-23

Nemo - Facebook का डेटा डिस्कवरी प्लेटफ़ॉर्म https://hi.news.hada.io/topic?id=3024

देश में बहुत कम दिखने वाले DDP निर्माण के उदाहरण