非表格的 NoSQL 資料存放

NoSQL 入門

Jake Roach

Data Engineer

文件型資料庫

定義: 一種 NoSQL 資料存放工具,以彈性、半結構化格式儲存資料,由鍵-值、鍵-陣列、鍵-物件配對組成(類似 JSON)。

$$

$$

Postgres JSON 標誌。

{
    "title": "Python for Data Analysis",
    "price": 53.99,
    "topics": [
        "Data Science",
        "Data Analytics",
        ...
    ],
    "author": {
        "first": "William"
        ...
    }
}
NoSQL 入門

以 Postgres JSON 查詢 JSON 資料

儲存在 Postgres 資料表中的已反白 JSON 資料。

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

得到以下輸出:

Postgres JSON 查詢的輸出。

NoSQL 入門

連線至 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)

建立與 Postgres 資料庫的連線:

  • 組成連線字串
  • 使用 sqlalchemy.create_engine 建立 engine
  • db_engine 變數會在練習前建立
NoSQL 入門

撰寫並執行 Postgres JSON 查詢

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)

撰寫並執行查詢:

  • 在字串中建立查詢
  • querydb_engine 傳入 pd.read_sql() 函式
  • 列印輸出的 DataFrame
NoSQL 入門

其他非表格的 NoSQL 資料存放

鍵值
{
    "name": "Jane Doe",
    "age": 25,
    "email": "[email protected]"
}

$$

Redis 標誌。

圖形

圖形資料庫示意圖。

NoSQL 入門

一起來練習吧!

NoSQL 入門

Preparing Video For Download...