Nietabelaryczne magazyny danych NoSQL

Wprowadzenie do NoSQL

Jake Roach

Data Engineer

Dokumentowe bazy danych

Definicja: Narzędzie NoSQL przechowujące dane w elastycznym, częściowo ustrukturyzowanym formacie, złożonym z par klucz-wartość, klucz-tablica i klucz-obiekt (podobnie jak JSON).

$$

$$

Logo Postgres JSON.

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

Zapytania do danych JSON w Postgres JSON

Wyróżnione dane JSON przechowywane w tabeli Postgres.

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

Wynik zapytania:

Wynik zapytania Postgres JSON.

Wprowadzenie do NoSQL

Łączenie z bazą danych Postgres

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)

Aby połączyć się z bazą danych Postgres:

  • Utwórz ciąg połączenia
  • Utwórz silnik za pomocą sqlalchemy.create_engine
  • Zmienna db_engine zostanie utworzona przed ćwiczeniem
Wprowadzenie do NoSQL

Pisanie i wykonywanie zapytań Postgres JSON

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)

Aby napisać i wykonać zapytanie:

  • Utwórz zapytanie w postaci ciągu znaków
  • Przekaż query i db_engine do funkcji pd.read_sql()
  • Wydrukuj wynikowy DataFrame
Wprowadzenie do NoSQL

Inne nietabelaryczne magazyny danych NoSQL

Klucz-wartość
{
    "name": "Jane Doe",
    "age": 25,
    "email": "[email protected]"
}

$$

Logo Redis.

Graf

Wizualizacja grafowej bazy danych.

Wprowadzenie do NoSQL

Czas na ćwiczenia!

Wprowadzenie do NoSQL

Preparing Video For Download...