mirror of
https://gitee.com/milvus-io/milvus.git
synced 2024-11-30 10:59:32 +08:00
b79687687d
Signed-off-by: yun.zhang <yun.zhang@zilliz.com> Signed-off-by: yun.zhang <yun.zhang@zilliz.com>
270 lines
11 KiB
SQL
270 lines
11 KiB
SQL
-- create database
|
|
CREATE DATABASE if not exists milvus_meta CHARACTER SET utf8mb4;
|
|
|
|
/*
|
|
create tables script
|
|
|
|
Notices:
|
|
1. id, tenant_id, is_deleted, created_at, updated_at are 5 common columns for all collections.
|
|
2. Query index in community version CANNOT includes tenant_id, since tenant_id is not existed and will miss query index.
|
|
*/
|
|
|
|
-- collections
|
|
CREATE TABLE if not exists milvus_meta.collections (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
tenant_id VARCHAR(128) DEFAULT NULL,
|
|
collection_id BIGINT NOT NULL,
|
|
collection_name VARCHAR(256),
|
|
description VARCHAR(2048) DEFAULT NULL,
|
|
auto_id BOOL DEFAULT FALSE,
|
|
shards_num INT,
|
|
start_position TEXT,
|
|
consistency_level INT,
|
|
status INT NOT NULL,
|
|
properties VARCHAR(512),
|
|
ts BIGINT UNSIGNED DEFAULT 0,
|
|
is_deleted BOOL DEFAULT FALSE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update current_timestamp,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_tenant_id_collection_id_ts (tenant_id, collection_id, ts)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- collection aliases
|
|
CREATE TABLE if not exists milvus_meta.collection_aliases (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
tenant_id VARCHAR(128) DEFAULT NULL,
|
|
collection_id BIGINT NOT NULL,
|
|
collection_alias VARCHAR(128),
|
|
ts BIGINT UNSIGNED DEFAULT 0,
|
|
is_deleted BOOL DEFAULT FALSE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update current_timestamp,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_tenant_id_collection_alias_ts (tenant_id, collection_alias, ts),
|
|
INDEX idx_tenant_id_collection_id_ts (tenant_id, collection_id, ts)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- channels
|
|
CREATE TABLE if not exists milvus_meta.collection_channels (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
tenant_id VARCHAR(128) DEFAULT NULL,
|
|
collection_id BIGINT NOT NULL,
|
|
virtual_channel_name VARCHAR(256) NOT NULL,
|
|
physical_channel_name VARCHAR(256) NOT NULL,
|
|
removed BOOL DEFAULT FALSE,
|
|
ts BIGINT UNSIGNED DEFAULT 0,
|
|
is_deleted BOOL DEFAULT FALSE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update current_timestamp,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_tenant_id_collection_id_virtual_channel_name_ts (tenant_id, collection_id, virtual_channel_name, ts),
|
|
INDEX idx_tenant_id_collection_id_ts (tenant_id, collection_id, ts)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- fields
|
|
CREATE TABLE if not exists milvus_meta.field_schemas (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
tenant_id VARCHAR(128) DEFAULT NULL,
|
|
field_id BIGINT NOT NULL,
|
|
field_name VARCHAR(256) NOT NULL,
|
|
is_primary_key BOOL NOT NULL,
|
|
description VARCHAR(2048) DEFAULT NULL,
|
|
data_type INT UNSIGNED NOT NULL,
|
|
type_params VARCHAR(2048),
|
|
index_params VARCHAR(2048),
|
|
auto_id BOOL NOT NULL,
|
|
collection_id BIGINT NOT NULL,
|
|
ts BIGINT UNSIGNED DEFAULT 0,
|
|
is_deleted BOOL DEFAULT FALSE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update current_timestamp,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_tenant_id_collection_id_field_name_ts (tenant_id, collection_id, field_name, ts),
|
|
INDEX idx_tenant_id_collection_id_field_id_ts (tenant_id, collection_id, field_id, ts)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- partitions
|
|
CREATE TABLE if not exists milvus_meta.`partitions` (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
tenant_id VARCHAR(128) DEFAULT NULL,
|
|
partition_id BIGINT NOT NULL,
|
|
partition_name VARCHAR(256),
|
|
partition_created_timestamp bigint unsigned,
|
|
collection_id BIGINT NOT NULL,
|
|
status INT NOT NULL,
|
|
ts BIGINT UNSIGNED DEFAULT 0,
|
|
is_deleted BOOL DEFAULT FALSE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update current_timestamp,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_tenant_id_collection_id_partition_name_ts (tenant_id, collection_id, partition_name, ts),
|
|
INDEX idx_tenant_id_collection_id_partition_id_ts (tenant_id, collection_id, partition_id, ts)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- indexes
|
|
CREATE TABLE if not exists milvus_meta.`indexes` (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
tenant_id VARCHAR(128) DEFAULT NULL,
|
|
field_id BIGINT NOT NULL,
|
|
collection_id BIGINT NOT NULL,
|
|
index_id BIGINT NOT NULL,
|
|
index_name VARCHAR(256),
|
|
index_params VARCHAR(2048),
|
|
user_index_params VARCHAR(2048),
|
|
is_auto_index BOOL DEFAULT FALSE,
|
|
create_time bigint unsigned,
|
|
is_deleted BOOL DEFAULT FALSE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update current_timestamp,
|
|
PRIMARY KEY (id),
|
|
INDEX idx_tenant_id_collection_id_index_id (tenant_id, collection_id, index_id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- index file paths
|
|
CREATE TABLE if not exists milvus_meta.index_file_paths (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
tenant_id VARCHAR(128) DEFAULT NULL,
|
|
index_build_id BIGINT NOT NULL,
|
|
index_file_path VARCHAR(256),
|
|
is_deleted BOOL DEFAULT FALSE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update current_timestamp,
|
|
PRIMARY KEY (id),
|
|
INDEX idx_tenant_id_index_build_id (tenant_id, index_build_id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- segments
|
|
CREATE TABLE if not exists milvus_meta.segments (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
tenant_id VARCHAR(128) DEFAULT NULL,
|
|
segment_id BIGINT NOT NULL,
|
|
collection_id BIGINT NOT NULL,
|
|
partition_id BIGINT NOT NULL,
|
|
num_rows BIGINT NOT NULL,
|
|
max_row_num INT COMMENT 'estimate max rows',
|
|
dm_channel VARCHAR(128) NOT NULL,
|
|
dml_position TEXT COMMENT 'checkpoint',
|
|
start_position TEXT,
|
|
compaction_from VARCHAR(4096) COMMENT 'old segment IDs',
|
|
created_by_compaction BOOL,
|
|
segment_state TINYINT UNSIGNED NOT NULL,
|
|
last_expire_time bigint unsigned COMMENT 'segment assignment expiration time',
|
|
dropped_at bigint unsigned,
|
|
is_deleted BOOL DEFAULT FALSE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update current_timestamp,
|
|
PRIMARY KEY (id),
|
|
INDEX idx_tenant_id_collection_id_segment_id (tenant_id, collection_id, segment_id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- segment indexes
|
|
CREATE TABLE if not exists milvus_meta.segment_indexes (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
tenant_id VARCHAR(128) DEFAULT NULL,
|
|
collection_id BIGINT NOT NULL,
|
|
partition_id BIGINT NOT NULL,
|
|
segment_id BIGINT NOT NULL,
|
|
field_id BIGINT NOT NULL,
|
|
index_id BIGINT NOT NULL,
|
|
index_build_id BIGINT,
|
|
enable_index BOOL NOT NULL,
|
|
create_time bigint unsigned,
|
|
index_file_keys VARCHAR(4096),
|
|
index_size BIGINT UNSIGNED,
|
|
`version` INT UNSIGNED,
|
|
is_deleted BOOL DEFAULT FALSE COMMENT 'as mark_deleted',
|
|
recycled BOOL DEFAULT FALSE COMMENT 'binlog files truly deleted',
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update current_timestamp,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_tenant_id_segment_id_index_id (tenant_id, segment_id, index_id),
|
|
INDEX idx_tenant_id_collection_id_segment_id_index_id (tenant_id, collection_id, segment_id, index_id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- binlog files info
|
|
CREATE TABLE if not exists milvus_meta.binlogs (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
tenant_id VARCHAR(128) DEFAULT NULL,
|
|
field_id BIGINT NOT NULL,
|
|
segment_id BIGINT NOT NULL,
|
|
collection_id BIGINT NOT NULL,
|
|
log_type SMALLINT UNSIGNED NOT NULL COMMENT 'binlog、stats binlog、delta binlog',
|
|
num_entries BIGINT,
|
|
timestamp_from BIGINT UNSIGNED,
|
|
timestamp_to BIGINT UNSIGNED,
|
|
log_path VARCHAR(256) NOT NULL,
|
|
log_size BIGINT NOT NULL,
|
|
is_deleted BOOL DEFAULT FALSE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update current_timestamp,
|
|
PRIMARY KEY (id),
|
|
INDEX idx_tenant_id_segment_id_log_type (tenant_id, segment_id, log_type)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- users
|
|
CREATE TABLE if not exists milvus_meta.credential_users (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
tenant_id VARCHAR(128) DEFAULT NULL,
|
|
username VARCHAR(128) NOT NULL,
|
|
encrypted_password VARCHAR(256) NOT NULL,
|
|
is_super BOOL NOT NULL DEFAULT false,
|
|
is_deleted BOOL NOT NULL DEFAULT false,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update current_timestamp,
|
|
PRIMARY KEY (id),
|
|
INDEX idx_tenant_id_username (tenant_id, username)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- role
|
|
CREATE TABLE if not exists milvus_meta.role (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
tenant_id VARCHAR(128) DEFAULT NULL,
|
|
name VARCHAR(128) NOT NULL,
|
|
is_deleted BOOL NOT NULL DEFAULT false,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update current_timestamp,
|
|
INDEX idx_role_tenant_name (tenant_id, name, is_deleted),
|
|
PRIMARY KEY (id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- user-role
|
|
CREATE TABLE if not exists milvus_meta.user_role (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
tenant_id VARCHAR(128) DEFAULT NULL,
|
|
user_id BIGINT NOT NULL,
|
|
role_id BIGINT NOT NULL,
|
|
is_deleted BOOL NOT NULL DEFAULT false,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update current_timestamp,
|
|
INDEX idx_role_mapping_tenant_user_role (tenant_id, user_id, role_id, is_deleted),
|
|
PRIMARY KEY (id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- grant
|
|
CREATE TABLE if not exists milvus_meta.grant (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
tenant_id VARCHAR(128) DEFAULT NULL,
|
|
role_id BIGINT NOT NULL,
|
|
object VARCHAR(128) NOT NULL,
|
|
object_name VARCHAR(128) NOT NULL,
|
|
is_deleted BOOL NOT NULL DEFAULT false,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update current_timestamp,
|
|
INDEX idx_grant_principal_resource_tenant (tenant_id, role_id, object, object_name, is_deleted),
|
|
PRIMARY KEY (id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- grant-id
|
|
CREATE TABLE if not exists milvus_meta.grant_id (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
tenant_id VARCHAR(128) DEFAULT NULL,
|
|
grant_id BIGINT NOT NULL,
|
|
grantor_id BIGINT NOT NULL,
|
|
privilege VARCHAR(128) NOT NULL,
|
|
is_deleted BOOL NOT NULL DEFAULT false,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update current_timestamp,
|
|
INDEX idx_grant_id_tenant_grantor (tenant_id, grant_id, grantor_id, is_deleted),
|
|
PRIMARY KEY (id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |