Armazenamentos NoSQL não tabulares

Introdução a NoSQL

Jake Roach

Data Engineer

Bancos de dados de documentos

Definição: Uma ferramenta de armazenamento NoSQL que guarda dados em um formato flexível e semiestruturado, formado por pares chave-valor, chave-array e chave-objeto (semelhante a JSON).

$$

$$

Logo do Postgres JSON.

{
    "title": "Python for Data Analysis",
    "price": 53.99,
    "topics": [
        "Data Science",
        "Data Analytics",
        ...
    ],
    "author": {
        "first": "William"
        ...
    }
}
Introdução a NoSQL

Consultando dados JSON com Postgres JSON

Dados JSON destacados armazenados em uma tabela do Postgres.

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

Gerando a seguinte saída:

Saída de uma consulta JSON no Postgres.

Introdução a NoSQL

Conectando a um banco 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)

Para criar uma conexão com um banco Postgres:

  • Forme uma string de conexão
  • Crie um engine com sqlalchemy.create_engine
  • A variável db_engine será criada antes do exercício
Introdução a NoSQL

Escrevendo e executando consultas JSON no Postgres

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)

Para escrever e executar uma consulta:

  • Monte a consulta em uma string
  • Passe query e db_engine para a função pd.read_sql()
  • Imprima o DataFrame resultante
Introdução a NoSQL

Outros armazenamentos NoSQL não tabulares

Chave-valor
{
    "name": "Jane Doe",
    "age": 25,
    "email": "[email protected]"
}

$$

Logo do Redis.

Grafo

Imagem de um banco de dados de grafo.

Introdução a NoSQL

Vamos praticar!

Introdução a NoSQL

Preparing Video For Download...