puppet-monasca/files/vertica/mon_metrics_schema.sql

153 lines
3.7 KiB
SQL

DROP SCHEMA MonMetrics CASCADE;
CREATE SCHEMA MonMetrics;
CREATE TABLE MonMetrics.Measurements (
definition_dimensions_id BINARY(20) NOT NULL,
time_stamp TIMESTAMP NOT NULL,
value FLOAT NOT NULL,
value_meta VARCHAR(8192)
) PARTITION BY EXTRACT('year' FROM time_stamp)*100 + EXTRACT('month' FROM time_stamp);
CREATE TABLE MonMetrics.Definitions(
id BINARY(20) NOT NULL,
name VARCHAR(255) NOT NULL,
tenant_id VARCHAR(255) NOT NULL,
region VARCHAR(255) NOT NULL,
PRIMARY KEY(id),
CONSTRAINT MetricsDefinitionsConstraint UNIQUE(name, tenant_id, region)
);
CREATE TABLE MonMetrics.Dimensions (
dimension_set_id BINARY(20) NOT NULL,
name VARCHAR(255) NOT NULL,
value VARCHAR(255) NOT NULL,
CONSTRAINT MetricsDimensionsConstraint UNIQUE(dimension_set_id, name, value)
);
CREATE TABLE MonMetrics.DefinitionDimensions (
id BINARY(20) NOT NULL,
definition_id BINARY(20) NOT NULL,
dimension_set_id BINARY(20) NOT NULL,
CONSTRAINT MetricsDefinitionDimensionsConstraint UNIQUE(definition_id, dimension_set_id)
);
-- Projections
-- ** These are for a single node system with no k safety
CREATE PROJECTION Measurements_DBD_1_rep_MonMetrics /*+createtype(D)*/
(
definition_dimensions_id ENCODING RLE,
time_stamp ENCODING COMMONDELTA_COMP,
value ENCODING AUTO,
value_meta ENCODING AUTO
)
AS
SELECT definition_dimensions_id,
time_stamp,
value,
value_meta
FROM MonMetrics.Measurements
ORDER BY definition_dimensions_id,
time_stamp
UNSEGMENTED ALL NODES;
CREATE PROJECTION Measurements_time_order_rep_MonMetrics /*+createtype(D)*/
(
definition_dimensions_id ENCODING RLE,
time_stamp ENCODING COMMONDELTA_COMP,
value ENCODING AUTO,
value_meta ENCODING AUTO
)
AS
SELECT definition_dimensions_id,
time_stamp,
value,
value_meta
FROM MonMetrics.Measurements
ORDER BY time_stamp,
definition_dimensions_id
UNSEGMENTED ALL NODES;
CREATE PROJECTION Definitions_DBD_2_rep_MonMetrics /*+createtype(D)*/
(
id ENCODING AUTO,
name ENCODING AUTO,
tenant_id ENCODING RLE,
region ENCODING RLE
)
AS
SELECT id,
name,
tenant_id,
region
FROM MonMetrics.Definitions
ORDER BY region,
tenant_id,
name
UNSEGMENTED ALL NODES;
CREATE PROJECTION Dimensions_DBD_3_rep_MonMetrics /*+createtype(D)*/
(
dimension_set_id ENCODING AUTO,
name ENCODING RLE,
value ENCODING AUTO
)
AS
SELECT dimension_set_id,
name,
value
FROM MonMetrics.Dimensions
ORDER BY name,
dimension_set_id,
value
UNSEGMENTED ALL NODES;
CREATE PROJECTION MonMetrics.Dimensions_rep_set_id /*+createtype(D)*/
(
dimension_set_id,
name ENCODING RLE,
value
)
AS
SELECT Dimensions.dimension_set_id,
Dimensions.name,
Dimensions.value
FROM MonMetrics.Dimensions
ORDER BY Dimensions.dimension_set_id,
Dimensions.name,
Dimensions.value
UNSEGMENTED ALL NODES;
CREATE PROJECTION DefinitionDimensions_DBD_4_rep_MonMetrics /*+createtype(D)*/
(
id ENCODING AUTO,
definition_id ENCODING RLE,
dimension_set_id ENCODING AUTO
)
AS
SELECT id,
definition_id,
dimension_set_id
FROM MonMetrics.DefinitionDimensions
ORDER BY definition_id,
dimension_set_id
UNSEGMENTED ALL NODES;
CREATE PROJECTION MonMetrics.DefinitionDimensions_rep_set_id /*+createtype(D)*/
(
id ENCODING AUTO,
definition_id ENCODING AUTO,
dimension_set_id ENCODING RLE
)
AS
SELECT id,
definition_id,
dimension_set_id
FROM MonMetrics.DefinitionDimensions
ORDER BY dimension_set_id,
definition_id
UNSEGMENTED ALL NODES;
select refresh('MonMetrics.Measurements, MonMetrics.Definitions, MonMetrics.Dimensions, MonMetrics.DefinitionDimensions');