Niet-tabelvormige NoSQL-datastores

Introductie tot NoSQL

Jake Roach

Data Engineer

Documentdatabases

Definitie: Een NoSQL-opslagtool die data opslaat in een flexibel, semi-gestructureerd formaat, bestaande uit sleutel-waarde-, sleutel-array- en sleutel-objectparen (vergelijkbaar met JSON).

$$

$$

Postgres JSON-logo.

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

JSON-data bevragen met Postgres JSON

Gemarkeerde JSON-data opgeslagen in een Postgres-tabel.

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

Met als resultaat de volgende output:

Output van Postgres JSON-query.

Introductie tot NoSQL

Verbinden met een Postgres-database

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)

Een verbinding maken met een Postgres-database:

  • Maak een connection string
  • Maak een engine met sqlalchemy.create_engine
  • Variabele db_engine wordt vooraf aangemaakt voor de oefening
Introductie tot NoSQL

Postgres JSON-queries schrijven en uitvoeren

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)

Een query schrijven en uitvoeren:

  • Schrijf de query in een string
  • Geef query en db_engine door aan pd.read_sql()
  • Print het resultaat-DataFrame
Introductie tot NoSQL

Andere niet-tabelvormige NoSQL-datastores

Sleutel-waarde
{
    "name": "Jane Doe",
    "age": 25,
    "email": "[email protected]"
}

$$

Redis-logo.

Graaf

Afbeelding van een graafdatabase.

Introductie tot NoSQL

Laten we oefenen!

Introductie tot NoSQL

Preparing Video For Download...