2018-12-27 04:55:20 -05:00
|
|
|
[role="xpack"]
|
|
|
|
[testenv="platinum"]
|
2018-12-31 07:07:39 -05:00
|
|
|
[[sql-client-apps-ps1]]
|
2018-12-27 04:55:20 -05:00
|
|
|
=== Microsoft PowerShell
|
|
|
|
|
|
|
|
experimental[]
|
|
|
|
|
|
|
|
[quote, https://docs.microsoft.com/en-us/powershell/scripting/powershell-scripting]
|
|
|
|
____
|
|
|
|
https://docs.microsoft.com/en-us/powershell/[PowerShell] is a task-based command-line shell and scripting language built on .NET.
|
|
|
|
____
|
|
|
|
|
|
|
|
PowerShell is available on all recent Windows Desktop OSes. It also has embedded ODBC support, thus offering a quick and accessible way to
|
|
|
|
connect to {es}.
|
|
|
|
|
|
|
|
==== Prerequisites
|
|
|
|
|
|
|
|
* Microsoft PowerShell
|
2018-12-31 07:07:39 -05:00
|
|
|
* {es-sql} <<sql-odbc, ODBC driver>>
|
|
|
|
* A preconfigured User or System DSN (see <<dsn-configuration,Configuration>> section on how to configure a DSN).
|
2018-12-27 04:55:20 -05:00
|
|
|
|
|
|
|
==== Writing a script
|
|
|
|
|
|
|
|
While putting the following instructions into a script file is not an absolute requirement, doing so will make it easier to extend and
|
|
|
|
reuse. The following instructions exemplify how to execute a simple SELECT query from an existing index in your {es} instance, using a DSN
|
|
|
|
configured in advance. Open a new file, `select.ps1`, and place the following instructions in it:
|
|
|
|
|
|
|
|
["source","powershell",subs="attributes,callouts"]
|
|
|
|
--------------------------------------------
|
|
|
|
$connectstring = "DSN=Local Elasticsearch;"
|
|
|
|
$sql = "SELECT * FROM library"
|
|
|
|
|
|
|
|
$conn = New-Object System.Data.Odbc.OdbcConnection($connectstring)
|
|
|
|
$conn.open()
|
|
|
|
$cmd = New-Object system.Data.Odbc.OdbcCommand($sql,$conn)
|
|
|
|
$da = New-Object system.Data.Odbc.OdbcDataAdapter($cmd)
|
|
|
|
$dt = New-Object system.Data.datatable
|
|
|
|
$null = $da.fill($dt)
|
|
|
|
$conn.close()
|
|
|
|
$dt
|
|
|
|
--------------------------------------------
|
|
|
|
|
|
|
|
Now open a PowerShell shell and simply execute the script:
|
|
|
|
|
|
|
|
[[apps_excel_exed]]
|
|
|
|
.Run SQL in PowerShell
|
|
|
|
image:images/sql/odbc/apps_ps_exed.png[]
|
|
|
|
|
|
|
|
|
|
|
|
// vim: set noet fenc=utf-8 ff=dos sts=0 sw=4 ts=4 tw=138 columns=140
|