Подтвердить что ты не робот

Как использовать Elastic Search поверх ранее существующей базы данных SQL?

Я читал много хорошей документации о том, как реализовать Elastic Search на веб-сайте с помощью javascript или PHP.

Очень хорошее введение в ES.

Очень полная документация здесь и здесь.

Целый CRUD.

Упругий поиск с PHP: здесь, здесь и .

Итак, причина, по которой я даю вам эти URL-адреса, заключается в том, чтобы понять, как использовать одну или многие из этих замечательных документов при наличии ранее существующей базы данных SQL.

Я где-то пропустил: Как они сказали, Elasticsearch создаст свои собственные индексы и DB с MongoDB, я не понимаю, как я могу использовать мою (гигантскую) базу данных с использованием SQL? Скажем, у меня есть БД MySQL, и я бы хотел использовать Elasticsearch для ускорения моих исследований и для того, чтобы предлагать запрошенные пользователем запросы, как мне это сделать? Как ES работает над MySQL? Как перенести этот гигантский набор Datas (более 8 ГБ) в ES DB, чтобы быть в полной мере эффективным в начале?

Большое спасибо

4b9b3361

Ответ 1

Я использую jdbc-river с mysql. Это очень быстро. Вы можете настроить их для непрерывного опроса данных или использовать единовременную (однократную) стратегию импорта.

например.

curl -xPUT http://es-server:9200/_river/my_river/_meta -d '
{
    "type" : "jdbc",
    "jdbc" : {
        "strategy" : "simple",
        "poll" : "5s",
        "scale" : 0,
        "autocommit" : false,
        "fetchsize" : 10,
        "max_rows" : 0,
        "max_retries" : 3,
        "max_retries_wait" : "10s",
        "driver" : "com.mysql.jdbc.Driver",
        "url" : "jdbc:mysql://mysql-server:3306/mydb",
        "user" : "root",
        "password" : "password*",
        "sql" : "select c.id, c.brandCode, c.companyCode from category c"
    },
    "index" : {
        "index" : "mainIndex",
        "type" : "category",
        "bulk_size" : 30,
        "max_bulk_requests" : 100,
        "index_settings" : null,
        "type_mapping" : null,
        "versioning" : false,
        "acknowledge" : false
    }
}'

Ответ 2

Если вам нужно более эффективное и масштабируемое решение для опроса, предлагаемого jdbc-river, я рекомендую вам посмотреть эту презентацию, в которой объясняется, как выполнять инкрементную синхронизацию с SQL Server в Elastic Search:

Принципы, обсуждаемые в видео, также применяются для других приложений репликации RDBMS → NoSQL.