Icke-tabellbaserade NoSQL-datalager

Introduktion till NoSQL

Jake Roach

Data Engineer

Dokumentdatabaser

Definition: Ett NoSQL-verktyg för datalagring som sparar data i ett flexibelt, semistrukturerat format, bestående av nyckel-värde-, nyckel-array- och nyckel-objekt-par (liknande JSON).

$$

$$

Postgres JSON-logotyp.

{
    "title": "Python for Data Analysis",
    "price": 53.99,
    "topics": [
        "Data Science",
        "Data Analytics",
        ...
    ],
    "author": {
        "first": "William"
        ...
    }
}
Introduktion till NoSQL

Fråga JSON-data med Postgres JSON

Markerad JSON-data lagrad i en Postgres-tabell.

SELECT
    books -> 'title' AS title,
    books -> 'price' AS price
FROM data_science_resources
WHERE 
    books -> 'author' ->> 'last' = 'Viafore';

Resultatet blir följande utdata:

Utdata från Postgres JSON-fråga.

Introduktion till NoSQL

Ansluta till en Postgres-databas

import sqlalchemy

# Create a connection string, and an engine
connection_string = "postgresql+psycopg2://<user>:<password>@<host>:<port>/<database>"
db_engine = sqlalchemy.create_engine(connection_string)

Så här skapar du en anslutning till en Postgres-databas:

  • Skapa en anslutningssträng
  • Skapa en motor med sqlalchemy.create_engine
  • Variabeln db_engine skapas i förväg, före övningen
Introduktion till NoSQL

Skriva och köra Postgres JSON-frågor

import pandas as pd

# Build the query
query = """
    SELECT
        books -> 'title' AS title,
        books -> 'price' AS price
    FROM data_science_resources;
"""

# Execute the query
result = pd.read_sql(query, db_engine)
print(result)

Så här skriver och kör du en fråga:

  • Bygg upp frågan i en sträng
  • Skicka query och db_engine till funktionen pd.read_sql()
  • Skriv ut den resulterande DataFramen
Introduktion till NoSQL

Andra icke-tabellbaserade NoSQL-datalager

Nyckel-värde
{
    "name": "Jane Doe",
    "age": 25,
    "email": "[email protected]"
}

$$

Redis-logotyp.

Graf

Bild av en grafdatabas.

Introduktion till NoSQL

Nu kör vi en övning!

Introduktion till NoSQL

Preparing Video For Download...