Описание системных таблиц¶
Данный раздел описывает таблицы Picodata, используемые для служебных нужд. Перечисленные системные таблицы являются глобальными.
По умолчанию доступ к системным таблицам запрещен всем пользователям
СУБД, кроме admin и pico_service.
Описание соответствует версии Picodata 24.6.1.
Описание схемы данных¶
_pico_table¶
Содержит информацию о пользовательских таблицах Picodata.
Глобальные таблицы реплицируются на каждый инстанс в кластере.
В шардированных таблицах весь набор данных разбивается на сегменты —
виртуальные бакеты (bucket),
пронумерованные bucket_id. Каждый репликасет хранит свой набор
бакетов. Данные реплицируются между инстансами, принадлежащими одному
репликасету.
Поля:
- id: (unsigned)
- name: (string) название таблицы
- distribution: (map) определяет распределение данных в кластере. Возможны следующие варианты:- {"Global": null}— глобальная таблица
- {"ShardedImplicitly": [sharding_key, sharding_fn]}— шардированная таблица,- bucket_idвычисляется автоматически как- sharding_fn(sharding_key)- sharding_fn: (string) функция шардирования, на сегодняшний день поддерживается только- "murmur3"
- sharding_key: (array) ключ шардирования — массив полей- [field, ...], по которым вычисляется- bucket_id
 
- {"ShardedByField": [field]}— шардированная таблица, в качестве- bucket_idиспользуется значение поля- field(ровно одного)
 
- format: (array,- [{"name": ..., "field_type": ..., "is_nullable": ...}]) массив словарей с описанием формата полей таблицы:- 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) создатель таблицы
- description: (string) описание таблицы
Индексы:
- _pico_table_id(unique), parts:- [id]
- _pico_table_name(unique), parts:- [name]
- _pico_table_owner_id(non-unique), parts:- [owner]
_pico_index¶
Содержит информацию об индексах БД.
Поля:
- table_id: (unsigned) идентификатор таблицы, к которой относится индекс
- id: (unsigned) идентификатор индекса, уникальный в пределах таблицы
- name: (string) название индекса
- type: (string) тип индекса, определяющий способ хранения и поиска данных в индексе — см. CREATE INDEX ~ Типы индексов
- opts: (array) массив параметров ключ-значение, определяющих поведение индекса:- {"unique": true}— индекс должен быть уникальным
- {"unique": false}— допускается наличие дублирующихся значений в полях
 
- parts: (array) массив частей индекса, где каждая часть представляет собой поле или набор полей таблицы, по которым строится индекс
- operable: (boolean) признак доступности индекса для использования. Возможные значения:- true— индекс доступен
- false— индекс находится в процессе создания или удаления
 
- schema_version: (unsigned) версия схемы, в которой индекс был создан
Индексы:
- _pico_index_id(unique), parts:- [table_id, id]
- _pico_index_name(unique), parts:- [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) — идентификатор владельца (создателя) хранимой процедуры
Индексы:
- _pico_routine_id(unique), parts:- [id]
- _pico_routine_name(unique), parts:- [name]
- _pico_routine_owner_id(non-unique), parts:- [owner]
Описание свойств кластера¶
_pico_property¶
Содержит свойства кластера в формате «ключ—значение».
Поля:
- key: (string)
- value: (any)
Индексы:
- _pico_property_key(unique), parts:- [key]
_pico_db_config¶
Хранит параметры (и только их), которые можно менять с помощью ALTER SYSTEM.
Поля:
- key: (string)
- value: (any)
Индексы:
- _pico_db_config_key(unique), parts:- [key]
Описание топологии кластера¶
_pico_peer_address¶
Содержит адреса всех пиров кластера.
Поля:
- raft_id: (unsigned)
- address: (string)
Индексы:
- _pico_peer_address_raft_id(unique), parts:- [raft_id]
_pico_instance¶
Содержит информацию обо всех инстансах кластера.
Поля:
- name: (string)
- uuid: (string)
- raft_id: (unsigned)
- replicaset_name: (string)
- replicaset_uuid: (string)
- current_state: (array)
- target_state: (array)
- failure_domain: (map)
- tier: (string)
Индексы:
- _pico_instance_name(unique), parts:- [name]
- _pico_instance_raft_id(unique), parts:- [raft_id]
- _pico_instance_replicaset_name(non-unique), parts:- [replicaset_name]
_pico_replicaset¶
Содержит информацию обо всех репликасетах кластера.
Поля:
- name: (string)
- uuid: (string)
- current_master_name: (string)
- target_master_name: (string)
- tier: (string)
- weight: (double)
- weight_origin: (string)
- state: (string,- "ready" | "not-ready")
- current_config_version: (unsigned)
- target_config_version: (unsigned)
- promotion_vclock: (map)
Индексы:
- _pico_replicaset_name(unique), parts:- [name]
- _pico_replicaset_uuid(unique), parts:- [uuid]
_pico_tier¶
Содержит информацию обо всех тирах в кластере.
Поля:
- name: (string)
- replication_factor: (unsigned)
- can_vote: (boolean)
- current_vshard_config_version: (unsigned)
- target_vshard_config_version: (unsigned)
- vshard_bootstrapped: (boolean)
Индексы:
- _pico_tier_name(unique), parts:- [name]
Описание управления доступом¶
_pico_user¶
Содержит информацию обо всех пользователях и ролях Picodata.
Поля:
- id: (unsigned)
- name: (string)
- schema_version: (unsigned)
- auth: (array)
- owner: (unsigned)
- type: (string)
Индексы:
- _pico_user_id(unique), parts:- [id]
- _pico_user_name(unique), parts:- [name]
- _pico_user_owner_id(non-unique), parts:- [owner]
_pico_privilege¶
Содержит информацию обо всех привилегиях, предоставленных пользователям Picodata.
Поля:
- grantor_id: (unsigned)
- grantee_id: (unsigned)
- privilege: (string)
- object_type: (string)
- object_id: (integer)
- schema_version: (unsigned)
Индексы:
- _pico_privilege_primary(unique), parts:- [grantee_id, object_type, object_id, privilege]
- _pico_privilege_object(non-unique), parts:- [object_type, object_id]
Описание плагинов¶
Содержит информацию о плагинах Picodata.
_pico_plugin¶
Поля:
- name: (string)
- enabled: (boolean)
- services: (array)
- version: (string)
- description: (string)
- migration_list: (array)
Индексы:
- _pico_plugin_name(unique), parts:- [name, version]
_pico_service¶
Содержит информацию о топологии сервисов, включенных в плагины Picodata.
Поля:
- plugin_name: (string)
- name: (string)
- version: (string)
- tiers: (array)
- description: (string)
Индексы:
- _pico_service_name(unique), parts:- [plugin_name, name, version]
_pico_service_route¶
Содержит информацию о маршрутизации между сервисами Picodata.
Поля:
- plugin_name: (string)
- plugin_version: (string)
- service_name: (string)
- instance_name: (string)
- poison: (boolean)
Индексы:
- _pico_service_routing_key(unique), parts:- [plugin_name, plugin_version, service_name, instance_name]
_pico_plugin_migration¶
Содержит информацию о миграциях плагинов Picodata.
Поля:
- plugin_name: (string)
- migration_file: (string)
- hash: (string)
Индексы:
- _pico_plugin_migration_primary_key(unique), parts:- [plugin_name, migration_file]
_pico_plugin_config¶
Содержит информацию о конфигурациях плагинов Picodata.
Поля:
- plugin: (string)
- version: (string)
- entity: (string)
- key: (string)
- value: (any)
Индексы:
- _pico_plugin_config_pk(unique), parts:- [plugin, version, entity, key]