Thanks, Matt! This is going to work out well. 

Dave

-----Original Message-----
From: Matt Burgess <mattyb...@apache.org> 
Sent: Friday, September 20, 2019 5:14 PM
To: users@nifi.apache.org
Subject: Re: Need to DELETE large recordsets from target SQL table

Dave,

You can use ConvertRecord or JoltTransformRecord right before PutDatabaseRecord 
to remove the unindexed / unnecessary fields, then the generated statement 
should only include the necessary fields and be able to take advantage of any 
indexes.

Regards,
Matt

On Fri, Sep 20, 2019 at 4:55 PM David Gallagher <dgallag...@cleverdevices.com> 
wrote:
>
> Hi – I’m looking to remove records from a table using the results returned 
> from a QueryDatabaseTable processor. I want to do this in batches because 
> it’s going to require a lot of deletes, and flowfile per record would be too 
> slow. I’ve tried using the PutDatabaseRecord processor, but the DELETE option 
> in StatementType builds a statement that uses every field in the AVRO record. 
> That would ignores the index on the table and do a full table scan per 
> delete, which obviously isn’t going to scale well. Is there a way I’m not 
> thinking of to get the optimized delete statements I’m looking for? The trick 
> is, my plan is to delete based on the key and then to insert the record, as 
> I’m just using this as a means of getting around the lack of UPSERT in my 
> database.
>
>
>
> Thanks,
>
>
>
> Dave

Reply via email to