Nifi ExecuteSQL не удалось обработать сеанс из-за createSchema: неизвестный тип SQL 1111 - PullRequest
0 голосов
/ 03 мая 2018

Я работаю с Nifi и хочу перенести данные из таблицы postgresql в файлы Json.

У меня есть таблица в базе данных postgresql со схемой:

CREATE TABLE "public"."users" (
 "id" int4 NOT NULL DEFAULT nextval('users_id_seq'::regclass),
 "email" varchar(255) COLLATE "pg_catalog"."default" NOT NULL DEFAULT ''::character varying,
 "settings" "public"."hstore" NOT NULL DEFAULT ''::hstore,
 "credited_at" timestamp(6)
);

CREATE INDEX "index_users_on_settings" ON "public"."users" USING gist (
 "settings" "public"."gist_hstore_ops"
);

ALTER TABLE "public"."users" ADD CONSTRAINT "users_pkey" PRIMARY KEY ("id");

Я пытался получить данные из этой user таблицы в json файлах Nifi с потоком данных.

Основной поток Nifi: enter image description here Извлечь данные из пользовательской таблицы и перейти к Nifi RGP: enter image description here Получить данные и запустить ExecuteSQL: enter image description here Ошибка при запуске ExecuteSQL: enter image description here

И я получил ошибку со схемой Авро

ExecuteSQL [id = 1f22e067-0163-1000-ffff-ffff9c047041] ExecuteSQL [id = 1f22e067-0163-1000-ffff-ffff9c047041] не удалось обработать сеанс из-за createSchema: неизвестный тип SQL 1111 / hstore (таблица: пользователи, столбец: настройки) не может быть преобразован в тип Avro; Процессор административно выдан в течение 1 секунды: java.lang.IllegalArgumentException: createSchema: неизвестный тип SQL 1111 / hstore (таблица: пользователи, столбец: настройки) не может быть преобразован в тип Avro

Я пытался найти решение в Google, но нет способа исправить это. Не могли бы вы мне помочь? Спасибо.

Это моя трассировка стека из nifi-app.log

2018-05-03 04: 54: 43 418 ОШИБКА [Управляемый таймером поток процесса-6] o.a.nifi.processors.standard.ExecuteSQL ExecuteSQL [ID = 1f22e067-0163-1000-FFFF-ffff9c047041] ExecuteSQL [id = 1f22e067-0163-1000-ffff-ffff9c047041] не удалось обработать сеанс из-за java.lang.IllegalArgumentException: createSchema: Неизвестный тип SQL 1111 / hstore (таблица: пользователи, столбец: настройки) не может быть преобразованным в тип Avro; Процессор административно уступил за 1 sec: java.lang.IllegalArgumentException: createSchema: неизвестный SQL тип 1111 / hstore (таблица: пользователи, столбец: настройки) не может быть преобразован в тип Avro java.lang.IllegalArgumentException: createSchema: неизвестный тип SQL 1111 / hstore (таблица: пользователи, столбец: настройки) не могут быть преобразованы в тип Avro в org.apache.nifi.processors.standard.util.JdbcCommon.createSchema (JdbcCommon.java:621) в org.apache.nifi.processors.standard.util.JdbcCommon.convertToAvroStream (JdbcCommon.java:282) в org.apache.nifi.processors.standard.ExecuteSQL.lambda $ onTrigger $ 1 (ExecuteSQL.java:245) в org.apache.nifi.controller.repository.StandardProcessSession.write (StandardProcessSession.java:2621) в org.apache.nifi.processors.standard.ExecuteSQL.onTrigger (ExecuteSQL.java:235) в org.apache.nifi.processor.AbstractProcessor.onTrigger (AbstractProcessor.java:27) в org.apache.nifi.controller.StandardProcessorNode.onTrigger (StandardProcessorNode.java:1147) в org.apache.nifi.controller.tasks.ConnectableTask.invoke (ConnectableTask.java:175) в org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent $ 1.run (TimerDrivenSchedulingAgent.java:117) в java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511) в java.util.concurrent.FutureTask.runAndReset (FutureTask.java:308) в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 301 (ScheduledThreadPoolExecutor.java:180) в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:294) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) at java.lang.Thread.run (Thread.java:748) 2018-05-03 04: 54: 43 418 WARN [Управляемый таймером поток процессов-6] o.a.n.controller.tasks.ConnectableTask Административно уступая ExecuteSQL [id = 1f22e067-0163-1000-ffff-ffff9c047041] из-за отсутствия связи Исключение: java.lang.IllegalArgumentException: createSchema: Неизвестно Тип SQL 1111 / hstore (таблица: пользователи, столбец: настройки) не может быть преобразован в тип Avro java.lang.IllegalArgumentException: createSchema: неизвестный тип SQL 1111 / hstore (таблица: пользователи, столбец:настройки) не могут быть преобразованы в тип Avro в org.apache.nifi.processors.standard.util.JdbcCommon.createSchema (JdbcCommon.java:621) в org.apache.nifi.processors.standard.util.JdbcCommon.convertToAvroStream (JdbcCommon.java:282) в org.apache.nifi.processors.standard.ExecuteSQL.lambda $ onTrigger $ 1 (ExecuteSQL.java:245) в org.apache.nifi.controller.repository.StandardProcessSession.write (StandardProcessSession.java:2621) в org.apache.nifi.processors.standard.ExecuteSQL.onTrigger (ExecuteSQL.java:235) в org.apache.nifi.processor.AbstractProcessor.onTrigger (AbstractProcessor.java:27) в org.apache.nifi.controller.StandardProcessorNode.onTrigger (StandardProcessorNode.java:1147) в org.apache.nifi.controller.tasks.ConnectableTask.invoke (ConnectableTask.java:175) в org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent $ 1.run (TimerDrivenSchedulingAgent.java:117) в java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511) в java.util.concurrent.FutureTask.runAndReset (FutureTask.java:308) в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 301 (ScheduledThreadPoolExecutor.java:180) в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:294) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) at java.lang.Thread.run (Thread.java:748) 2018-05-03 04: 54: 43 501 INFO [Flow Service Tasks Thread-1] o.a.nifi.controller.StandardFlowService Сохраненный контроллер потока org.apache.nifi.controller.FlowController@65ee54e8 // Еще одно сохранение pending = false 2018-05-03 04: 54: 44,423 ОШИБКА [Процесс, управляемый таймером Thread-9] o.a.nifi.processors.standard.ExecuteSQL ExecuteSQL [ID = 1f22e067-0163-1000-FFFF-ffff9c047041] ExecuteSQL [id = 1f22e067-0163-1000-ffff-ffff9c047041] не удалось обработать сеанс из-за java.lang.IllegalArgumentException: createSchema: Неизвестный тип SQL 1111 / hstore (таблица: пользователи, столбец: настройки) не может быть преобразованным в тип Avro; Процессор административно уступил за 1 sec: java.lang.IllegalArgumentException: createSchema: неизвестный SQL тип 1111 / hstore (таблица: пользователи, столбец: настройки) не может быть преобразован в тип Avro java.lang.IllegalArgumentException: createSchema: неизвестный тип SQL 1111 / hstore (таблица: пользователи, столбец: настройки) не могут быть преобразованы в тип Avro в org.apache.nifi.processors.standard.util.JdbcCommon.createSchema (JdbcCommon.java:621) в org.apache.nifi.processors.standard.util.JdbcCommon.convertToAvroStream (JdbcCommon.java:282) в org.apache.nifi.processors.standard.ExecuteSQL.lambda $ onTrigger $ 1 (ExecuteSQL.java:245) в org.apache.nifi.controller.repository.StandardProcessSession.write (StandardProcessSession.java:2621) в org.apache.nifi.processors.standard.ExecuteSQL.onTrigger (ExecuteSQL.java:235) в org.apache.nifi.processor.AbstractProcessor.onTrigger (AbstractProcessor.java:27) в org.apache.nifi.controller.StandardProcessorNode.onTrigger (StandardProcessorNode.java:1147) в org.apache.nifi.controller.tasks.ConnectableTask.invoke (ConnectableTask.java:175) в org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent $ 1.run (TimerDrivenSchedulingAgent.java:117) в java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511) в java.util.concurrent.FutureTask.runAndReset (FutureTask.java:308) в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 301 (ScheduledThreadPoolExecutor.java:180) в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:294) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624)at java.lang.Thread.run (Thread.java:748) 2018-05-03 04: 54: 44,423 WARN [Управляемый таймером поток процессов-9] o.a.n.controller.tasks.ConnectableTask Административно уступая ExecuteSQL [id = 1f22e067-0163-1000-ffff-ffff9c047041] из-за отсутствия связи Исключение: java.lang.IllegalArgumentException: createSchema: Неизвестно Тип SQL 1111 / hstore (таблица: пользователи, столбец: настройки) не может быть преобразован в тип Avro java.lang.IllegalArgumentException: createSchema: неизвестный тип SQL 1111 / hstore (таблица: пользователи, столбец: настройки) не могут быть преобразованы в тип Avro в org.apache.nifi.processors.standard.util.JdbcCommon.createSchema (JdbcCommon.java:621) в org.apache.nifi.processors.standard.util.JdbcCommon.convertToAvroStream (JdbcCommon.java:282) в org.apache.nifi.processors.standard.ExecuteSQL.lambda $ onTrigger $ 1 (ExecuteSQL.java:245) в org.apache.nifi.controller.repository.StandardProcessSession.write (StandardProcessSession.java:2621) в org.apache.nifi.processors.standard.ExecuteSQL.onTrigger (ExecuteSQL.java:235) в org.apache.nifi.processor.AbstractProcessor.onTrigger (AbstractProcessor.java:27) в org.apache.nifi.controller.StandardProcessorNode.onTrigger (StandardProcessorNode.java:1147) в org.apache.nifi.controller.tasks.ConnectableTask.invoke (ConnectableTask.java:175) в org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent $ 1.run (TimerDrivenSchedulingAgent.java:117) в java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511) в java.util.concurrent.FutureTask.runAndReset (FutureTask.java:308) в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 301 (ScheduledThreadPoolExecutor.java:180) в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:294) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) at java.lang.Thread.run (Thread.java:748) 2018-05-03 04: 54: 45,427 ОШИБКА [Управляемый таймером поток процессов-9] o.a.nifi.processors.standard.ExecuteSQL ExecuteSQL [ID = 1f22e067-0163-1000-FFFF-ffff9c047041] ExecuteSQL [id = 1f22e067-0163-1000-ffff-ffff9c047041] не удалось обработать сеанс из-за java.lang.IllegalArgumentException: createSchema: Неизвестный тип SQL 1111 / hstore (таблица: пользователи, столбец: настройки) не может быть преобразованным в тип Avro; Процессор административно уступил за 1 sec: java.lang.IllegalArgumentException: createSchema: неизвестный SQL тип 1111 / hstore (таблица: пользователи, столбец: настройки) не может быть преобразован в тип Avro java.lang.IllegalArgumentException: createSchema: неизвестный тип SQL 1111 / hstore (таблица: пользователи, столбец: настройки) не могут быть преобразованы в тип Avro в org.apache.nifi.processors.standard.util.JdbcCommon.createSchema (JdbcCommon.java:621) в org.apache.nifi.processors.standard.util.JdbcCommon.convertToAvroStream (JdbcCommon.java:282) в org.apache.nifi.processors.standard.ExecuteSQL.lambda $ onTrigger $ 1 (ExecuteSQL.java:245) в org.apache.nifi.controller.repository.StandardProcessSession.write (StandardProcessSession.java:2621) в org.apache.nifi.processors.standard.ExecuteSQL.onTrigger (ExecuteSQL.java:235) в org.apache.nifi.processor.AbstractProcessor.onTrigger (AbstractProcessor.java:27) в org.apache.nifi.controller.StandardProcessorNode.onTrigger (StandardProcessorNode.java:1147) в org.apache.nifi.controller.tasks.ConnectableTask.invoke (ConnectableTask.java:175) в org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent $ 1.run (TimerDrivenSchedulingAgent.java:117) в java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511) в java.util.concurrent.FutureTask.runAndReset (FutureTask.java:308) в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 301 (ScheduledThreadPoolExecutor.java:180) вjava.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:294) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) at java.lang.Thread.run (Thread.java:748)

1 Ответ

0 голосов
/ 02 апреля 2019

Это должно быть исправлено в NiFi 1.9.0+ (подробнее см. NIFI-5845 )

...