%load_ext sql
from sqlalchemy import create_engine
%sql postgresql://{config_username.value}:{config_password.value}@{config_host.value}:{config_port.value}/{config_db.value}?sslmode=require
執行殼層。 您應該不會看到任何輸出,但儲存格應該會在沒有任何警告的情況下執行。
在新呼叫中,輸入陳述式,以根據連線取得可用資料檢視的清單。
code language-python
%%sql
SELECT n.nspname as "Schema",
c.relname as "Name",
CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 't' THEN 'TOAST table' WHEN 'f' THEN 'foreign table' WHEN 'p' THEN 'partitioned table' WHEN 'I' THEN 'partitioned index' END as "Type",
pg_catalog.pg_get_userbyid(c.relowner) as "Owner"
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('v','')
AND n.nspname <> 'pg_catalog'
AND n.nspname !~ '^pg_toast'
AND n.nspname <> 'information_schema'
AND pg_catalog.pg_table_is_visible(c.oid)
AND c.relname NOT LIKE '%test%'
AND c.relname NOT LIKE '%ajo%'
ORDER BY 1,2;
import seaborn as sns
import matplotlib.pyplot as plt
data = %sql SELECT daterangeday AS Date, COUNT(*) AS Events \
FROM cc_data_view \
WHERE daterange BETWEEN '2023-01-01' AND '2023-02-01' \
GROUP BY 1 \
ORDER BY Date ASC
df = data.DataFrame()
df = df.groupby('Date', as_index=False).sum()
plt.figure(figsize=(15, 3))
sns.lineplot(x='Date', y='Events', data=df)
plt.show()
display(data)
import seaborn as sns
import matplotlib.pyplot as plt
data = %sql SELECT daterangehour AS Hour, COUNT(*) AS Events \
FROM cc_data_view \
WHERE daterange BETWEEN '2023-01-01' AND '2023-01-02' \
GROUP BY 1 \
ORDER BY Hour ASC
df = data.DataFrame()
df = df.groupby('Hour', as_index=False).sum()
plt.figure(figsize=(15, 3))
sns.lineplot(x='Hour', y='Events', data=df)
plt.show()
display(data)
import seaborn as sns
import matplotlib.pyplot as plt
data = %sql SELECT daterangemonth AS Month, COUNT(*) AS Events \
FROM cc_data_view \
WHERE daterange BETWEEN '2023-01-01' AND '2024-01-01' \
GROUP BY 1 \
ORDER BY Month ASC
df = data.DataFrame()
df = df.groupby('Month', as_index=False).sum()
plt.figure(figsize=(15, 3))
sns.lineplot(x='Month', y='Events', data=df)
plt.show()
display(data)