Кто-нибудь знает, существует ли предел для значения sqoop.export.records.per.statement для задания экспорта партии Sqoop?Есть ли предел sqoop.export.records.per.statement для задания экспорта Sqoop?
У меня очень большой размер данных, например 200 000 000 строк данных для экспорта, от Impala до Vertica. Я получу [Vertica][VJDBC](5065) ERROR: Too many ROS containers exist for the following projections
, если записи для одного оператора установлены слишком низко или java.lang.OutOfMemoryError: GC overhead limit exceeded
, если записи для одного оператора установлены слишком высокими.
Кто-нибудь знает, как исправить эту проблему? Благодаря!
Спасибо за ваш ответ! Теперь я пытаюсь использовать параметр per.transaction, давайте посмотрим, как это работает. И, кстати, наше текущее решение - прямая копия vsql, но сначала экспортируем в локальный файл, а затем копию vsql из локального файла. Из вашего сценария это означает, что сначала не нужно экспортировать в файл, верно? Благодаря! – yuan0122
Вы также можете использовать 'mkfifo' и записывать его в один процесс и загружать из него в другой. В приведенном выше примере потоки передают данные. Это может быть не 100%, но если вы запустите первую команду, вы увидите точные данные, которые должны быть загружены без верхних или нижних колонтитулов. Если это так, это может быть передано прямо во вторую команду, как я показал выше. Вам, возможно, придется настраивать на основе разделителей и т. Д. – woot
Как вы сказали, per.transaction не работает хорошо для ошибки «слишком много ros-файлов». Тогда я попробую решение COPY. Поскольку он не требует экспорта в файл, это может привести к улучшению времени обработки. Большое спасибо! – yuan0122