Added useful file

This commit is contained in:
Luca Frosini 2024-04-23 12:18:43 +02:00
parent ff4d7502d1
commit 5861260245
1 changed files with 139 additions and 0 deletions

View File

@ -0,0 +1,139 @@
CREATE EXTENSION IF NOT EXISTS timescaledb;
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE TYPE aggregation_state AS ENUM ('RESTARTED', 'STARTED', 'AGGREGATED', 'DELETED', 'ADDED', 'COMPLETED');
CREATE TYPE aggregation_type AS ENUM ('DAILY', 'MONTHLY', 'YEARLY');
CREATE TABLE "aggregation_status"(
id UUID NOT NULL PRIMARY KEY DEFAULT uuid_generate_v4 (),
record_type TEXT NOT NULL,
aggregation_type aggregation_type NOT NULL,
aggregation_start_date TIMESTAMP WITH TIME ZONE NOT NULL,
aggregation_end_date TIMESTAMP WITH TIME ZONE NOT NULL,
original_records_number NUMERIC NOT NULL,
aggregated_records_number NUMERIC NOT NULL,
recovered_records_number NUMERIC NOT NULL,
malformed_records_number NUMERIC NOT NULL DEFAULT 0,
percentage NUMERIC NOT NULL,
restart_from NUMERIC NOT NULL DEFAULT 0,
context TEXT,
current_aggregation_state aggregation_state NOT NULL,
last_update_time TIMESTAMP WITH TIME ZONE NOT NULL,
previous UUID REFERENCES aggregation_status (id) DEFAULT NULL ON DELETE SET NULL
);
CREATE TABLE "aggregation_status_event"(
aggregation_state aggregation_state NOT NULL,
start_time TIMESTAMP WITH TIME ZONE NOT NULL,
end_time TIMESTAMP WITH TIME ZONE NOT NULL,
aggregation_status UUID REFERENCES aggregation_status (id) ON DELETE CASCADE,
UNIQUE (aggregation_state, start_time, end_time, aggregation_status)
);
CREATE TYPE operation_result AS ENUM ('SUCCESS', 'FAILED');
CREATE TABLE "job_usage_record"(
id UUID NOT NULL PRIMARY KEY,
consumer_id TEXT NOT NULL,
creation_time TIMESTAMP WITH TIME ZONE NOT NULL,
scope TEXT NOT NULL,
operation_result operation_result NOT NULL,
caller_qualifier TEXT NOT NULL DEFAULT 'TOKEN',
host TEXT NOT NULL,
service_class TEXT NOT NULL,
service_name TEXT NOT NULL,
job_name TEXT NOT NULL,
duration NUMERIC NOT NULL,
max_invocation_time NUMERIC NOT NULL,
min_invocation_time NUMERIC NOT NULL,
operation_count INTEGER NOT NULL DEFAULT 1,
aggregated BOOLEAN NOT NULL DEFAULT true,
start_time TIMESTAMP WITH TIME ZONE NOT NULL,
end_time TIMESTAMP WITH TIME ZONE NOT NULL
);
CREATE TABLE "portlet_usage_record"(
id UUID NOT NULL PRIMARY KEY,
consumer_id TEXT NOT NULL,
creation_time TIMESTAMP WITH TIME ZONE NOT NULL,
scope TEXT NOT NULL,
operation_result operation_result NOT NULL,
caller_qualifier TEXT NOT NULL DEFAULT 'TOKEN',
portlet_id TEXT NOT NULL,
operation_id TEXT NOT NULL,
operation_count INTEGER NOT NULL DEFAULT 1,
aggregated BOOLEAN NOT NULL DEFAULT true,
start_time TIMESTAMP WITH TIME ZONE NOT NULL,
end_time TIMESTAMP WITH TIME ZONE NOT NULL
);
CREATE TABLE "service_usage_record"(
id UUID NOT NULL PRIMARY KEY,
consumer_id TEXT NOT NULL,
creation_time TIMESTAMP WITH TIME ZONE NOT NULL,
scope TEXT NOT NULL,
operation_result operation_result NOT NULL,
caller_qualifier TEXT NOT NULL DEFAULT 'TOKEN',
caller_host TEXT NOT NULL,
host TEXT NOT NULL,
service_class TEXT NOT NULL,
service_name TEXT NOT NULL,
called_method TEXT NOT NULL,
duration NUMERIC NOT NULL,
max_invocation_time NUMERIC NOT NULL,
min_invocation_time NUMERIC NOT NULL,
operation_count INTEGER NOT NULL DEFAULT 1,
aggregated BOOLEAN NOT NULL DEFAULT true,
start_time TIMESTAMP WITH TIME ZONE NOT NULL,
end_time TIMESTAMP WITH TIME ZONE NOT NULL
);
CREATE TYPE data_type AS ENUM ('STORAGE', 'TREE', 'GEO', 'DATABASE', 'LOCAL', 'OTHER', 'JUPYTER', 'KUBERNETES');
CREATE TABLE "storage_status_record"(
id UUID NOT NULL PRIMARY KEY,
consumer_id TEXT NOT NULL,
creation_time TIMESTAMP WITH TIME ZONE NOT NULL,
scope TEXT NOT NULL,
operation_result operation_result NOT NULL,
data_type data_type NOT NULL,
data_volume NUMERIC NOT NULL,
data_count NUMERIC NOT NULL,
provider_uri TEXT DEFAULT 'data.d4science.org',
operation_count INTEGER NOT NULL DEFAULT 1,
aggregated BOOLEAN NOT NULL DEFAULT true,
start_time TIMESTAMP WITH TIME ZONE NOT NULL,
end_time TIMESTAMP WITH TIME ZONE NOT NULL,
-- Deprecated and to be removed
provider_id TEXT DEFAULT 'data.d4science.org',
data_service_id TEXT DEFAULT 'NOT_NEEDED',
data_service_class TEXT DEFAULT 'NOT_NEEDED',
data_service_name TEXT DEFAULT 'NOT_NEEDED'
);
CREATE TYPE operation_type AS ENUM ('CREATE', 'READ', 'UPDATE', 'DELETE');
CREATE TABLE "storage_usage_record"(
id UUID NOT NULL PRIMARY KEY,
consumer_id TEXT NOT NULL,
creation_time TIMESTAMP WITH TIME ZONE NOT NULL,
scope TEXT NOT NULL,
operation_result operation_result NOT NULL,
resource_owner TEXT NOT NULL,
provider_uri TEXT NOT NULL,
operation_type operation_type NOT NULL,
data_type data_type NOT NULL,
data_volume NUMERIC NOT NULL,
operation_count INTEGER NOT NULL DEFAULT 1,
aggregated BOOLEAN NOT NULL DEFAULT true,
start_time TIMESTAMP WITH TIME ZONE NOT NULL,
end_time TIMESTAMP WITH TIME ZONE NOT NULL,
-- Deprecated and to be removed
resource_scope TEXT DEFAULT 'NOT_NEEDED',
resource_uri TEXT DEFAULT 'NOT_NEEDED'
);