29 lines
1.1 KiB
SQL
29 lines
1.1 KiB
SQL
-- Statistics cube: hour + daily facts (server × iface × country × service × ASN).
|
||
-- Compact types. FILLFACTOR/autovacuum нельзя на partitioned parent (PG 42809) —
|
||
-- задаются на листовых партициях в ensurePartitionFor.
|
||
-- Retention: DROP partitions only (see PARTITION_SPECS).
|
||
|
||
CREATE TABLE IF NOT EXISTS flow_hour_facts (
|
||
server_id BIGINT NOT NULL REFERENCES servers(id) ON DELETE CASCADE,
|
||
bucket_at TIMESTAMPTZ NOT NULL,
|
||
iface TEXT NOT NULL,
|
||
country CHAR(2) NOT NULL,
|
||
service TEXT NOT NULL,
|
||
asn INTEGER NOT NULL,
|
||
bytes BIGINT NOT NULL DEFAULT 0,
|
||
packets BIGINT NOT NULL DEFAULT 0,
|
||
PRIMARY KEY (server_id, bucket_at, iface, country, service, asn)
|
||
) PARTITION BY RANGE (bucket_at);
|
||
|
||
CREATE TABLE IF NOT EXISTS flow_daily_facts (
|
||
server_id BIGINT NOT NULL REFERENCES servers(id) ON DELETE CASCADE,
|
||
day DATE NOT NULL,
|
||
iface TEXT NOT NULL,
|
||
country CHAR(2) NOT NULL,
|
||
service TEXT NOT NULL,
|
||
asn INTEGER NOT NULL,
|
||
bytes BIGINT NOT NULL DEFAULT 0,
|
||
packets BIGINT NOT NULL DEFAULT 0,
|
||
PRIMARY KEY (server_id, day, iface, country, service, asn)
|
||
) PARTITION BY RANGE (day);
|