Описание системных таблиц¶
Данный раздел описывает таблицы Picodata, используемые для служебных нужд. Перечисленные системные таблицы являются глобальными.
Описание соответствует версии Picodata 24.2.4
.
Описание схемы данных¶
_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"
) движок храненияowner
: (unsigned) создатель таблицы
Индексы:
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_routine¶
Содержит информацию о процедурах Picodata.
Поля:
id
: (unsigned) — идентификатор (типu32
, первичный ключ)name
: (string) — имя (уникальный индекс)kind
: (string) — тип хранимого объекта: функция или процедураparams
: (array) — таблица с типами параметров объекта, в виде[ {type: 'int', mode: 'in', default: 42}, {type: 'text'} ]
.returns
: (array) — тип возвращаемого результата. Для процедур это пустой массив[]
, для функций — массив типов в возвращаемом кортежеlanguage
: (string) — язык тела процедуры (например,SQL
)body
: (string) — тело основной части хранимой процедурыsecurity
: (string) — режим безопасности, определяющий, от чьего имени будет исполнена процедура (invoker
— от имени вызывающего,definer
— от имени стороннего пользователя)operable
: (boolean) — признак доступности процедуры (дляprepare
— false, дляcommit
— true)schema_version
: (unsigned) — версия схемы данных в Raft на момент изменения хранимой процедурыowner
: (unsigned) — идентификатор владельца (создателя) хранимой процедуры
Индексы:
id
(unique), parts:[id]
name
(unique), parts:[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)owner
: (unsigned)type
: (string)
Индексы:
id
(unique), parts:[id]
name
(unique), parts:[name]
_pico_privilege¶
Содержит информацию обо всех привилегиях, предоставленных пользователям Picodata.
Поля:
privilege
: (string)object_type
: (string)object_id
: (integer)grantee_id
: (unsigned)grantor_id
: (unsigned)schema_version
: (unsigned)
Индексы:
primary
(unique), parts:[grantee_id, object_type, object_id, privilege]
object
(non-unique), parts:[object_type, object_id]