# डेटासह काम करणे: नॉन-रिलेशनल डेटा |![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/06-NoSQL.png)| |:---:| |नॉन-रिलेशनल डेटासह काम करणे - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | ## [पूर्व-व्याख्यान प्रश्नमंजूषा](https://ff-quizzes.netlify.app/en/ds/quiz/10) डेटा केवळ रिलेशनल डेटाबेसपुरता मर्यादित नाही. या धड्यात नॉन-रिलेशनल डेटावर लक्ष केंद्रित केले जाईल आणि स्प्रेडशीट्स व NoSQL च्या मूलभूत गोष्टींचा समावेश असेल. ## स्प्रेडशीट्स स्प्रेडशीट्स डेटा साठवण्यासाठी आणि एक्सप्लोर करण्यासाठी लोकप्रिय पद्धत आहे कारण त्यासाठी सेटअप आणि सुरुवात करण्यासाठी कमी काम आवश्यक असते. या धड्यात तुम्ही स्प्रेडशीटच्या मूलभूत घटकांबद्दल, तसेच फॉर्म्युला आणि फंक्शन्सबद्दल शिकाल. उदाहरणे Microsoft Excel सह स्पष्ट केली जातील, परंतु इतर स्प्रेडशीट सॉफ्टवेअरच्या तुलनेत बहुतेक भाग आणि विषय समान नाव आणि पायऱ्या असतील. ![Microsoft Excel वर्कबुकचे दोन वर्कशीट्ससह रिक्त दृश्य](../../../../2-Working-With-Data/06-non-relational/images/parts-of-spreadsheet.png) स्प्रेडशीट हा एक फाइल प्रकार आहे आणि तो संगणक, डिव्हाइस किंवा क्लाउड आधारित फाइल सिस्टममध्ये उपलब्ध असेल. सॉफ्टवेअर ब्राउझर आधारित असू शकते किंवा संगणकावर स्थापित करावे लागणारे अॅप्लिकेशन किंवा अॅप म्हणून डाउनलोड करावे लागेल. Excel मध्ये या फाइल्सला **वर्कबुक्स** म्हणून परिभाषित केले जाते आणि या धड्याच्या उर्वरित भागात ही संज्ञा वापरली जाईल. वर्कबुकमध्ये एक किंवा अधिक **वर्कशीट्स** असतात, जिथे प्रत्येक वर्कशीट टॅबद्वारे लेबल केलेले असते. वर्कशीटमध्ये **सेल्स** नावाचे आयत असतात, ज्यामध्ये वास्तविक डेटा असतो. सेल हा रो आणि कॉलमच्या छेदनबिंदूवर असतो, जिथे कॉलम्स वर्णमाला अक्षरांनी लेबल केलेले असतात आणि रो संख्यात्मक लेबल असतात. काही स्प्रेडशीट्समध्ये सेलमधील डेटाचे वर्णन करण्यासाठी पहिल्या काही रोमध्ये हेडर्स असतात. Excel वर्कबुकच्या या मूलभूत घटकांसह, आम्ही [Microsoft Templates](https://templates.office.com/) मधील इन्व्हेंटरीवर लक्ष केंद्रित केलेल्या उदाहरणाचा वापर करून स्प्रेडशीटच्या काही अतिरिक्त भागांवर चर्चा करू. ### इन्व्हेंटरी व्यवस्थापन "InventoryExample" नावाचा स्प्रेडशीट फाइल इन्व्हेंटरीमधील आयटम्सचा स्वरूपित स्प्रेडशीट आहे ज्यामध्ये तीन वर्कशीट्स आहेत, जिथे टॅब्स "Inventory List", "Inventory Pick List" आणि "Bin Lookup" म्हणून लेबल केलेले आहेत. Inventory List वर्कशीटमधील रो 4 हा हेडर आहे, जो हेडर कॉलममधील प्रत्येक सेलच्या मूल्याचे वर्णन करतो. ![Microsoft Excel मधील इन्व्हेंटरी लिस्टमधील उदाहरण फॉर्म्युला हायलाइट केलेला](../../../../2-Working-With-Data/06-non-relational/images/formula-excel.png) काही वेळा सेलचे मूल्य इतर सेल्सच्या मूल्यांवर अवलंबून असते. Inventory List स्प्रेडशीट इन्व्हेंटरीमधील प्रत्येक आयटमच्या खर्चाचा मागोवा ठेवते, परंतु जर आपल्याला संपूर्ण इन्व्हेंटरीचे मूल्य जाणून घ्यायचे असेल तर काय करावे? [**फॉर्म्युला**](https://support.microsoft.com/en-us/office/overview-of-formulas-34519a4e-1e8d-4f4b-84d4-d642c4f63263) सेल डेटावर क्रिया करतो आणि या उदाहरणात इन्व्हेंटरीचा खर्च मोजण्यासाठी वापरला जातो. या स्प्रेडशीटने Inventory Value कॉलममध्ये फॉर्म्युलाचा वापर करून QTY हेडर अंतर्गत प्रमाण आणि COST हेडर अंतर्गत खर्च गुणाकार करून प्रत्येक आयटमचे मूल्य मोजले. सेल डबल क्लिक करून किंवा हायलाइट करून फॉर्म्युला पाहता येतो. तुम्हाला लक्षात येईल की फॉर्म्युला "=" चिन्हाने सुरू होतो, त्यानंतर गणना किंवा ऑपरेशन असते. ![Microsoft Excel मधील इन्व्हेंटरी लिस्टमधील उदाहरण फंक्शन हायलाइट केलेला](../../../../2-Working-With-Data/06-non-relational/images/function-excel.png) आपण Inventory Value च्या सर्व मूल्यांना एकत्र करून त्याचे एकूण मूल्य मिळवण्यासाठी आणखी एक फॉर्म्युला वापरू शकतो. हे प्रत्येक सेल जोडून मोजले जाऊ शकते, परंतु ते कंटाळवाणे काम होऊ शकते. Excel मध्ये [**फंक्शन्स**](https://support.microsoft.com/en-us/office/sum-function-043e1c7d-7726-4e80-8f32-07b23e057f89) असतात, जे सेल मूल्यांवर गणना करण्यासाठी पूर्वनिर्धारित फॉर्म्युला असतात. फंक्शन्ससाठी **arguments** आवश्यक असतात, जे गणना करण्यासाठी आवश्यक मूल्ये असतात. जेव्हा फंक्शन्ससाठी एकापेक्षा जास्त arguments आवश्यक असतात, तेव्हा त्यांना विशिष्ट क्रमाने सूचीबद्ध करणे आवश्यक असते अन्यथा फंक्शन योग्य मूल्य मोजू शकत नाही. या उदाहरणात SUM फंक्शन वापरले जाते आणि Inventory Value च्या मूल्यांना arguments म्हणून वापरून एकूण मूल्य तयार केले जाते, जे रो 3, कॉलम B (B3) अंतर्गत सूचीबद्ध आहे. ## NoSQL NoSQL हा नॉन-रिलेशनल डेटा साठवण्याच्या विविध पद्धतींसाठी एक छत्री शब्द आहे आणि "non-SQL", "non-relational" किंवा "not only SQL" म्हणून समजला जाऊ शकतो. या प्रकारच्या डेटाबेस सिस्टम्स चार प्रकारांमध्ये वर्गीकृत केल्या जाऊ शकतात. ![Key-value डेटाबेसचे ग्राफिकल प्रतिनिधित्व, ज्यामध्ये 4 अद्वितीय संख्यात्मक कीज 4 विविध मूल्यांशी संबंधित आहेत](../../../../2-Working-With-Data/06-non-relational/images/kv-db.png) > स्रोत: [Michał Białecki Blog](https://www.michalbialecki.com/2018/03/18/azure-cosmos-db-key-value-database-cloud/) [Key-value](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#keyvalue-data-stores) डेटाबेस अद्वितीय कीज जोडते, ज्या मूल्याशी संबंधित अद्वितीय ओळखकर्ता असतो. या जोड्या [hash table](https://www.hackerearth.com/practice/data-structures/hash-tables/basics-of-hash-tables/tutorial/) वापरून योग्य hashing function सह साठवल्या जातात. ![Graph डेटाबेसचे ग्राफिकल प्रतिनिधित्व, ज्यामध्ये लोक, त्यांचे आवडी आणि स्थान यांच्यातील संबंध दर्शवले आहेत](../../../../2-Working-With-Data/06-non-relational/images/graph-db.png) > स्रोत: [Microsoft](https://docs.microsoft.com/en-us/azure/cosmos-db/graph/graph-introduction#graph-database-by-example) [Graph](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#graph-data-stores) डेटाबेस डेटामधील संबंधांचे वर्णन करतात आणि नोड्स आणि एजेसच्या संग्रहासारखे दर्शवले जातात. नोड म्हणजे एखादी वस्तू, जी वास्तविक जगात अस्तित्वात असते जसे की विद्यार्थी किंवा बँक स्टेटमेंट. एजेस दोन वस्तूंमधील संबंध दर्शवतात. प्रत्येक नोड आणि एजेसकडे अतिरिक्त माहिती प्रदान करणारे गुणधर्म असतात. ![Columnar डेटाबेसचे ग्राफिकल प्रतिनिधित्व, ज्यामध्ये दोन कॉलम फॅमिली असलेल्या ग्राहक डेटाबेसचे उदाहरण आहे: Identity आणि Contact Info](../../../../2-Working-With-Data/06-non-relational/images/columnar-db.png) [Columnar](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#columnar-data-stores) डेटा स्टोर्स डेटा कॉलम्स आणि रोमध्ये आयोजित करतात जसे की रिलेशनल डेटा स्ट्रक्चर, परंतु प्रत्येक कॉलम गटांमध्ये विभागले जाते ज्याला कॉलम फॅमिली म्हणतात, जिथे एका कॉलम अंतर्गत सर्व डेटा संबंधित असतो आणि एक युनिट म्हणून पुनर्प्राप्त आणि बदलला जाऊ शकतो. ### Azure Cosmos DB सह Document Data Stores [Document](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#document-data-stores) डेटा स्टोर्स key-value डेटा स्टोर्सच्या संकल्पनेवर आधारित असतात आणि फील्ड्स आणि ऑब्जेक्ट्सच्या मालिकेने बनलेले असतात. या विभागात Cosmos DB एम्युलेटरसह डॉक्युमेंट डेटाबेस एक्सप्लोर केला जाईल. Cosmos DB डेटाबेस "Not Only SQL" च्या व्याख्येत बसतो, जिथे Cosmos DB चा डॉक्युमेंट डेटाबेस डेटा क्वेरी करण्यासाठी SQL वर अवलंबून असतो. SQL च्या [मागील धड्यात](../05-relational-databases/README.md) भाषेच्या मूलभूत गोष्टींचा समावेश आहे, आणि आम्ही येथे डॉक्युमेंट डेटाबेसवर काही समान क्वेरी लागू करू शकतो. आम्ही Cosmos DB Emulator वापरणार आहोत, जो आम्हाला संगणकावर स्थानिक स्तरावर डॉक्युमेंट डेटाबेस तयार करण्याची आणि एक्सप्लोर करण्याची परवानगी देतो. Emulator बद्दल अधिक वाचा [येथे](https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator?tabs=ssl-netstd21). डॉक्युमेंट म्हणजे फील्ड्स आणि ऑब्जेक्ट्सच्या मूल्यांचा संग्रह, जिथे फील्ड्स ऑब्जेक्ट्सच्या मूल्यांचे प्रतिनिधित्व काय आहे ते वर्णन करतात. खाली डॉक्युमेंटचे एक उदाहरण आहे. ```json { "firstname": "Eva", "age": 44, "id": "8c74a315-aebf-4a16-bb38-2430a9896ce5", "_rid": "bHwDAPQz8s0BAAAAAAAAAA==", "_self": "dbs/bHwDAA==/colls/bHwDAPQz8s0=/docs/bHwDAPQz8s0BAAAAAAAAAA==/", "_etag": "\"00000000-0000-0000-9f95-010a691e01d7\"", "_attachments": "attachments/", "_ts": 1630544034 } ``` या डॉक्युमेंटमधील महत्त्वाचे फील्ड्स आहेत: `firstname`, `id`, आणि `age`. उर्वरित फील्ड्स, ज्यामध्ये underscores आहेत, Cosmos DB ने तयार केले आहेत. #### Cosmos DB Emulator सह डेटा एक्सप्लोर करणे तुम्ही Emulator [Windows साठी येथे](https://aka.ms/cosmosdb-emulator) डाउनलोड आणि इंस्टॉल करू शकता. Emulator macOS आणि Linux वर कसे चालवायचे यासाठी पर्यायांसाठी [या दस्तऐवजाचा](https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator?tabs=ssl-netstd21#run-on-linux-macos) संदर्भ घ्या. Emulator एक ब्राउझर विंडो लॉन्च करते, जिथे Explorer दृश्य तुम्हाला डॉक्युमेंट्स एक्सप्लोर करण्याची परवानगी देते. ![Cosmos DB Emulator चे Explorer दृश्य](../../../../2-Working-With-Data/06-non-relational/images/cosmosdb-emulator-explorer.png) जर तुम्ही अनुसरण करत असाल, तर "Start with Sample" वर क्लिक करा जेणेकरून SampleDB नावाचा एक नमुना डेटाबेस तयार होईल. SampleDB विस्तारण्यासाठी त्याच्या बाणावर क्लिक केल्यास तुम्हाला `Persons` नावाचा कंटेनर सापडेल. कंटेनरमध्ये आयटम्सचा संग्रह असतो, जे कंटेनरमधील डॉक्युमेंट्स असतात. तुम्ही `Items` अंतर्गत चार वैयक्तिक डॉक्युमेंट्स एक्सप्लोर करू शकता. ![Cosmos DB Emulator मध्ये नमुना डेटाचा शोध घेत आहे](../../../../2-Working-With-Data/06-non-relational/images/cosmosdb-emulator-persons.png) #### Cosmos DB Emulator सह डॉक्युमेंट डेटा क्वेरी करणे आम्ही नवीन SQL Query बटणावर (डावीकडून दुसरे बटण) क्लिक करून नमुना डेटावर क्वेरी देखील करू शकतो. `SELECT * FROM c` कंटेनरमधील सर्व डॉक्युमेंट्स परत करते. चला एक where clause जोडू आणि 40 पेक्षा कमी वय असलेल्या व्यक्ती शोधू. `SELECT * FROM c where c.age < 40` ![Cosmos DB Emulator मध्ये नमुना डेटावर SELECT क्वेरी चालवत आहे, ज्यामध्ये वय फील्डचे मूल्य 40 पेक्षा कमी आहे](../../../../2-Working-With-Data/06-non-relational/images/cosmosdb-emulator-persons-query.png) क्वेरी दोन डॉक्युमेंट्स परत करते, लक्षात घ्या की प्रत्येक डॉक्युमेंटसाठी वयाचे मूल्य 40 पेक्षा कमी आहे. #### JSON आणि डॉक्युमेंट्स जर तुम्ही JavaScript Object Notation (JSON) शी परिचित असाल, तर तुम्हाला लक्षात येईल की डॉक्युमेंट्स JSON सारखे दिसतात. या डिरेक्टरीमध्ये `PersonsData.json` नावाची फाइल आहे ज्यामध्ये अधिक डेटा आहे, जो तुम्ही Emulator मधील Persons कंटेनरमध्ये `Upload Item` बटणाद्वारे अपलोड करू शकता. बहुतेक प्रकरणांमध्ये, JSON डेटा परत करणारे APIs थेट डॉक्युमेंट डेटाबेसमध्ये हस्तांतरित आणि साठवले जाऊ शकतात. खाली आणखी एक डॉक्युमेंट आहे, ते Microsoft Twitter अकाउंटमधून ट्विट्सचे प्रतिनिधित्व करते, जे Twitter API वापरून पुनर्प्राप्त केले गेले आणि नंतर Cosmos DB मध्ये समाविष्ट केले गेले. ```json { "created_at": "2021-08-31T19:03:01.000Z", "id": "1432780985872142341", "text": "Blank slate. Like this tweet if you’ve ever painted in Microsoft Paint before. https://t.co/cFeEs8eOPK", "_rid": "dhAmAIUsA4oHAAAAAAAAAA==", "_self": "dbs/dhAmAA==/colls/dhAmAIUsA4o=/docs/dhAmAIUsA4oHAAAAAAAAAA==/", "_etag": "\"00000000-0000-0000-9f84-a0958ad901d7\"", "_attachments": "attachments/", "_ts": 1630537000 ``` या डॉक्युमेंटमधील महत्त्वाचे फील्ड्स आहेत: `created_at`, `id`, आणि `text`. ## 🚀 आव्हान `TwitterData.json` नावाची फाइल आहे जी तुम्ही SampleDB डेटाबेसमध्ये अपलोड करू शकता. हे वेगळ्या कंटेनरमध्ये जोडणे शिफारसीय आहे. हे खालीलप्रमाणे केले जाऊ शकते: 1. वरच्या उजव्या बाजूला नवीन कंटेनर बटणावर क्लिक करा 1. विद्यमान डेटाबेस (SampleDB) निवडा, कंटेनरसाठी कंटेनर आयडी तयार करा 1. पार्टिशन की `/id` सेट करा 1. OK वर क्लिक करा (तुम्ही या दृश्यातील उर्वरित माहिती दुर्लक्षित करू शकता कारण हा तुमच्या संगणकावर स्थानिक स्तरावर चालणारा लहान डेटासेट आहे) 1. तुमचा नवीन कंटेनर उघडा आणि `Upload Item` बटणाद्वारे Twitter Data फाइल अपलोड करा `text` फील्डमध्ये Microsoft असलेले डॉक्युमेंट्स शोधण्यासाठी काही SELECT क्वेरी चालवण्याचा प्रयत्न करा. सूचना: [LIKE keyword](https://docs.microsoft.com/en-us/azure/cosmos-db/sql/sql-query-keywords#using-like-with-the--wildcard-character) वापरण्याचा प्रयत्न करा. ## [व्याख्यानानंतरची प्रश्नमंजूषा](https://ff-quizzes.netlify.app/en/ds/quiz/11) ## पुनरावलोकन आणि स्व-अभ्यास - या स्प्रेडशीटमध्ये काही अतिरिक्त स्वरूपन आणि वैशिष्ट्ये जोडली गेली आहेत ज्याचा या धड्यात समावेश नाही. Excel बद्दल अधिक जाणून घेण्याची इच्छा असल्यास Microsoft कडे [डॉक्युमेंटेशन आणि व्हिडिओंची मोठी लायब्ररी](https://support.microsoft.com/excel) आहे. - नॉन-रिलेशनल डेटाच्या विविध प्रकारांमध्ये वैशिष्ट्ये तपशीलवार सांगणारे हे आर्किटेक्चरल दस्तऐवज: [Non-relational Data and NoSQL](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data) - Cosmos DB हा क्लाउड आधारित नॉन-रिलेशनल डेटाबेस आहे जो या धड्यात नमूद केलेल्या NoSQL प्रकारांना देखील साठवू शकतो. या प्रकारांबद्दल अधिक जाणून घ्या या [Cosmos DB Microsoft Learn Module](https://docs.microsoft.com/en-us/learn/paths/work-with-nosql-data-in-azure-cosmos-db/) मध्ये. ## असाइनमेंट [Soda Profits](assignment.md) --- **अस्वीकरण**: हा दस्तऐवज AI भाषांतर सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) वापरून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया लक्षात ठेवा की स्वयंचलित भाषांतरे त्रुटी किंवा अचूकतेच्या अभावाने युक्त असू शकतात. मूळ भाषेतील दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी, व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर करून उद्भवलेल्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार राहणार नाही.