Вот детали того, что я сделал, чтобы заставить его работать. Не требует шага ConvertAvroSchema
.
Таблица Oracle
CREATE TABLE my_table
(
entry_name varchar(10),
sd_timestamp timestamp(6)
);
Заполните некоторые данные
insert into my_table values('e-1',CURRENT_TIMESTAMP);
insert into my_table values('e-2',CURRENT_TIMESTAMP);
insert into my_table values('e-3',CURRENT_TIMESTAMP);
Проверка данных
SELECT * FROM my_table;
ENTRY_NAME SD_TIMESTAMP
e-1 09-MAY-18 06.45.24.963327000 PM
e-2 09-MAY-18 06.45.39.291241000 PM
e-3 09-MAY-18 06.45.44.748736000 PM
NiFi Flow
Flow Design
Конфигурация QueryDatabaseTable
Конфигурация ConvertAvroToOrc
Конфигурация PutHDFS
LogAttribute, чтобы увидеть значение атрибута hive.ddl
Проверка результатов на HDFS
$ hadoop fs -ls /oracle-ingest
/oracle-ingest/50201861895275.orc
Создание таблицы Hive для запроса данных с использованием значения hive.ddl и добавления к нему местоположения
hive> CREATE EXTERNAL TABLE IF NOT EXISTS my_oracle_table
(
ENTRY_NAME STRING,
SD_TIMESTAMP STRING
)
STORED AS ORC
LOCATION '/oracle-ingest';
Таблица запросов Hive
hive> select * from my_oracle_table;
e-1 2018-05-09 18:45:24.963327
e-2 2018-05-09 18:45:39.291241
e-3 2018-05-09 18:45:44.748736