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)