Comments 8
BTW, раз уж вы такое делаете, можете рассказать, с какой примерно скоростью удается доставать данные по JDBC? В идеале с указанием на то, сколько примерно ресурсов в наличии в СУБД и хадупе.
Вы правы, отметив, что миграция не заканчивается на выполнении одного запроса, особенно, если бизнес хочет иметь в hadoop копию через час после закрытия опердня для построения отчетности. Для данных задач, может потребоваться разработка различных систем и сервисов, с развернутой архитектурой для реализации конкретных задач. В статье хотелось отразить концепцию взаимодействия СУБД и HADOOP, а также отразить некоторые важные нюансы протекания данного процесса.
Рассматривая вопрос скорости доставления данных по JDBC, тут есть множество посторонних факторов, которые могут повлиять на данный процесс (например: скорость передачи данных по сети, характеристики жестких дисков и др.). Рассматривая системы, с которыми мне приходилось работать, средняя скорость доставки данных для различных систем варьировалась от 70 до 100 Мбит/c.
ну вот у нас нюанс простой — если вы хотите предикаты, или тем более, конкретные ключи, то надо учитывать, что спарк не умеет bind variables. Поэтому все условия — в запросе. А если ключей вам нужно много — то запрос быстро растет, достигает того размера, когда парсеру становится плохо. Ну т.е. у нас скажем были случаи, когда запрос получался размером в мегабайты, и этот запрос тупо ронял Oracle, или приводил к его деградации.
Хорошо бы добавить в статью, каким образом будет физически выполняться экспорт, если размер таблицы намного больше размера ОЗУ?
А почему Spark, а а не sqoop? Sqoop же как раз сделан для миграции между реляционными базами и Хадупом, и обратно.
Apache Sqoop также является одним из решений миграции данных между РСУБД и Hadoop, но при миграции данных, может возникнуть потребность в индивидуальной обработке при извлечении данных и загрузкой в Hadoop. В таком случае Sqoop плохо подходит для реализации такого рода задач, и тогда предпочтительней будет использовать утилиты JDBC Apache Spark.
Миграция данных из различных RDBMS в HADOOP