[ 
https://issues.apache.org/jira/browse/KNOX-2128?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Larry McCay updated KNOX-2128:
------------------------------
    Resolution: Fixed
        Status: Resolved  (was: Patch Available)

> Custom DataSource and SQL Commands for KnoxShell and KnoxShellTable
> -------------------------------------------------------------------
>
>                 Key: KNOX-2128
>                 URL: https://issues.apache.org/jira/browse/KNOX-2128
>             Project: Apache Knox
>          Issue Type: New Feature
>          Components: KnoxShell
>            Reporter: Larry McCay
>            Assignee: Larry McCay
>            Priority: Major
>              Labels: kip-14
>             Fix For: 1.4.0
>
>          Time Spent: 3h
>  Remaining Estimate: 0h
>
> As described in 
> [KIP-14|https://cwiki.apache.org/confluence/display/KNOX/KIP-14+-+KnoxShell+Improvements+for+Tabular+Data]
>  , GroovyShell allows for the extension of the shell itself with custom 
> commands. By providing commands for the management of DataSource 
> configuration and use in SQL queries, we can simplify the interaction with 
> SQL engines and databases for JDBC-based database access in KnoxShell to make 
> for a powerful scripting and shell environment.
> DataSource and SQL commands really go hand in hand here and will be done at 
> the same time.
>  * Datasources (:datasource|:ds) CRUD and select operations for a set of JDBC 
> datasources that are persisted to disk in the user home directory
>  * SQL (:SQL|:sql) SQL query execution with persisted SQL history per 
> datasource
> Examples:
> {code}
> :ds add test_ds connectStr driverClass authn_type
> {code}
> The above will add a new datasource to the KnoxShell environment with the 
> name test_ds the required connectStr, the classname of the driver to use and 
> either "basic" or "none" for authentication requirements.
> Invoking the above will actually result in a table rendering of all the 
> currently configured datasources.
> When there are more than one, the following command must be used to select 
> the datasource to use for SQL commands:
> {code}
> :ds select test_ds
> {code}
> This command selects the desired datasource by name and sets it as the select 
> datasource context within the environment.
> If there is only one datasource in the environment, its selection is implied 
> and the explicit selection isn't required with the above command.
> Once a datasource is selected the SQL command may be used to interact with 
> the datasource.
> {code}
> :sql assign books
> {code}
> The above command will present the user with a Java Swing dialog to prompt 
> for a SQL statement, challenge the user for authentication if required and 
> leverage the KnoxShellTable JDBC builder API to submit the SQL query to the 
> selected datasource and return the resultset in a KnoxShellTable variable in 
> KnoxShell environment with the name books. It will also result in the 
> rendering of the tablular result.
> The KnoxShellTable variable called "books" may then be used directly within 
> the KnoxShell environment using the KnoxShellTable fluent API to select, 
> filter, sort and join with other tables - as desired.
> {code}
> :ds remove test_ds
> {code}
> The above command invocation will remove the configured datasource and 
> deselect it - if selected and persist the changes.
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to