2016-02-24 4 views
0

Я использую плагин Logstash jdbc для получения данных MySQL в ElasticSearch. Из-за левого внешнего соединения я заканчиваю несколькими «дочерними строками» для одной «родительской строки». Скажем, 1 пользователь имеет 1 или более документов. Я попробовал group_concat текст документов, а затем группирую по идентификатору пользователя, чтобы сохранить 1 строку на пользователя.Logstash jdbc left external join как поддокументы

Однако GROUP_CONCAT MySQL имеет предел длину 1024 ...

Кто-нибудь знает решение для преодоления GROUP_CONCAT вообще и иметь дело с левыми внешними соединениями, как вложенные документы?

Thanx

ответ

0

Значение по умолчанию равно 1024, но вы можете увеличить допустимую длину для GROUP_CONCAT с помощью

SET SESSION group_concat_max_len = 102400 

или любой длины вы считаете необходимым (подробнее in the official docs)

Я используя это в сложных OUTER JOINs, которые создают много дочерних объектов/документов, и пока это работает очень хорошо.

+0

Да, спасибо. Я изменил строку подключения jdbc на: jdbc: mysql: // localhost: 3306/dbname? SessionVariables = group_concat_max_len = 160000 – JointEffort

 Смежные вопросы

  • Нет связанных вопросов^_^