Almacenar datos JSON en Postgres

Introducción a NoSQL

Jake Roach

Data Engineer

INSERT INTO y COPY de registros JSON a Postgres

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

Rellena una tabla con el contenido de un archivo usando COPY ... FROM

COPY students FROM 'students.csv' DELIMITER ',' CSV, HEADER;
Introducción a NoSQL

Convertir datos tabulares a formato JSON

Una tabla con datos tabulares y otra que muestra la primera tabla en formato JSON tras usar la función row_to_json.

Función row_to_json

  • Convierte una fila a JSON
  • Úsala con la función row() y pasa los nombres de columna
SELECT
    row_to_json(row(
        school,
        age,
        address
    ))
FROM students;
Introducción a NoSQL

Extraer claves de JSON

Dos tablas: una con una sola columna de tipo JSON de Postgres y otra con la salida de la función json_object_keys.

Función json_object_keys

  • Extrae claves de una columna de tipo JSON
SELECT
    json_object_keys(parent_meta)
FROM students;
  • Combínala con DISTINCT para obtener todas las claves únicas
SELECT
    DISTINCT json_object_keys(parent_meta)
FROM students;
Introducción a NoSQL

Repaso

SELECT
    row_to_json(row(
        <column-1>,
        <column-2>,
        ...
    ))
FROM <table-name>;
SELECT
    DISTINCT json_object_keys(parent_meta)
FROM <table-name>;
Introducción a NoSQL

¡Vamos a practicar!

Introducción a NoSQL

Preparing Video For Download...