David Handermann created NIFI-14129:
---------------------------------------

             Summary: Add Database Dialect Service
                 Key: NIFI-14129
                 URL: https://issues.apache.org/jira/browse/NIFI-14129
             Project: Apache NiFi
          Issue Type: Improvement
          Components: Extensions
            Reporter: David Handermann
            Assignee: David Handermann


Several Processors in the standard bundle use the internal {{DatabaseAdapter}} 
interface to delegate SQL statement generation for specific vendors. Although 
the interface provides a layer of abstraction, it requires code changes within 
the standard bundle and does not support extension through external 
implementations. A new Controller Service interface should be added that allows 
external extension for various database dialects. This strategy enables Apache 
NiFi to continue supporting a core set of database vendors while allowing third 
parties to create new implementations.

The new Database Dialect Service should provide a streamlined approach that 
avoids some of the complexities of the current Database Adapter interface. The 
Service interface should introduce a new Statement Type enumeration to cover 
common types such as SELECT, CREATE, INSERT, and others. Service methods should 
use the Statement Type enumeration instead of defining methods for each type of 
supported or unsupported statement.

To provide an incremental way forward, the Database Dialect Service should be a 
new allowable value among the existing Database Types. With Database Dialect 
Service selected as the Database Type, the Database Dialect Service can be 
configured as regular Controller Service. This approach avoids breaking changes 
to existing database processors and also allows for incremental migration of 
existing implementations. After the initial implementation is completed and 
existing adapters are migrated as part of follow on work, then a separate issue 
can be considered to use property migration methods.

The initial implementation of the Database Dialect Service should support 
generic ANSI SQL, analogous to the Generic Database Adapter. This will provide 
a representative implementation, and subsequent issues can cover work on vendor 
specific services.

The Database Dialect Service interface should be defined in an API module and 
included in the nifi-standard-services-api-nar as a common point of extension.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to