Импорт данных из коннектора
Техническое описание
1. При нажатии на источник клиентская часть отправляет на сервис Nest.js GET запрос на получение соответствующих таблиц коннектора
https://fastbord-back-dev4.fb-dev.winsolutions.ru/api/v2/source/{sourceId}/tables, где sourceId - id выбранного коннектора
Список доступных таблиц происходит путём запроса метаданных источника из бд postgres
Результат отображается в левой панели "Таблицы источника"
2. При выборе конкретной таблицы из списка "Таблицы источника" отправляются GET запросы Meta + Preview:
Meta - содержит метаданные по выбранной таблице (тип драйвера, количество записей, название таблицы, id таблицы)
{
"kind": "sourceTableMeta",
"sourceTableMeta": {
"sourceId": "3ad0c9f4-5a92-4aa8-8776-1e5b3f0098e3",
"tableName": "Tablitsa",
"rowCount": 99,
"driverType": "xlsx"
}
}
https://fastbord-back-dev4.fb-dev.winsolutions.ru/api/v2/source/{sourceId}/table/Tablitsa/meta
Preview - содежит фактические данные для отображения превью клиенту, всю информацию по колонкам таблицы и некоторое количество записей
https://fastbord-back-dev4.fb-dev.winsolutions.ru/api/v2/source/{sourceId}/table/Tablitsa/preview
Данные получают путём запроса метаданных коннектора из бд postgres, поиска источника по этим метаданным на стороне сервера и дальнейшего форматирования результата запроса для отправки ответа клиентской части
3. Типы драйверов:
- clickhouse
- csv
- hive
- json
- ms
- my
- oracle
- postgres
- qvd
- rest-api
- txt
- xlsx
- xml
Каждый тип драйвера наследуется от класса DriverDatabase и реализует интерфейс IDriver
Это гарантирует, что драйвер реализует необходимые методы, такие как:
- getCredentialsInstance - получение данных для подключения к драйверу (если требуются)
-
getRowCount - получение общего числа записей в источник
- getDbMeta - получение метаинформации по бд (список таблиц в источнике, с краткой информацией по каждой)
-
getPreview2 - получение превью бд (ограниченное количество строк + список столбцов)
-
query - выполнение любого запроса относящегося к источникуи др.
Нажатие на кнопку далее инициирует создание запроса на генерацию/обновление скрипта загрузки проекта, с учетом выборки данных из источников, осуществлённых в прошлых пунктах.