Как мне индексировать таблицы базы данных в Elastic Search - PullRequest
0 голосов
/ 07 сентября 2018

Я новичок в упругом поиске и хочу скопировать всю свою базу данных в упругую для расширенного поиска и аналитики. Мой вопрос, должен ли я просто создать один индекс приложения и «типы» для каждой таблицы. В моем случае это будет: - http://elastichost/my-cool-app/my-table/id

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

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

ИМХО, первым шагом будет денормализация ваших данных .

Например, если у вас есть customer_master с данными о клиенте, product_master с данными о продукте и таблица заказов с customer_id, product_id и деталями заказа, было бы неплохо перенести все из них в одну таблицу и проиндексировать эту таблицу. в одном индексе в ES. Таким образом, вы можете искать заказы по информации о клиенте, продукте или заказе.

Затем можно создать один денормализованный индекс для каждого набора связанных таблиц и проиндексировать их в ES.

15 ГБ не выглядит как много данных. (Мы проиндексировали 300 миллионов строк данных в небольшом кластере ES на основе 4 обычных аппаратных машин. Размер данных был в сотнях ГБ)

Я хотел бы добавить, что не существует идеального способа индексации данных, и вам придется поэкспериментировать с несколькими идеями, прежде чем завершить одну. Если вы используете ES в качестве аналитической платформы (а не в качестве основного источника данных), многократное индексирование данных на этапе эксперимента не должно быть проблемой.

Мои 2 цента.

0 голосов
/ 07 сентября 2018

Трудно рекомендовать структуру без выборки данных ...

Так как вы новичок, что-то важное для эластичного поиска: mapping , именно так ваши данные будут проиндексированы и могут быть найдены, вы меняете отображение => ваши данные должны быть переиндексированы.

Так что лучший совет - это обновить индекс: my-data-v1 и использовать псевдоним my-data, связанный с ним. Таким образом, вы можете изменить отображение, создать новый индекс, переиндексировать все ваши данные, а затем изменить псевдоним без простоя. О типе индекса, начиная с версии 6.x, индекс может иметь один тип (так что больше не беспокойтесь о ^^).

О самом отображении, никаких волшебных правил, прочитайте документацию, тестируйте и тестируйте.

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