Skip to content

Latest commit

 

History

History
82 lines (47 loc) · 2.6 KB

IDEA.md

File metadata and controls

82 lines (47 loc) · 2.6 KB

Общие настройки

config/init.php

Содержат подключение к MongoDB + MemCache config

ConfID

Id конфигурации, передается через URL, типа back.tabix.io/4123/ Тогда подключаем конфигруацию из config/_confID_.php

SID

Каждый сервер БеДе имеет свой текстовый ID

QID

Каждый оправленный запрос получает id + hash_salt, зная их можно шарить запросы

Методы

GetTree - список обьектов таблиц/серверов из предустановленного списка доступных DBS GetMetrics - Нужно передавать sid

Tabix/DBS

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

При поступлении запроса Tabix/Router должен отправить запрос в нужный DBS/Storage

  1. Можно точно указать какой это сервер
  2. Можно распарсить запрос на педмнет sid.DataBase.TableName, где sid это сервер из конфигурации