%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
执行shell。 您应该不会看到任何输出,但单元格应在没有任何警告的情况下执行。
在新调用中,输入语句以根据连接获取可用数据视图的列表。
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)