Описание системных таблиц
Данный раздел описывает таблицы Picodata, используемые для служебных нужд. Перечисленные системные таблицы являются глобальными.
Описание схемы данных
_pico_table
Содержит информацию о пользовательских таблицах Picodata.
Глобальные таблицы реплицируются на каждый инстанс в кластере.
В шардированных таблицах весь набор данных разбивается на сегменты —
виртуальные бакеты (bucket),
пронумерованные bucket_id
. Каждый репликасет хранит свой набор
бакетов. Данные реплицируются между инстансами, принадлежащими одному
репликасету.
Поля:
id
: (unsigned)name
: (string) название таблицыdistribution
: (array) определяет распределение данных в кластере. Возможны следующие варианты:["global"]
— глобальная таблица["sharded_implicitly", sharding_key, sharding_fn]
— шардированная таблица,bucket_id
вычисляется автоматически какsharding_fn(sharding_key)
sharding_fn
: (string) функция шардирования, на сегодняшний день поддерживается только"crc32"
sharding_key
: (array) ключ шардирования — массив полей[field,...]
, по которым вычисляетсяbucket_id
["sharded_by_field", field]
— шардированная таблица, в качествеbucket_id
используется значение поляfield
format
: (array,[[field_name, field_type, is_nullable]]
) массив с описанием формата полей таблицы:field_name
: (string) название поляfield_type
: (string,"any" | "unsigned" | "string" | "number" | "double" | "integer" | "boolean" | "varbinary" | "scalar" | "decimal" | "uuid" | "datetime" | "interval" | "array" | "map"
) тип хранимого значенияis_nullable
: (boolean) возможность хранить значениеNULL
schema_version
: (unsigned) версия схемы, в которой таблица была создана. Используется при восстановлении из снапшота для корректной обработки шардированных таблицoperable
: (boolean) признак доступности таблицы на запись. Используется в процессе создания и удаления таблицengine
: (string,"memtx" | "vinyl"
) движок хранения
Индексы:
id
(unique), parts:[id]
name
(unique), parts:[name]
_pico_index
Содержит информацию об индексах БД.
Поля:
table_id
: (unsigned)id
: (unsigned)name
: (string)local
: (boolean)parts
: (array)schema_version
: (unsigned)operable
: (boolean)unique
: (boolean)
Индексы:
id
(unique), parts:[table_id, id]
name
(unique), parts:[table_id, name]
Описание свойств кластера
_pico_property
Содержит свойства кластера в формате «ключ—значение».
Поля:
key
(string)value
(any)
Индексы:
key
(unique), parts:[key]
Описание топологии кластера
_pico_peer_address
Содержит адреса всех пиров кластера.
Поля:
raft_id
(unsigned)address
(string)
Индексы:
raft_id
(unique), parts:[raft_id]
_pico_instance
Содержит информацию обо всех инстансах кластера.
Поля:
instance_id
(string)instance_uuid
(string)raft_id
(unsigned)replicaset_id
(string)replicaset_uuid
(string)current_grade
(array)target_grade
(array)failure_domain
(map)tier
(string)
Индексы:
instance_id
(unique), parts:[instance_id]
raft_id
(unique), parts:[raft_id]
replicaset_id
(non-unique), parts:[replicaset_id]
_pico_replicaset
Содержит информацию обо всех репликасетах кластера.
Поля:
replicaset_id
(string)replicaset_uuid
(string)current_master_id
(string)target_master_id
(string)tier
(string)weight
(number)weight_origin
(string)state
(string,"ready" | "not-ready"
)
Индексы:
replicaset_id
(unique), parts:[replicaset_id]
_pico_tier
Содержит информацию обо всех тирах в кластере.
Поля:
name
(string)replication_factor
(unsigned)
Индексы:
name
(unique), parts:[name]
Описание управления доступом
_pico_user
Содержит информацию обо всех пользователях Picodata.
Поля:
id
(unsigned)name
(string)schema_version
(unsigned)auth
(array)
Индексы:
id
(unique), parts:[id]
name
(unique), parts:[name]
_pico_privilege
Содержит информацию обо всех привилегиях, предоставленных пользователям Picodata.
Поля:
grantor_id
(unsigned)grantee_id
(unsigned)object_type
(string)object_id
(integer)privilege
(string)schema_version
(unsigned)
Индексы:
primary
(unique), parts:[grantee_id, object_type, object_id, privilege]
object
(unique), parts:[object_type, object_id]
_pico_role
Содержит информацию обо всех ролях Picodata.
Поля:
id
(unsigned)name
(string)schema_version
(unsigned)
Индексы:
id
(unique), parts:[id]
name
(unique), parts:[name]