Я работаю с 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:
Извлечь данные из пользовательской таблицы и перейти к Nifi RGP:
Получить данные и запустить ExecuteSQL:
Ошибка при запуске ExecuteSQL:
И я получил ошибку со схемой Авро
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)