config/init.php
Содержат подключение к MongoDB + MemCache config
Id конфигурации, передается через URL, типа back.tabix.io/4123/
Тогда подключаем конфигруацию из config/_confID_.php
Каждый сервер БеДе имеет свой текстовый ID
Каждый оправленный запрос получает id + hash_salt, зная их можно шарить запросы
GetTree - список обьектов таблиц/серверов из предустановленного списка доступных DBS GetMetrics - Нужно передавать sid
Tabix/DBS - это список прокси баз CH/MySQL/PG
DBS содержит список коннекторов к каждой БеДе, которые имеют универсальные интерфейсы
Класс DBS/Router определяет с какими базами можно работать Tabix/DBS/QueryExecuter отправляет запросы в конкретную БеДе Tabix/DBS/MetaExecuter дает информацию о беде , список ф-ций, список словарей и т/д
Tabix/DBS/Router вызывает классы Tabix/DBS/Storage/Clickhouse или Tabix/DBS/Storage/MySQL
Чтобы построить дерево 1) Нужно пройти по всем указанным в Storage->Helper`s 2) У каждого запросить список БеДе и таблиц и других обьектов 3) Результат для CH это опросить кластер если есть и указан в конфиге или одну ноду 4) Может быть несколько Серевером одного Storage, тогда регистрируются они в виде массива
[
[
'id'=>'ch1',
'type'=>'Clickhouse',
'helper'=>[
'cluster'=>true,
'connection'=>[
'host'=>'...',
]
]
],
[
'id'=>'ch_develop_server',
'type'=>'Clickhouse',
'helper'=>[ ... ]
]
При поступлении запроса Tabix/Router должен отправить запрос в нужный DBS/Storage
- Можно точно указать какой это сервер
- Можно распарсить запрос на педмнет sid.DataBase.TableName, где sid это сервер из конфигурации