Postgres'te JSON verisini anlama

NoSQL'a Giriş

Jake Roach

Data Engineer

Postgres'te JSON ve JSONB

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

JSON

  • Veriyi JSON biçiminde saklar
  • Anahtar-değer çiftleri, diziler, iç içe nesneler

$$

JSONB

  • Veri ikili (binary) biçimde saklanır
  • MongoDB'deki BSON'a benzer
  • Daha verimli depolama ve getirme
  • Ek indekslemeye izin verir
NoSQL'a Giriş

Neden Postgres'te yarı-yapısal veri?

JSON türünde bir sütun içeren bir Postgres tablosu.

NoSQL'a Giriş

Postgres ile JSON verisini sorgulama

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

$$

  • row_to_json, json_to_record
  • ->, ->>, #>, #>> işleçleri
  • json_extract_path, json_extract_path_text

Ayrıca şunları yapabileceksiniz:

  • Postgres tablosuna JSON biçimli kayıt eklemek
  • Tablo → JSON, JSON → tablo dönüşümü
  • JSON nesnelerinden tekil kayıtlar çıkarmak
NoSQL'a Giriş

sqlalchemy ve pandas ile sorgu çalıştırma

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'a Giriş

Hadi pratik yapalım!

NoSQL'a Giriş

Preparing Video For Download...