2016-09-13 2 views
-2

Я пытаюсь глотать действительно большую таблицу в nifi, используя QueryDatabaseTable или ExecuteSQL. Кажется, что это не работает. Тот же запрос работает для меньших таблиц.NIfi: Как глотать большой стол

Мысли?

Thanks

ответ

2

Какая ошибка вы получаете? Вы можете быть запущен в следующем:

https://issues.apache.org/jira/browse/NIFI-1251

Если вы используете Nifi 1.0 вы можете использовать GenerateTableFetch процессор. Он позволяет вам выбрать размер «страницы» (aka partition) и будет генерировать операторы SQL, каждый из которых будет захватывать одну «страницу» данных. Вы можете перенаправить их в ExecuteSQL, и он будет получать меньшие наборы результатов за раз. Если у вас есть кластер NiFi, вы можете маршрутизировать GenerateTableFetch в Remote Process Group, который указывает на Input Port в том же кластере (который будет распространять инструкции SQL по кластеру), тогда входной порт может быть подключен к ExecuteSQL. Это позволяет вам получать строки из таблицы параллельно.

0

Получение цифровой переполнения с GenerateTableFetch

GenerateTableFetch GenerateTableFetch [ID = 245bd83a-0157-1000-73ab-275171c79348] Невозможно выполнить SQL запрос на выборку SELECT COUNT (*) FROM CATALOG_SALES вследствие java.sql.SQLException: Числовое переполнение: java.sql.SQLException: числовое переполнение

+0

Насколько велика ваша таблица? Он выглядит как [GenerateTableFetch code] (https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org /apache/nifi/processors/standard/GenerateTableFetch.java#L199) выдает значение rowcount в 'int'. – James

+0

@shree Вы должны добавить эту информацию на свой вопрос, это не ответ. –