Sorry, not see that you are using MS SQL Server.
I deployed a host with MS SQL and the issue reproduces too.

My enviroment:

Nifi 0.5.1
Java 7
MS SQL Server 2008

With Oracle doesn't works too, but with DB2 works perfect.


2016-03-05 22:45 GMT+01:00 Marcelo Valle Ávila <[email protected]>:

> Hello Ralf,
>
> I'm suffering the same behaviour, taking data from Oracle DB
>
> failed to process due to org.apache.avro.SchemaParseException: Empty name
>
> With NiFi 0.4.1 ExecuteSQL processor works fine, it seems that in 0.5.0
> and 0.5.1 there is some bug with Oracle databases.
>
> I test Nifi 0.5.1 processor connecting with DB2 database and works fine.
>
> What Database engine are you using?
>
> Regards!
>
>
> 2016-03-05 10:36 GMT+01:00 Ralf Meier <[email protected]>:
>
>> Hi,
>>
>> thanks Matt for clarifying things. I got it at the processor is working
>> just fine with mysql.
>> Now I tried to use it with MS SQL. But here I get some issues and could
>> not figure out why it is not working.
>>
>> My Configuration is:
>>
>> Nifi: 0.5.0
>> Java 8
>> MS SQL 2014
>>
>> DBCPConnectionPool:
>> Database Connection URL: jdbc:sqlserver://192.168.79.252:1433
>> ;databaseName=testdb
>> Class Name: com.microsoft.sqlserver.jdbc.SQLServerDriver
>> Jar Url: file:///Users/rmeier/Downloads/tmp/sqljdbc42.jar
>> Database user: sa
>> Password: *********
>>
>> In the ExecuteSQL I have the following configuration:
>> MY Connection Pooling.
>> SQL select query: select * from tuser;
>>
>> Max Wait Time: 0 seconds
>>
>> But when I run the processor I get the following error:
>>
>> 10:30:02 CET ERROR
>> ExecuteSQL[id=d32x32d7-c477-4b3b-a8b9-a77d0be27273]
>> ExecuteSQL[id=d32x32d7-c477-4b3b-a8b9-a77d0be27273] failed to process due
>> to org.apache.avro.SchemaParseException: Empty name; rolling back session:
>> org.apache.avro.SchemaParseException: Empty name
>>
>> 10:30:02 CET ERROR
>> ExecuteSQL[id=d32x32d7-c477-4b3b-a8b9-a77d0be27273] Processor
>> Administratively Yielded for 1 sec dure to processing failure
>>
>>
>> Did somebody of you have an idea how to solve this issue and what is the
>> root cause here fore?
>>
>> Thanks again for your help.
>> Ralf
>>
>>
>>
>> Am 04.03.2016 um 21:17 schrieb Matt Burgess <[email protected]>:
>>
>> Currently ExecuteSql will put all available rows into a single flow file.
>> There is a Jira case (https://issues.apache.org/jira/browse/NIFI-1251)
>> to allow the user to break up the result set into flow files containing a
>> specified number of records.
>>
>> I'm not sure why you get 26 flow files, although if you let the flow run
>> for 26 seconds you should see 26 flow files, each with the contents of the
>> "users" table. This is because it will run every second (per your config)
>> and execute the same query ("SELECT * FROM users") every time.  There is a
>> new processor in the works (
>> https://issues.apache.org/jira/browse/NIFI-1575) that will allow the
>> user to specify "maximum value columns", where the max values for each
>> specified column will be kept track of, so that each subsequent execution
>> of the processor will only retrieve rows whose values for those columns are
>> greater than the currently-held maximum value. An example would be a users
>> table with a primary key user_id, which is strictly increasing. The
>> processor would run once, fetching all available records, then unless a new
>> row is added (with a higher user_id value), no flow files will be output.
>> If rows are added in the meantime, then upon the next execution of the
>> processor, only those "new" rows will be output.
>>
>> I'm happy to help you work through this if you'd like to provide more
>> details about your table setup (columns, rows) and flow.
>>
>> Regards,
>> Matt
>>
>> On Fri, Mar 4, 2016 at 3:04 PM, Ralf Meier <[email protected]> wrote:
>>
>>> Hi,
>>>
>>> i tried to understand the executeSQL Processor.
>>> I created a database with a table „users“. This table has two entries.
>>>
>>> The problem with the processor is that it selected multiple times the
>>> entries from the table and created altogether 26 flow files even that only
>>> two entries where available. In addition each flow file consist of the both
>>> entires.
>>>
>>> I configured the executeSQL Processor the following way:
>>> Settings: Didn’t changed anything here except of auto terminate on
>>> failure:
>>> Scheduling:
>>>         Cron based: * * * * * ? (Run every minute)
>>>         Concurrent tasks: 1
>>> Properties:
>>>         Database Connection Pooling Service: DBmysql
>>>         SQL select query: Select * from user
>>>         My Wait Time: 0 seconds
>>>
>>> Then I used a processor: convertAvroToJson and a PutFile Processor.
>>>
>>> If I runt the flow it creates 26 flow files and each of them has all
>>> entries of the tables as json included.
>>>
>>> My goal is to extract the table ones. So that the entries are only
>>> created ones as json as row not 26 times.
>>> My understanding was that each row of the table will be one flow file
>>> and therefore for each line of the table would be one json file on disk
>>> (using PutFile).
>>>
>>> But it seems that this not right. What happens if I have millions of
>>> entries in such a table? Will this be done with one flow file?
>>>
>>> How would I configure that Nifi extract the table ones?
>>>
>>> It would be great if somebody could help me with this ?
>>>
>>>
>>>  BR
>>> Ralf
>>
>>
>>
>>
>

Reply via email to