| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- SET statement_timeout = 0;
- SET lock_timeout = 0;
- SET idle_in_transaction_session_timeout = 0;
- SET client_encoding = 'UTF8';
- SET standard_conforming_strings = on;
- SELECT pg_catalog.set_config('search_path', '', false);
- SET check_function_bodies = false;
- SET xmloption = content;
- SET client_min_messages = warning;
- SET row_security = off;
- CREATE ROLE senslog NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT;
- CREATE ROLE analytics_app NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN PASSWORD 'analytics';
- GRANT senslog TO analytics_app;
- CREATE DATABASE analytics WITH TEMPLATE = template0 ENCODING = 'UTF8' LOCALE_PROVIDER = 'libc' LOCALE = 'en_US.UTF-8';
- ALTER DATABASE analytics OWNER TO senslog;
- \connect analytics
- SET statement_timeout = 0;
- SET lock_timeout = 0;
- SET idle_in_transaction_session_timeout = 0;
- SET client_encoding = 'UTF8';
- SET standard_conforming_strings = on;
- SELECT pg_catalog.set_config('search_path', '', false);
- SET check_function_bodies = false;
- SET xmloption = content;
- SET client_min_messages = warning;
- SET row_security = off;
- SET default_tablespace = '';
- CREATE SCHEMA analytics;
- ALTER SCHEMA analytics OWNER TO senslog;
- ALTER SCHEMA public OWNER TO senslog;
- CREATE TYPE analytics.attribute_type AS ENUM ('MIN', 'MAX', 'AVG', 'VAL', 'TIME');
- ALTER TYPE analytics.attribute_type OWNER TO senslog;
- CREATE TYPE analytics.comparison_operator AS ENUM ('LT', 'LE', 'GE', 'GT', 'NE', 'EQ');
- ALTER TYPE analytics.comparison_operator OWNER TO senslog;
- CREATE TYPE analytics.collector_type AS ENUM ('DOUBLE', 'MOLD');
- ALTER TYPE analytics.collector_type OWNER TO senslog;
- CREATE TYPE analytics.notify_trigger_mode AS ENUM ('INSTANT', 'ON_CHANGE', 'DISABLED');
- ALTER TYPE analytics.notify_trigger_mode OWNER TO senslog;
- create table analytics.sensor_to_unit (
- id SERIAL PRIMARY KEY NOT NULL,
- unit_id BIGINT NOT NULL,
- sensor_id BIGINT NOT NULL,
- name VARCHAR(200) NOT NULL,
- last_observation TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT to_timestamp(0),
- UNIQUE (unit_id, sensor_id)
- );
- alter table analytics.sensor_to_unit OWNER TO senslog;
- create table analytics.analytic_group (
- id SERIAL PRIMARY KEY NOT NULL,
- name VARCHAR(200) NOT NULL DEFAULT 'no_name',
- time_interval INTEGER NOT NULL, -- interval in seconds
- persistence BOOLEAN NOT NULL,
- collector_type analytics.collector_type NOT NULL,
- CHECK ( time_interval > 0 )
- );
- alter table analytics.analytic_group OWNER TO senslog;
- create table analytics.record (
- id SERIAL PRIMARY KEY NOT NULL,
- analytic_group_id INTEGER NOT NULL,
- attribute_type analytics.attribute_type NOT NULL,
- calculated_value DOUBLE PRECISION NOT NULL,
- time_interval INTEGER NOT NULL, -- interval in seconds
- time_stamp TIMESTAMP WITH TIME ZONE NOT NULL,
- time_created TIMESTAMP WITH TIME ZONE DEFAULT now() NOT NULL,
- UNIQUE (analytic_group_id, attribute_type, time_stamp)
- );
- alter table analytics.record OWNER TO senslog;
- create table analytics.threshold (
- id SERIAL PRIMARY KEY NOT NULL,
- enable BOOLEAN NOT NULL,
- enable_alert BOOLEAN NOT NULL,
- enable_process BOOLEAN NOT NULL,
- custom_alert_message TEXT
- );
- alter table analytics.threshold OWNER TO senslog;
- create table analytics.threshold_dimension (
- id SERIAL PRIMARY KEY NOT NULL,
- attribute_type analytics.attribute_type NOT NULL,
- notify_trigger_mode analytics.notify_trigger_mode NOT NULL,
- threshold_id INTEGER NOT NULL REFERENCES analytics.threshold(id),
- UNIQUE (attribute_type, threshold_id)
- );
- alter table analytics.threshold_dimension OWNER TO senslog;
- create table analytics.threshold_dimension_rule (
- id SERIAL PRIMARY KEY NOT NULL,
- threshold_dimension_id INTEGER NOT NULL REFERENCES analytics.threshold_dimension(id),
- comparison_operator analytics.comparison_operator NOT NULL,
- value DOUBLE PRECISION NOT NULL
- );
- alter table analytics.threshold_dimension_rule OWNER TO senslog;
- create table analytics.sensor_to_unit_to_threshold (
- sensor_to_unit_id INTEGER REFERENCES analytics.sensor_to_unit(id),
- threshold_id INTEGER REFERENCES analytics.threshold(id),
- UNIQUE (sensor_to_unit_id, threshold_id)
- );
- alter table analytics.sensor_to_unit_to_threshold OWNER TO senslog;
- create table analytics.sensor_to_unit_to_analytic_group (
- sensor_to_unit_id INTEGER REFERENCES analytics.sensor_to_unit(id),
- analytic_group_id INTEGER REFERENCES analytics.analytic_group(id),
- time_created TIMESTAMP WITH TIME ZONE DEFAULT now() NOT NULL,
- UNIQUE (sensor_to_unit_id, analytic_group_id)
- );
- alter table analytics.sensor_to_unit_to_analytic_group OWNER TO senslog;
- create table analytics.analytic_group_to_threshold (
- analytic_group_id INTEGER REFERENCES analytics.analytic_group(id),
- threshold_id INTEGER REFERENCES analytics.threshold(id),
- UNIQUE (analytic_group_id, threshold_id)
- );
- alter table analytics.analytic_group_to_threshold OWNER TO senslog;
|