13 KiB
Arbejde med data: Ikke-relationelle data
![]() |
---|
Arbejde med NoSQL-data - Sketchnote af @nitya |
Quiz før lektionen
Data er ikke begrænset til relationelle databaser. Denne lektion fokuserer på ikke-relationelle data og vil dække grundlæggende om regneark og NoSQL.
Regneark
Regneark er en populær måde at gemme og udforske data på, fordi det kræver mindre arbejde at opsætte og komme i gang. I denne lektion vil du lære de grundlæggende komponenter i et regneark, samt formler og funktioner. Eksemplerne vil blive illustreret med Microsoft Excel, men de fleste dele og emner vil have lignende navne og trin i forhold til andre regnearksprogrammer.
Et regneark er en fil og vil være tilgængelig i filsystemet på en computer, enhed eller skybaseret filsystem. Selve softwaren kan være browserbaseret eller en applikation, der skal installeres på en computer eller downloades som en app. I Excel defineres disse filer også som arbejdsbøger, og denne terminologi vil blive brugt resten af lektionen.
En arbejdsbog indeholder et eller flere regneark, hvor hvert regneark er mærket med faner. Inden for et regneark er der rektangler kaldet celler, som indeholder de faktiske data. En celle er skæringspunktet mellem en række og en kolonne, hvor kolonnerne er mærket med alfabetiske tegn og rækkerne numerisk. Nogle regneark vil indeholde overskrifter i de første par rækker for at beskrive dataene i en celle.
Med disse grundlæggende elementer i en Excel-arbejdsbog vil vi bruge et eksempel fra Microsoft Templates med fokus på et lager for at gennemgå nogle yderligere dele af et regneark.
Håndtering af et lager
Regnearksfilen kaldet "InventoryExample" er et formateret regneark med varer i et lager, der indeholder tre regneark, hvor fanerne er mærket "Inventory List", "Inventory Pick List" og "Bin Lookup". Række 4 i regnearket Inventory List er overskriften, som beskriver værdien af hver celle i overskriftskolonnen.
Der er tilfælde, hvor en celle er afhængig af værdierne i andre celler for at generere sin værdi. Lagerlisten holder styr på omkostningerne for hver vare i lageret, men hvad hvis vi skal kende værdien af alt i lageret? Formler udfører handlinger på celldata og bruges til at beregne lagerets værdi i dette eksempel. Dette regneark brugte en formel i kolonnen Inventory Value til at beregne værdien af hver vare ved at multiplicere mængden under overskriften QTY og dens omkostninger under overskriften COST. Dobbeltklik eller fremhæv en celle for at se formlen. Du vil bemærke, at formler starter med et lighedstegn, efterfulgt af beregningen eller operationen.
Vi kan bruge en anden formel til at lægge alle værdierne i Inventory Value sammen for at få den samlede værdi. Dette kunne beregnes ved at tilføje hver celle for at generere summen, men det kan være en tidskrævende opgave. Excel har funktioner, eller foruddefinerede formler til at udføre beregninger på celldata. Funktioner kræver argumenter, som er de nødvendige værdier, der bruges til at udføre disse beregninger. Når funktioner kræver mere end ét argument, skal de angives i en bestemt rækkefølge, ellers beregner funktionen muligvis ikke den korrekte værdi. Dette eksempel bruger SUM-funktionen og bruger værdierne i Inventory Value som argumentet for at generere summen, der er angivet under række 3, kolonne B (også kaldet B3).
NoSQL
NoSQL er en paraplybetegnelse for de forskellige måder at gemme ikke-relationelle data på og kan tolkes som "non-SQL", "non-relational" eller "not only SQL". Disse typer databasesystemer kan kategoriseres i 4 typer.
Kilde fra Michał Białecki Blog
Nøgle-værdi databaser parrer unikke nøgler, som er en unik identifikator knyttet til en værdi. Disse par gemmes ved hjælp af en hash-tabel med en passende hash-funktion.
Kilde fra Microsoft
Graf databaser beskriver relationer i data og er repræsenteret som en samling af noder og kanter. En node repræsenterer en enhed, noget der eksisterer i den virkelige verden, såsom en studerende eller en bankudskrift. Kanter repræsenterer relationen mellem to enheder. Hver node og kant har egenskaber, der giver yderligere information om hver node og kant.
Kolonnær datastores organiserer data i kolonner og rækker som en relationel datastruktur, men hver kolonne er opdelt i grupper kaldet en kolonnefamilie, hvor alle data under én kolonne er relaterede og kan hentes og ændres som en enhed.
Dokumentdatastores med Azure Cosmos DB
Dokument datastores bygger på konceptet med en nøgle-værdi-datastore og består af en række felter og objekter. Denne sektion vil udforske dokumentdatabaser med Cosmos DB-emulatoren.
En Cosmos DB-database passer til definitionen af "Not Only SQL", hvor Cosmos DB's dokumentdatabase bruger SQL til at forespørge data. Den tidligere lektion om SQL dækker grundlæggende om sproget, og vi vil kunne anvende nogle af de samme forespørgsler på en dokumentdatabase her. Vi vil bruge Cosmos DB Emulator, som giver os mulighed for at oprette og udforske en dokumentdatabase lokalt på en computer. Læs mere om Emulatoren her.
Et dokument er en samling af felter og objektværdier, hvor felterne beskriver, hvad objektværdien repræsenterer. Nedenfor er et eksempel på et dokument.
{
"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
}
De interessante felter i dette dokument er: firstname
, id
og age
. Resten af felterne med understregninger blev genereret af Cosmos DB.
Udforskning af data med Cosmos DB Emulator
Du kan downloade og installere emulatoren til Windows her. Se denne dokumentation for muligheder for at køre Emulatoren på macOS og Linux.
Emulatoren åbner et browservindue, hvor Explorer-visningen giver dig mulighed for at udforske dokumenter.
Hvis du følger med, skal du klikke på "Start with Sample" for at generere en prøvedatabase kaldet SampleDB. Hvis du udvider SampleDB ved at klikke på pilen, finder du en container kaldet Persons
. En container indeholder en samling af elementer, som er dokumenterne inden for containeren. Du kan udforske de fire individuelle dokumenter under Items
.
Forespørgsel på dokumentdata med Cosmos DB Emulator
Vi kan også forespørge prøvedataene ved at klikke på knappen "New SQL Query" (anden knap fra venstre).
SELECT * FROM c
returnerer alle dokumenterne i containeren. Lad os tilføje en where-klausul og finde alle, der er yngre end 40.
SELECT * FROM c where c.age < 40
Forespørgslen returnerer to dokumenter, bemærk aldersværdien for hvert dokument er mindre end 40.
JSON og dokumenter
Hvis du er bekendt med JavaScript Object Notation (JSON), vil du bemærke, at dokumenter ligner JSON. Der er en PersonsData.json
-fil i denne mappe med flere data, som du kan uploade til Persons-containeren i Emulatoren via knappen Upload Item
.
I de fleste tilfælde kan API'er, der returnerer JSON-data, direkte overføres og gemmes i dokumentdatabaser. Nedenfor er et andet dokument, det repræsenterer tweets fra Microsofts Twitter-konto, der blev hentet ved hjælp af Twitter API og derefter indsat i 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
De interessante felter i dette dokument er: created_at
, id
og text
.
🚀 Udfordring
Der er en TwitterData.json
-fil, som du kan uploade til SampleDB-databasen. Det anbefales, at du tilføjer den til en separat container. Dette kan gøres ved:
- Klikke på knappen "New Container" øverst til højre
- Vælge den eksisterende database (SampleDB) og oprette et container-id for containeren
- Indstille partitionsnøglen til
/id
- Klikke på OK (du kan ignorere resten af informationen i denne visning, da dette er et lille datasæt, der kører lokalt på din maskine)
- Åbne din nye container og uploade Twitter Data-filen med knappen
Upload Item
Prøv at køre nogle SELECT-forespørgsler for at finde dokumenterne, der har Microsoft i tekstfeltet. Tip: prøv at bruge LIKE nøgleordet
Quiz efter lektionen
Gennemgang & Selvstudie
-
Der er nogle yderligere formateringsmuligheder og funktioner tilføjet til dette regneark, som denne lektion ikke dækker. Microsoft har et stort bibliotek af dokumentation og videoer om Excel, hvis du er interesseret i at lære mere.
-
Denne arkitekturdokumentation beskriver egenskaberne ved de forskellige typer ikke-relationelle data: Ikke-relationelle data og NoSQL
-
Cosmos DB er en skybaseret ikke-relationel database, der også kan gemme de forskellige NoSQL-typer nævnt i denne lektion. Lær mere om disse typer i dette Cosmos DB Microsoft Learn Module
Opgave
Ansvarsfraskrivelse:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten Co-op Translator. Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi er ikke ansvarlige for eventuelle misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.