[ 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)