Работа с инкрементными импортными данными Solr из существующей нормализованной базы данных mssql. Я не могу принять решение о стратегии, которую мне нужно реализовать, или не знаю, существуют ли существующие инструменты для этого, поэтому мне не нужно изобретать колесо.Импорт инкрементных данных в Solr из нормализованной таблицы MSSQL со сложными объединениями
Мне нужно импортировать документ в Solr 3.6 для создания данных Solr, которые сохраняются в MSSQL в нормальном режиме. Чтобы получить данные для одного документа, требуется много соединений, которые убивают производительность. У меня appx. 1 млн. Таких документов в дБ. Так что полный импорт в Solr для меня не вариант.
Решая подход У меня есть два вопроса для рассмотрения:
- инкрементный импорт данных, так что SQL-сервер не имеет большую нагрузку при извлечении данных из БД.
- Обновление данные, которые были изменены в SQL Server в данную Solr один раз в день
Ищут после того, как помощь в определении стратегии и инструмента для дополнительного импорта данных в Solr. Я думаю, у меня есть следующие варианты:
Пользовательское приложение для создания данных из MSSQL и передачи его в Solr. Мне нужно отслеживать данные как то, что все записи вставляются в Solr и что ожидает. Опять-таки, 2% -ные записи данных в MSSQL постоянно обновляются, поэтому необходимо отслеживать, какие данные изменились с тех пор, а затем обновить их в какой-то момент в Solr.
Используйте любой существующий инструмент или утилиту в Solr, чтобы сделать то же самое, как DIH. Я не уверен, как это будет касаться как проблемы инкрементного поиска данных, так и того, как она будет отслеживать изменения данных на SQL-сервере? Опять же, не уверен, как DIH будет обрабатывать сложные соединения, требуется получить данные из db.
Или используйте что-то вроде Lusql с DIH, все еще не уверен в том, как он будет решать обе проблемы. Хотя Lusql даст возможность делать сложные объединения в db, поэтому я надеюсь, что это может соответствовать моей цели.
Я в пользу использования LuSQL с DIH в Solr, если он может соответствовать цели, но до сих пор не знаю, как это отслеживать, какие данные меняются? Или для этой части мне нужно управлять вручную, поддерживая идентификатор документа, где выполняется изменение, а затем передавая его в LuSQL для извлечения данных из SQL и импорта в Solr.
Я также жду ваших предложений, помимо этого, для решения таких ситуаций.
Просто интересно, как вы использовали хранимую процедуру с DIH? Можете ли вы поделиться примером/ссылкой? –
посмотрите на это http://stackoverflow.com/questions/8824072/calling-stored-procedure-from-solr –
спасибо Дорин за ваши объяснения. Теперь, если DIH поддерживает хранимую процедуру, тогда ее можно использовать для запуска сложных запросов с объединениями. И для отслеживания изменений продуктов мне нужно отслеживать их в соответствии с вашими предложениями в фактическом db. Но не понял, как это работает для инкрементного импорта данных с использованием DIH и как Solr отслеживает записи записей, какие данные импортировали с использованием импорта дельта, а что нет? Это очень мало документов. Pls советует мне, как мне следует продолжить? – Krunal