Skip to content

Commit

Permalink
Add client improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
lukekim committed Nov 28, 2024
1 parent d77fed4 commit 40bb50a
Show file tree
Hide file tree
Showing 5 changed files with 113 additions and 105 deletions.
51 changes: 29 additions & 22 deletions spiceaidocs/docs/clients/DBeaver/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "DBeaver"
sidebar_label: "DBeaver"
title: 'DBeaver'
sidebar_label: 'DBeaver'
description: 'Configure DBeaver to query Spice via JDBC'
sidebar_position: 2
pagination_prev: 'clients/index'
Expand All @@ -13,57 +13,64 @@ pagination_next: null

3. Download the [Apache Arrow Flight SQL JDBC driver](https://search.maven.org/search?q=a:flight-sql-jdbc-driver) - choose the "jar" option.

4. Launch DBeaver
4. Launch DBeaver

5. In the DBeaver application menu bar, open the "Database" menu and choose: "Driver Manager":
![Driver manager menu option](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/691d1f83-c1d0-4ad8-ec8d-d8f37ccc9d00/public "Driver manager menu option")
![Driver manager menu option](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/691d1f83-c1d0-4ad8-ec8d-d8f37ccc9d00/public 'Driver manager menu option')

6. Click the "New" button on the right:
![Driver manager new button](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/5783d944-daae-4735-99e9-976f974bc100/public "Driver manager new button")
![Driver manager new button](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/5783d944-daae-4735-99e9-976f974bc100/public 'Driver manager new button')

7. Add the JDBC jar file:

1. Click the "Libraries" tab
1. Click the: "Add File" button
1. Choose the "flight-sql-jdbc-driver-15.0.1.jar" jar file (the file downloaded in step 3 above) - and click "Open"
![Select jar file](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/19900f7a-f00f-473d-780e-4a28c2ecd800/public "Select jar file")
![Select jar file](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/19900f7a-f00f-473d-780e-4a28c2ecd800/public 'Select jar file')
1. Close the Driver editor window with the blue "OK" button on the lower-right

8. Enter the driver settings:

1. Click the "Settings" tab
1. In the "Driver Name" field - enter: ```Apache Arrow Flight SQL```
1. In the "URL Template" field - enter: ```jdbc:arrow-flight-sql://{host}:{port}?useEncryption=false&disableCertificateVerification=true```
- If [API key authentication](../../api/auth/index.md) is enabled, the URL template should be: ```jdbc:arrow-flight-sql://{host}:{port}?useEncryption=false&disableCertificateVerification=true&user=&password=<enter-api-key-here>``` - where `<enter-api-key-here>` is the API key value
1. In the "Driver Name" field - enter: `Apache Arrow Flight SQL`
1. In the "URL Template" field - enter: `jdbc:arrow-flight-sql://{host}:{port}?useEncryption=false&disableCertificateVerification=true`

- If [API key authentication](../../api/auth/index.md) is enabled, the URL template should be: `jdbc:arrow-flight-sql://{host}:{port}?useEncryption=false&disableCertificateVerification=true&user=&password=<enter-api-key-here>` - where `<enter-api-key-here>` is the API key value

1. In the "Driver Type" drop-down box - choose: "SQLite"
1. Select "No authentication"
- This should be selected even if API key authentication is enabled in the runtime, as the API key is supplied via the URL template above.

- This should be selected even if API key authentication is enabled in the runtime, as the API key is supplied via the URL template above.

1. The driver manager "Edit Driver" window should look like this:
![Driver Manager completed](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/20348c42-117b-4763-80d2-6e615b23ae00/public "Driver Manager completed")
![Driver Manager completed](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/20348c42-117b-4763-80d2-6e615b23ae00/public 'Driver Manager completed')
1. Click the blue "OK" button on the lower-right to save the driver
1. Close the "Driver Manager" window by clicking the blue "Close" button on the lower-right.

9. Create a new Database Connection:

1. In the DBeaver application menu bar, open the "Database" menu and choose: "New Database Connection":
![New Database Connection](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/acdf7251-4238-44ee-9639-0c557518da00/public "New Database Connection")
1. In the "Connect to a database" window - type: ```Flight``` in the search bar
1. Choose the ```Apache Arrow Flight SQL``` driver - the window should look like this:
![Connect to a database window](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/61cee5fe-dc75-4ac1-e558-eea3aff4c100/public "Connect to a database window")
![New Database Connection](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/acdf7251-4238-44ee-9639-0c557518da00/public 'New Database Connection')
1. In the "Connect to a database" window - type: `Flight` in the search bar
1. Choose the `Apache Arrow Flight SQL` driver - the window should look like this:
![Connect to a database window](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/61cee5fe-dc75-4ac1-e558-eea3aff4c100/public 'Connect to a database window')
1. Click the blue "Next >" button on the bottom of the window
1. On the next screen, the JDBC URL should be filled out already - just supply the Host (`localhost`) and Port (`50051`) values for the Spice runtime. The window should look like this:
![Connect to a database window 2](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/2a2b2fdc-00db-49d3-5359-059b12342b00/public "Connect to a database window 2")
![Connect to a database window 2](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/2a2b2fdc-00db-49d3-5359-059b12342b00/public 'Connect to a database window 2')
1. Click the "Test Connection" button - the window should look like this:
![Test Connection results](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/a3fc5f5f-a39f-47ce-7955-4b384ec1ae00/public "Test Connection results")
![Test Connection results](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/a3fc5f5f-a39f-47ce-7955-4b384ec1ae00/public 'Test Connection results')
1. Click the blue "OK" button to close the Connection test window
1. Click the "Connection details (name, type, ...)" button on the right
1. In the "General" section, enter: `Spice Runtime` for the "Connection name". It should look like this:
![Name the Database Connection](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/f6d04fe1-92a1-4082-d4ea-e9daacaca200/public)
![Name the Database Connection](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/f6d04fe1-92a1-4082-d4ea-e9daacaca200/public)
1. Click the blue "Finish" button to save the connection

10. Run a query:
1. Right-click on the Database Connection on the left - choose: "SQL Editor", and then: "Open SQL Console" as shown here:
![Open SQL Console](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/642a5885-9e3f-4dd7-ef43-72bfce27bb00/public "Open SQL Console")
1. In the Console window - run a query - something like: ```SELECT * FROM taxi_trips;```
![Open SQL Console](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/642a5885-9e3f-4dd7-ef43-72bfce27bb00/public 'Open SQL Console')
1. In the Console window - run a query - something like: `SELECT * FROM taxi_trips;`
1. Click the triangle button to execute the SQL statement - as shown below (or use keyboard shortcut: Ctrl+Enter):
![Execute SQL](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/2134e47b-a066-47e9-1d48-06352675f400/public "Execute SQL")
![Execute SQL](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/2134e47b-a066-47e9-1d48-06352675f400/public 'Execute SQL')
1. See the query results as shown in this screenshot:
![Query Results](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/0e9f3c0f-2e03-47f9-8d5e-65e078d7e900/public "Query Results")
![Query Results](https://imagedelivery.net/HyTs22ttunfIlvyd6vumhQ/0e9f3c0f-2e03-47f9-8d5e-65e078d7e900/public 'Query Results')
1. DBeaver is now configured to query the Spice runtime using SQL! 🎉
91 changes: 45 additions & 46 deletions spiceaidocs/docs/clients/grafana/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Grafana & Prometheus"
sidebar_label: "Grafana & Prometheus"
title: 'Grafana & Prometheus'
sidebar_label: 'Grafana & Prometheus'
description: 'Monitoring Spice instances with Grafana & Prometheus'
pagination_prev: 'clients/index'
pagination_next: null
Expand Down Expand Up @@ -39,65 +39,64 @@ global:
## Local Quickstart
This tutorial creates and configures Grafana and Prometheus locally to scrape and display metrics from several Spice instances. It assumes:
- Two Spice runtimes, `spiced-main` and `spiced-edge`, are running on `127.0.0.1:9091` and `127.0.0.1:9092` respectively.
This tutorial creates and configures Grafana and Prometheus locally to scrape and display metrics from several Spice instances. It assumes: - Two Spice runtimes, `spiced-main` and `spiced-edge`, are running on `127.0.0.1:9091` and `127.0.0.1:9092` respectively.

1. Create a `compose.yaml`:

```yaml
version: "3"
services:
prometheus:
image: prom/prometheus:latest
volumes:
- ./prometheus.yaml:/etc/prometheus/prometheus.yml
ports:
- 9090:9090
network_mode: "host"
grafana:
image: grafana/grafana:latest
volumes:
- ./.grafana/provisioning:/etc/grafana/provisioning
ports:
- 3000:3000
network_mode: "host"
```
```yaml
version: '3'
services:
prometheus:
image: prom/prometheus:latest
volumes:
- ./prometheus.yaml:/etc/prometheus/prometheus.yml
ports:
- 9090:9090
network_mode: 'host'
grafana:
image: grafana/grafana:latest
volumes:
- ./.grafana/provisioning:/etc/grafana/provisioning
ports:
- 3000:3000
network_mode: 'host'
```

1. Create a `prometheus.yaml` to

```yaml
global:
scrape_interval: 1s
scrape_configs:
- job_name: spiced-main
static_configs:
- targets: ['127.0.0.1:9091']
- job_name: spiced-edge
static_configs:
- targets: ['127.0.0.1:9092']
```
```yaml
global:
scrape_interval: 1s
scrape_configs:
- job_name: spiced-main
static_configs:
- targets: ['127.0.0.1:9091']
- job_name: spiced-edge
static_configs:
- targets: ['127.0.0.1:9092']
```

1. Add a prometheus as a source to grafana. Create a `.grafana/provisioning/datasources/prometheus.yml`

```yaml
apiVersion: 1
```yaml
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://localhost:9090
isDefault: true
```
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://localhost:9090
isDefault: true
```

1. Run the Docker Compose

```bash
docker-compose up
```
```bash
docker-compose up
```

1. Go to `http://localhost:3000/dashboard/import` and add the JSON from [monitoring/grafana-dashboard.json](https://github.com/spiceai/spiceai/blob/trunk/monitoring/grafana-dashboard.json).

1. The dashboard will have data from the Spice runtimes.

<img src="/img/grafana/screenshot.png" />
<img src="/img/grafana/screenshot.png" />
54 changes: 28 additions & 26 deletions spiceaidocs/docs/clients/jetbrains-datagrip/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "JetBrains DataGrip"
sidebar_label: "JetBrains DataGrip"
title: 'JetBrains DataGrip'
sidebar_label: 'JetBrains DataGrip'
description: 'Configure JetBrains Datagrip to query Spice via JDBC'
sidebar_position: 3
pagination_prev: 'clients/index'
Expand All @@ -16,35 +16,37 @@ pagination_next: null
4. Launch DataGrip

5. In Database Explorer menu, select "+" and choose "Driver"
![Data Sources and Drivers menu option](./img/datagrip-1.png "Data Sources and Drivers menu option")
![Data Sources and Drivers menu option](./img/datagrip-1.png 'Data Sources and Drivers menu option')

6. Add the JSBC jar file:
1. Click the "+" button in "Driver Files" selection
1. Click the "Custom JARs" button
1. Choose the `flight-sql-jdbc-driver-<version>.jar` jar file (the file downloaded in step 3 above) - and click "Open"
1. Click the "Class:" selector
1. Select `org.apache.arrow.driver.jdbc.ArrowFlightJdbcDriver`
![Driver Class selector](./img/datagrip-3.png "Driver Class selector")

8. Enter the driver settings:
1. In the "Name" field - enter: ```Apache Arrow Flight SQL```
1. Add "URL Template" Default: `jdbc:arrow-flight-sql://{host}:{port}\?useEncryption=false&disableCertificateVerification=true`
1. Click "Ok"
![Driver creation window](./img/datagrip-4.png "Driver creation window")

9. Create a new Database Connection:
1. In Database Explorer menu, select "+", choose "Data Source" > "Arrow Flight JDBC"
2. Set the host to `localhost` and the port to `50051`
3. In "Authentication" select "No auth"
4. Click "Test Connection" to verify

![New Data Source](./img/datagrip-5.png "New Data Source")

1. Click the "+" button in "Driver Files" selection
1. Click the "Custom JARs" button
1. Choose the `flight-sql-jdbc-driver-<version>.jar` jar file (the file downloaded in step 3 above) - and click "Open"
1. Click the "Class:" selector
1. Select `org.apache.arrow.driver.jdbc.ArrowFlightJdbcDriver`
![Driver Class selector](./img/datagrip-3.png 'Driver Class selector')

7. Enter the driver settings:

1. In the "Name" field - enter: `Apache Arrow Flight SQL`
1. Add "URL Template" Default: `jdbc:arrow-flight-sql://{host}:{port}\?useEncryption=false&disableCertificateVerification=true`
1. Click "Ok"
![Driver creation window](./img/datagrip-4.png 'Driver creation window')

8. Create a new Database Connection:
1. In Database Explorer menu, select "+", choose "Data Source" > "Arrow Flight JDBC"
2. Set the host to `localhost` and the port to `50051`
3. In "Authentication" select "No auth"
4. Click "Test Connection" to verify

![New Data Source](./img/datagrip-5.png 'New Data Source')

10. Run a query:
1. Right-click on the connection in Database Explorer and choose "New" > "Query Console"
![Create new Query Console](./img/datagrip-6.png "Create new Query Console")
1. In the Console window - add a query - something like: ```SELECT * FROM taxi_trips;``` and click the triangle button to execute the SQL statement
![Create new Query Console](./img/datagrip-6.png 'Create new Query Console')
1. In the Console window - add a query - something like: `SELECT * FROM taxi_trips;` and click the triangle button to execute the SQL statement
1. See the query results:
![Query Results](./img/datagrip-7.png "Query Results")
![Query Results](./img/datagrip-7.png 'Query Results')

DataGrip is now configured to query the Spice runtime using SQL! 🎉
7 changes: 4 additions & 3 deletions spiceaidocs/docs/clients/superset/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import TabItem from '@theme/TabItem';
Use [Apache Superset](https://superset.apache.org/) to query and visualize datasets loaded in Spice.

> Apache Superset is a modern, enterprise-ready business intelligence web application. It is fast, lightweight, intuitive, and loaded with options that make it easy for users of all skill sets to explore and visualize their data, from simple pie charts to highly detailed deck.gl geospatial charts.
>
>
> [Apache Superset documentation](https://superset.apache.org/docs/intro/)
## Start Apache Superset with Flight SQL & DataFusion SQL Dialect support
Expand Down Expand Up @@ -42,6 +42,7 @@ Select the appropriate tab based on whether you are experimenting with this feat
Log into Apache Superset at [http://localhost:8088](http://localhost:8088) with the username and password `admin/admin`.

Follow the below steps to configure a database connection to Spice manually, or run `make import-dashboards` to automatically configure the connection and create a sample dashboard.

</TabItem>
<TabItem value="existing" label="Integrating with Existing Superset">
## Generic / Virtual Machine
Expand All @@ -68,7 +69,7 @@ Select the appropriate tab based on whether you are experimenting with this feat

## Temporary Docker Container Modification
It's possible to modify a running Docker container to install the library, but the change will be lost on container restart.

```bash
docker exec -u root -it superset /bin/bash

Expand Down Expand Up @@ -104,4 +105,4 @@ Click `Test Connection` to verify the connection.

Click `Connect` to save the connection.

Start exploring the datasets loaded in Spice by creating a new dataset in Apache Superset to match one of the existing tables.
Start exploring the datasets loaded in Spice by creating a new dataset in Apache Superset to match one of the existing tables.
15 changes: 7 additions & 8 deletions spiceaidocs/docs/clients/tableau/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Download and install [Tableau Desktop](https://www.tableau.com/products/desktop/

- Visit the [Flight SQL JDBC driver](https://central.sonatype.com/artifact/org.apache.arrow/flight-sql-jdbc-driver/) page
- Select the **Versions** tab
- Click **Browse** next to the version you want to download
- Click **Browse** next to the version you want to download
- Click the `flight-sql-jdbc-driver-XX.XX.XX.jar` file (with only the `.jar` file extension) from the list of files to download the driver jar file

2. **Copy the downloaded jar file into the following directory based on your operating system**
Expand All @@ -39,13 +39,15 @@ Download and install [Tableau Desktop](https://www.tableau.com/products/desktop/
1. Open **Tableau**
2. In the **Connect** column, under **To a Server**, select **Other Databases (JDBC)**.
3. Provide the following configuration:
- **URL**: `jdbc:arrow-flight-sql://127.0.0.1:50051?useEncryption=false`
- **Dialect**: `PostgreSQL`
<img width="400" src="/img/tableau/tableau-jdbc-conn.png" />

- **URL**: `jdbc:arrow-flight-sql://127.0.0.1:50051?useEncryption=false`
- **Dialect**: `PostgreSQL`
<img width="400" src="/img/tableau/tableau-jdbc-conn.png" />

4. Ensure Spice is running
5. Click **Sign In**

## Working with Spice datasets
## Working with Spice datasets

Once connected, Spice datasets will be listed under the `datafusion.public` schema.

Expand All @@ -60,6 +62,3 @@ Tableau support is currently in alpha, and not all functionality is supported. U
<img width="800" src="/img/tableau/tableau-custom-sql.png" />

<img width="800" src="/img/tableau/tableau-spice-chart.png" />



0 comments on commit 40bb50a

Please sign in to comment.