2

Я работаю над чем-то, связанным с сервисом elasingearch Amazon. Для этого мне нужно получить данные от Amazon Redshift. Данные, которые нужно переместить, огромны, т.е. 100 GB. Есть ли способ получить его прямо из Redshift или это двухэтапный процесс, такой как Redshift-> s3-> elasticsearch?Можно ли передавать данные с Redshift на Elasticsearch?

ответ

0

Похоже, что нет прямого конвейера для передачи данных в elasticsearch из Redshift. Один альтернативный подход состоит в том, чтобы сначала сбросить данные в S3, а затем вставить в elasticsearch.

2

Я вижу, по крайней мере в теории, 2 возможные подходы к перенося данные из Redshift в Elasticsearch:

  1. Logstash, используя JDBC input plugin
  2. elasticsearch-jdbc
+0

Существуют ли какие-либо практические ограничения для вышеуказанных подходов? – AV94

0
  1. Не GZIP данные разгружаются.
  2. Использовать объемную нагрузку на эластичный
  3. Используйте большое количество записей в объемной нагрузке (> 5000) - меньшее количество большого объема грузы лучше, чем более мелкие.
  4. При работе с эластичным поиском AWS существует риск попадания в пределы объема массовой очереди.
  5. Обработать один файл в лямбда, а затем рекурсивно вызвать функцию лямбда с событием
  6. Перед рекурсией подождите несколько секунд -> setTimeout. При ожидании убедитесь, что вы не простаиваете в течение 30 секунд, потому что ваша лямбда остановится.
  7. Не используйте создание объекта s3 для запуска вашей лямбды - вы в конечном итоге должны вызывать несколько лямбда-функций, вызываемых одновременно.
  8. Не беспокойтесь, пытаясь положить кинезис посередине - выгрузка ваших данных в кинезис почти наверняка поразит пределы нагрузки в кинезисе.
  9. Отслеживайте упругий поиск насыпного размера очереди с чем-то вроде этого:
curl https://%ES-SERVER:PORT%/_nodes/stats/thread_pool |jq 
    ‘.nodes |to_entries[].value.thread_pool.bulk’ 
Смежные вопросы