Я пытаюсь создать фидер JBDC для загрузки данных с SQL Server в elasticsearch. Я использую руководство здесь: https://github.com/jprante/elasticsearch-river-jdbc (поиск заголовка «Как запустить автономный фидер JDBC»).JDBC-фидер для Elasticsearch
Я успешно загрузил и установил elasticsearch и включил его. Я загрузил драйвер JDBC для SQL-сервера и переместил его в папку ./plugins/jdbc.
Я добираюсь до части, которая предполагает создание сценария bash. До сегодняшнего дня я даже не смотрел сценарий bash, и у меня возникли проблемы с его работой, поскольку я еще не знаю половины синтаксиса.
elasticsearch каталог C: \ elasticsearch-1.4.0
и вот мой Баш скрипт:
#!/bin/sh
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# ES_HOME required to detect elasticsearch jars
export ES_HOME= C:\elasticsearch-1.4.0
echo '
{
"elasticsearch" : {
"cluster" : "elasticsearch",
"host" : "localhost",
"port" : 9200
},
"type" : "jdbc",
"jdbc" : {
"url" : "jdbc:sqlserver://localhost;databaseName=MyDatabase",
"user" : "MyUser",
"password" : "MyPassword",
"sql" : "select * From MyTable",
"treat_binary_as_string" : true,
"index" : "MyFirstESIndex"
}
}
' | java \
-cp "${DIR}/*" \
org.xbib.elasticsearch.plugin.jdbc.feeder.Runner \
org.xbib.elasticsearch.plugin.jdbc.feeder.JDBCFeeder
Что мне нужно сделать, чтобы обновить в этом сценарии? Это что-то в этой строке сценария:
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
Причина Я делаю это потому, что я ищу лучший способ для вставки потенциально десятки миллионов записей в elasticsearch от SQL-сервера в одном ходу, т.е. объемная вставка.
Наша первая итерация включает в себя получение каждой строки данных в таблице, преобразование ее в документ JSON и вставку в ES. Это заняло около 10 часов, чтобы получить все данные.
Заранее благодарим за любые советы.
Вы когда-нибудь могли заставить это работать? – BrandonG