Создать панель управления кибана с данными из 50 таблиц в базе данных - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть 50 таблиц, в которых есть данные, связанные друг с другом. Обычно, если таблиц всего 2-3, мы создаем SP для объединения всех таблиц и используем выходные данные для создания единого индекса для поиска elasti c и затем kibana.

Но с 50 таблицами это будет означать сотни столбцов для вывода SP (и каждая таблица имеет 10 000-1 000 000 строк), SP не выглядит хорошим способом.

Я попытался создать 50 индексов с похожим именем, а затем использовать шаблон индекса. Но при создании шаблона индекса формы панели мониторинга кажется, что на самом деле там нет функции «соединения».

Вот 2 примера структуры таблиц:

Table1 имеет: Departmentid, адрес отдела, имя отдела Table2 имеет: employeeename, Departmentid, employeeage

Итак, ожидаем объединения этих 2 таблиц вместе с «Departmentid» в качестве ключа. Помните, что у нас есть 50 таблиц и множество данных из каждой таблицы.

Есть предложения? Элла

1 Ответ

1 голос
/ 24 апреля 2020

Elasticsearch не является вашей традиционной РСУБД. Таким образом, нет никакой концепции объединений. Поддержка ограниченного объединения с использованием parent / child в одном и том же индексе. Но это имеет относительно более низкую производительность по сравнению с денормализованной плоской структурой документа или использованием вложенных атрибутов.

Сначала вам нужно смоделировать структуру индекса и определить, какая часть из 50 таблиц / столбцов является достаточно значимой для перехода на эластичный поиск. То, что он называется schemaless и у вас есть возможность выгрузить его, не обязательно означает, что вы загружаете все в свой индекс.

Поэтому я предлагаю сначала потратить время на моделирование структуры индекса, решить, какие атрибуты нужны сейчас и ожидать в будущем, а затем завершить запрос источника.

Кроме того, в зависимости от того, как часто вам нужно для загрузки данных в ваш индекс вам может не потребоваться go маршрут SP. Вы можете использовать logsta sh для загрузки данных с помощью базового запроса SQL или кодировать загрузчик данных кластера, используя клиентские библиотеки ES. В худшем случае вы даже можете использовать CURL для прямого вызова массового API с подготовленными json файлами данных. Так что выбирайте то, что наиболее подходит для вашего варианта использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...