Armazenando dados JSON no Postgres

Introdução a NoSQL

Jake Roach

Data Engineer

Inserir e copiar registros JSON para o Postgres

INSERT INTO students (school, age, address, parent_meta) VALUES (
    'GP',
    18,
    'U',
    '{\"guardian\": \"mother\", ...  \"P2\": \"at_home\"}}'
);

Preencha uma tabela com o conteúdo de um arquivo usando COPY ... FROM

COPY students FROM 'students.csv' DELIMITER ',' CSV, HEADER;
Introdução a NoSQL

Transformando dados tabulares em JSON

Uma tabela com dados tabulares e outra mostrando a primeira tabela em formato JSON após usar a função row_to_json.

Função row_to_json

  • Converte uma linha em JSON
  • Use com a função row() e passe os nomes das colunas
SELECT
    row_to_json(row(
        school,
        age,
        address
    ))
FROM students;
Introdução a NoSQL

Extraindo chaves de JSON

Duas tabelas: uma com uma única coluna do tipo JSON do Postgres e outra com a saída da função json_object_keys.

Função json_object_keys

  • Extrai as chaves de uma coluna do tipo JSON
SELECT
    json_object_keys(parent_meta)
FROM students;
  • Combine com DISTINCT para encontrar todas as chaves únicas
SELECT
    DISTINCT json_object_keys(parent_meta)
FROM students;
Introdução a NoSQL

Revisão

SELECT
    row_to_json(row(
        <column-1>,
        <column-2>,
        ...
    ))
FROM <table-name>;
SELECT
    DISTINCT json_object_keys(parent_meta)
FROM <table-name>;
Introdução a NoSQL

Vamos praticar!

Introdução a NoSQL

Preparing Video For Download...