14 KiB
Lavorare con i dati: Dati non relazionali
![]() |
---|
Lavorare con i dati NoSQL - Sketchnote di @nitya |
Quiz Pre-Lezione
I dati non sono limitati ai database relazionali. Questa lezione si concentra sui dati non relazionali e coprirà le basi dei fogli di calcolo e del NoSQL.
Fogli di calcolo
I fogli di calcolo sono un modo popolare per archiviare ed esplorare i dati perché richiedono meno lavoro per essere configurati e utilizzati. In questa lezione imparerai i componenti di base di un foglio di calcolo, oltre a formule e funzioni. Gli esempi saranno illustrati con Microsoft Excel, ma la maggior parte delle parti e degli argomenti avrà nomi e passaggi simili rispetto ad altri software di fogli di calcolo.
Un foglio di calcolo è un file e sarà accessibile nel file system di un computer, dispositivo o sistema di file basato su cloud. Il software stesso può essere basato su browser o un'applicazione che deve essere installata su un computer o scaricata come app. In Excel questi file sono definiti anche come workbook e questa terminologia sarà utilizzata per il resto della lezione.
Un workbook contiene una o più worksheet, dove ogni foglio di lavoro è etichettato con delle schede. All'interno di un foglio di lavoro ci sono rettangoli chiamati celle, che contengono i dati effettivi. Una cella è l'intersezione di una riga e una colonna, dove le colonne sono etichettate con caratteri alfabetici e le righe con numeri. Alcuni fogli di calcolo contengono intestazioni nelle prime righe per descrivere i dati in una cella.
Con questi elementi di base di un workbook Excel, utilizzeremo un esempio da Microsoft Templates focalizzato su un inventario per esaminare alcune parti aggiuntive di un foglio di calcolo.
Gestione di un inventario
Il file del foglio di calcolo chiamato "InventoryExample" è un foglio di calcolo formattato di articoli all'interno di un inventario che contiene tre fogli di lavoro, dove le schede sono etichettate "Inventory List", "Inventory Pick List" e "Bin Lookup". La riga 4 del foglio di lavoro Inventory List è l'intestazione, che descrive il valore di ogni cella nella colonna dell'intestazione.
Ci sono casi in cui una cella dipende dai valori di altre celle per generare il proprio valore. Il foglio di lavoro Inventory List tiene traccia del costo di ogni articolo nel suo inventario, ma cosa succede se abbiamo bisogno di sapere il valore di tutto l'inventario? Le formule eseguono azioni sui dati delle celle e vengono utilizzate per calcolare il costo dell'inventario in questo esempio. Questo foglio di calcolo utilizza una formula nella colonna Inventory Value per calcolare il valore di ogni articolo moltiplicando la quantità sotto l'intestazione QTY e i suoi costi dalle celle sotto l'intestazione COST. Facendo doppio clic o evidenziando una cella verrà mostrata la formula. Noterai che le formule iniziano con un segno di uguale, seguito dal calcolo o dall'operazione.
Possiamo utilizzare un'altra formula per sommare tutti i valori di Inventory Value e ottenere il valore totale. Questo potrebbe essere calcolato sommando ogni cella per generare la somma, ma può essere un compito tedioso. Excel ha funzioni, ovvero formule predefinite per eseguire calcoli sui valori delle celle. Le funzioni richiedono argomenti, che sono i valori necessari per eseguire questi calcoli. Quando le funzioni richiedono più di un argomento, devono essere elencate in un ordine specifico o la funzione potrebbe non calcolare il valore corretto. Questo esempio utilizza la funzione SUM e utilizza i valori di Inventory Value come argomento per sommare e generare il totale elencato sotto la riga 3, colonna B (anche indicata come B3).
NoSQL
NoSQL è un termine generico per i diversi modi di archiviare dati non relazionali e può essere interpretato come "non-SQL", "non-relazionale" o "non solo SQL". Questi tipi di sistemi di database possono essere classificati in 4 tipi.
Fonte da Blog di Michał Białecki
I database Key-value associano chiavi uniche, che sono identificatori unici associati a un valore. Queste coppie vengono archiviate utilizzando una tabella hash con una funzione di hashing appropriata.
Fonte da Microsoft
I database Graph descrivono le relazioni nei dati e sono rappresentati come una raccolta di nodi e archi. Un nodo rappresenta un'entità, qualcosa che esiste nel mondo reale come uno studente o un estratto conto bancario. Gli archi rappresentano la relazione tra due entità. Ogni nodo e arco ha proprietà che forniscono informazioni aggiuntive su ciascun nodo e arco.
Gli archivi dati colonnari organizzano i dati in colonne e righe come una struttura dati relazionale, ma ogni colonna è divisa in gruppi chiamati famiglie di colonne, dove tutti i dati sotto una colonna sono correlati e possono essere recuperati e modificati in un'unica unità.
Archivi dati documentali con Azure Cosmos DB
Gli archivi dati documentali si basano sul concetto di un archivio dati chiave-valore e sono costituiti da una serie di campi e oggetti. Questa sezione esplorerà i database documentali con l'emulatore Cosmos DB.
Un database Cosmos DB si adatta alla definizione di "Non Solo SQL", dove il database documentale di Cosmos DB si basa su SQL per interrogare i dati. La lezione precedente su SQL copre le basi del linguaggio e saremo in grado di applicare alcune delle stesse query a un database documentale qui. Utilizzeremo l'emulatore Cosmos DB, che ci consente di creare ed esplorare un database documentale localmente su un computer. Leggi di più sull'emulatore qui.
Un documento è una raccolta di campi e valori di oggetti, dove i campi descrivono cosa rappresenta il valore dell'oggetto. Di seguito è riportato un esempio di documento.
{
"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
}
I campi di interesse in questo documento sono: firstname
, id
e age
. Gli altri campi con gli underscore sono stati generati da Cosmos DB.
Esplorare i dati con l'emulatore Cosmos DB
Puoi scaricare e installare l'emulatore per Windows qui. Consulta questa documentazione per le opzioni su come eseguire l'emulatore su macOS e Linux.
L'emulatore avvia una finestra del browser, dove la vista Explorer consente di esplorare i documenti.
Se stai seguendo, fai clic su "Start with Sample" per generare un database di esempio chiamato SampleDB. Se espandi SampleDB facendo clic sulla freccia, troverai un contenitore chiamato Persons
. Un contenitore contiene una raccolta di elementi, che sono i documenti all'interno del contenitore. Puoi esplorare i quattro documenti individuali sotto Items
.
Interrogare i dati documentali con l'emulatore Cosmos DB
Possiamo anche interrogare i dati di esempio facendo clic sul pulsante nuova query SQL (secondo pulsante da sinistra).
SELECT * FROM c
restituisce tutti i documenti nel contenitore. Aggiungiamo una clausola where e troviamo tutti quelli con meno di 40 anni.
SELECT * FROM c where c.age < 40
La query restituisce due documenti, nota che il valore age per ciascun documento è inferiore a 40.
JSON e documenti
Se hai familiarità con JavaScript Object Notation (JSON), noterai che i documenti sembrano simili a JSON. C'è un file PersonsData.json
in questa directory con più dati che puoi caricare nel contenitore Persons nell'emulatore tramite il pulsante Upload Item
.
Nella maggior parte dei casi, le API che restituiscono dati JSON possono essere trasferite direttamente e archiviate nei database documentali. Di seguito è riportato un altro documento, rappresenta tweet dall'account Twitter di Microsoft che sono stati recuperati utilizzando l'API di Twitter, quindi inseriti in Cosmos DB.
{
"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
I campi di interesse in questo documento sono: created_at
, id
e text
.
🚀 Sfida
C'è un file TwitterData.json
che puoi caricare nel database SampleDB. Si consiglia di aggiungerlo a un contenitore separato. Questo può essere fatto:
- Facendo clic sul pulsante nuovo contenitore in alto a destra
- Selezionando il database esistente (SampleDB) e creando un id per il contenitore
- Impostando la chiave di partizione su
/id
- Facendo clic su OK (puoi ignorare il resto delle informazioni in questa vista poiché si tratta di un piccolo set di dati che gira localmente sulla tua macchina)
- Apri il nuovo contenitore e carica il file Twitter Data con il pulsante
Upload Item
Prova a eseguire alcune query SELECT per trovare i documenti che contengono Microsoft nel campo text. Suggerimento: prova a utilizzare la parola chiave LIKE.
Quiz Post-Lezione
Revisione e studio autonomo
-
Ci sono alcune formattazioni e funzionalità aggiuntive in questo foglio di calcolo che questa lezione non copre. Microsoft ha una grande libreria di documentazione e video su Excel se sei interessato a saperne di più.
-
Questa documentazione architettonica dettaglia le caratteristiche dei diversi tipi di dati non relazionali: Dati non relazionali e NoSQL.
-
Cosmos DB è un database non relazionale basato su cloud che può anche archiviare i diversi tipi di NoSQL menzionati in questa lezione. Scopri di più su questi tipi in questo Modulo Microsoft Learn su Cosmos DB.
Compito
Disclaimer:
Questo documento è stato tradotto utilizzando il servizio di traduzione automatica Co-op Translator. Sebbene ci impegniamo per garantire l'accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si consiglia una traduzione professionale eseguita da un traduttore umano. Non siamo responsabili per eventuali fraintendimenti o interpretazioni errate derivanti dall'uso di questa traduzione.