Розуміння даних JSON у Postgres

Вступ до NoSQL

Jake Roach

Data Engineer

JSON і JSONB у Postgres

{
    'guardian': 'mother',
    'status': 'A',
    'educations': [4, 4],
    'jobs': {
        'P1': 'teacher',
        'P2': 'at_home'
    }
}
CREATE TABLE students
    <column-name> JSON,
    <column-bame> JSONB
;

JSON

  • Зберігає дані у форматі JSON
  • Пари ключ–значення, масиви, вкладені обʼєкти

$$

JSONB

  • Дані зберігаються у бінарному форматі
  • Подібно до BSON у MongoDB
  • Ефективніше зберігання та вибірка
  • Додаткова індексація
Вступ до NoSQL

Чому напівструктуровані дані в Postgres?

Таблиця Postgres із колонкою типу JSON.

Вступ до NoSQL

Запити до даних JSON у Postgres

SELECT
    address,
    famsize,
    ...
FROM students
[WHERE | GROUP BY | ORDER BY];

$$

  • row_to_json, json_to_record
  • Оператори ->, ->>, #>, #>>
  • json_extract_path, json_extract_path_text

Ви також зможете:

  • Вставляти записи у форматі JSON до таблиці Postgres
  • Табличні дані → JSON, JSON → табличні дані
  • Діставати окремі записи з обʼєктів JSON
Вступ до NoSQL

Виконання запитів із sqlalchemy та pandas

import sqlalchemy
import pandas as pd
# Create a connection
db_engine = sqlalchemy.create_engine(
    "postgresql+psycopg2://<user>:<password>@<host>:5432/<database>"
)
# Write a query
query = "SELECT * FROM table_name;"
# Execute the query, show results
results = pd.read_sql(query, db_engine)
Вступ до NoSQL

Давайте потренуємось!

Вступ до NoSQL

Preparing Video For Download...