blob: 9cfa4413a485a9712274829d0c59bcc1f09057a0 [file] [log] [blame]
-- Licensed to the Apache Software Foundation (ASF) under one or more
-- contributor license agreements. See the NOTICE file distributed with
-- this work for additional information regarding copyright ownership.
-- The ASF licenses this file to You under the Apache License, Version 2.0
-- (the "License"); you may not use this file except in compliance with
-- the License. You may obtain a copy of the License at
-- http://www.apache.org/licenses/LICENSE-2.0
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
DROP TABLE IF EXISTS `alembic_version`;
CREATE TABLE `alembic_version` (
`version_num` VARCHAR(32) NOT NULL,
CONSTRAINT `alembic_version_pkc` PRIMARY KEY (`version_num`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `experiments`;
CREATE TABLE `experiments` (
`experiment_id` INTEGER NOT NULL,
`name` VARCHAR(256) NOT NULL,
`artifact_location` VARCHAR(256),
`lifecycle_stage` VARCHAR(32),
CONSTRAINT `experiment_pk` PRIMARY KEY (`experiment_id`),
UNIQUE (`name`),
CONSTRAINT `experiments_lifecycle_stage` CHECK (`lifecycle_stage` IN ('active', 'deleted'))
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `registered_models`;
CREATE TABLE `registered_models` (
`name` VARCHAR(256) NOT NULL,
`creation_time` BIGINT,
`last_updated_time` BIGINT,
`description` VARCHAR(5000),
CONSTRAINT `registered_model_pk` PRIMARY KEY (`name`),
UNIQUE (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `experiment_tags`;
CREATE TABLE `experiment_tags` (
`key` VARCHAR(250) NOT NULL,
`value` VARCHAR(5000),
`experiment_id` INTEGER NOT NULL,
CONSTRAINT `experiment_tag_pk` PRIMARY KEY (`key`, `experiment_id`),
FOREIGN KEY(`experiment_id`) REFERENCES `experiments` (`experiment_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `model_versions`;
CREATE TABLE `model_versions` (
`name` VARCHAR(256) NOT NULL,
`version` INTEGER NOT NULL,
`creation_time` BIGINT,
`last_updated_time` BIGINT,
`description` VARCHAR(5000),
`user_id` VARCHAR(256),
`current_stage` VARCHAR(20),
`source` VARCHAR(500),
`run_id` VARCHAR(32),
`status` VARCHAR(20),
`status_message` VARCHAR(500),
`run_link` VARCHAR(500),
CONSTRAINT `model_version_pk` PRIMARY KEY (`name`, `version`),
FOREIGN KEY(`name`) REFERENCES `registered_models` (`name`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `registered_model_tags`;
CREATE TABLE `registered_model_tags` (
`key` VARCHAR(250) NOT NULL,
`value` VARCHAR(5000),
`name` VARCHAR(256) NOT NULL,
CONSTRAINT `registered_model_tag_pk` PRIMARY KEY (`key`, `name`),
FOREIGN KEY(`name`) REFERENCES `registered_models` (`name`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `runs`;
CREATE TABLE runs (
`run_uuid` VARCHAR(32) NOT NULL,
`name` VARCHAR(250),
`source_type` VARCHAR(20),
`source_name` VARCHAR(500),
`entry_point_name` VARCHAR(50),
`user_id` VARCHAR(256),
`status` VARCHAR(9),
`start_time` BIGINT,
`end_time` BIGINT,
`source_version` VARCHAR(50),
`lifecycle_stage` VARCHAR(20),
`artifact_uri` VARCHAR(200),
`experiment_id` INTEGER,
CONSTRAINT `run_pk` PRIMARY KEY (`run_uuid`),
FOREIGN KEY(`experiment_id`) REFERENCES `experiments` (`experiment_id`),
CONSTRAINT `source_type` CHECK (`source_type` IN ('NOTEBOOK', 'JOB', 'LOCAL', 'UNKNOWN', 'PROJECT')),
CONSTRAINT `runs_lifecycle_stage` CHECK (`lifecycle_stage` IN ('active', 'deleted')),
CHECK (status IN ('SCHEDULED', 'FAILED', 'FINISHED', 'RUNNING', 'KILLED'))
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `latest_metrics`;
CREATE TABLE `latest_metrics` (
`key` VARCHAR(250) NOT NULL,
`value` FLOAT NOT NULL,
`timestamp` BIGINT,
`step` BIGINT NOT NULL,
`is_nan` BOOLEAN NOT NULL,
`run_uuid` VARCHAR(32) NOT NULL,
CONSTRAINT `latest_metric_pk` PRIMARY KEY (`key`, `run_uuid`),
FOREIGN KEY(`run_uuid`) REFERENCES `runs` (`run_uuid`),
CHECK (`is_nan` IN (0, 1))
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `metrics`;
CREATE TABLE `metrics` (
`key` VARCHAR(250) NOT NULL,
`value` FLOAT NOT NULL,
`timestamp` BIGINT NOT NULL,
`run_uuid` VARCHAR(32) NOT NULL,
`step` BIGINT DEFAULT '0' NOT NULL,
`is_nan` BOOLEAN DEFAULT '0' NOT NULL,
CONSTRAINT `metric_pk` PRIMARY KEY (`key`, `timestamp`, `step`, `run_uuid`, `value`, `is_nan`),
FOREIGN KEY(`run_uuid`) REFERENCES `runs` (`run_uuid`),
CHECK (`is_nan` IN (0, 1))
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `model_version_tags`;
CREATE TABLE `model_version_tags` (
`key` VARCHAR(250) NOT NULL,
`value` VARCHAR(5000),
`name` VARCHAR(256) NOT NULL,
`version` INTEGER NOT NULL,
CONSTRAINT `model_version_tag_pk` PRIMARY KEY (`key`, `name`, `version`),
FOREIGN KEY(`name`, version) REFERENCES `model_versions` (`name`, `version`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `params`;
CREATE TABLE `params` (
`key` VARCHAR(250) NOT NULL,
`value` VARCHAR(250) NOT NULL,
`run_uuid` VARCHAR(32) NOT NULL,
CONSTRAINT `param_pk` PRIMARY KEY (`key`, `run_uuid`),
FOREIGN KEY(`run_uuid`) REFERENCES runs (`run_uuid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `tags`;
CREATE TABLE `tags` (
`key` VARCHAR(250) NOT NULL,
`value` VARCHAR(5000),
`run_uuid` VARCHAR(32) NOT NULL,
CONSTRAINT `tag_pk` PRIMARY KEY (`key`, `run_uuid`),
FOREIGN KEY(`run_uuid`) REFERENCES `runs` (`run_uuid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;