То, что вам нужно, называется ETL, я не даю точного ответа, поскольку ваш вопрос носит более общий характер.
Вы можете разработать небольшой скрипт на Python для достижения этой цели, но в целом это более полезно, если использовать настоящий ETL.
Я рекомендую Apache Spark с официальным плагином эластичной связью:
Пример в Scala (но вы можете использовать Python, Java или R):
val df = sqlContext.read().format("org.elasticsearch.spark.sql").load("spark/trips")
df.write.jdbc(jdbcUrl, "_table_")
Преимущества:
- Spark будет распределять работу через рабочих (будет одновременно читать все осколки эластичного поиска!)
- Обрабатывать аварийное переключение
- Позволяет изменятьданные