> For the complete documentation index, see [llms.txt](https://docs.e6data.com/query-engine/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.e6data.com/query-engine/developers/bi-tool-recipes/notebooks.md).

# Notebooks

Connect Jupyter Notebook (via the Python connector) and Apache Zeppelin (via JDBC) to an e6data cluster.

Connect interactive notebooks to an e6data cluster - Jupyter using the [Python connector](/query-engine/developers/connecting-to-the-engine/python-connector.md), and Apache Zeppelin using the [JDBC driver](/query-engine/developers/connecting-to-the-engine/jdbc.md).

## Jupyter Notebook

### Requirements

* The latest [e6data Python package](/query-engine/developers/connecting-to-the-engine/python-connector.md).
* Jupyter Notebook v7.0.7 (recommended).
* The connection details from the cluster's **Connection Information** tab - host, port, username, password (a [personal access token](/query-engine/guides/security/access-tokens/pat-and-service-account-keys.md)), cluster UUID, and the secure flag.

### Connect

1. Create a new Python 3 notebook.
2. Install the connector:

   ```python
   pip install e6data-python-connector
   ```
3. Open a connection:

   ```python
   from e6data_python_connector import Connection

   username = '<username>'      # Your e6data email
   password = '<password>'      # Access token from the e6data Console
   host = '<host>'
   database = '<database>'
   port = <port>
   catalog_name = '<catalog_name>'
   cluster_uuid = '<cluster_uuid>'
   secure = True                # Use a secure channel (default False)

   conn = Connection(
       host=host, port=port, username=username, database=database,
       password=password, cluster_uuid=cluster_uuid, secure=secure,
   )
   ```
4. Run a query:

   ```python
   query = """select * from <table>"""
   cursor = conn.cursor(catalog_name=catalog_name)
   query_id = cursor.execute(query)   # returns a query ID you can use to abort
   for row in cursor.fetchall():
       print(row)
   ```

## Apache Zeppelin

### Requirements

* Apache Zeppelin 0.8.2 or newer.
* The latest [e6data JDBC driver](/query-engine/developers/connecting-to-the-engine/jdbc.md).
* A [Direct or TLS connection](broken://pages/Wh4d9jql2OPH1ux7JE4O) on your cluster.
* The connection details from the cluster's **Connection Information** tab - JDBC URL, username, password (a [personal access token](/query-engine/guides/security/access-tokens/pat-and-service-account-keys.md)), driver class, and `AUTO_RESUME`.

### Connect

1. Go to the profile menu (top right) and select **Interpreter**.
2. Click **Create** to set up a new JDBC interpreter:
   * **Interpreter Name** - a name for the interpreter.
   * **Interpreter group** - select **jdbc**.
   * Set the connection properties (JDBC URL, username, password).
3. In the **Dependencies → Artifact** section, provide the file path of the e6data JDBC JAR.
4. Click **Save**.

{% hint style="info" %}
The driver class must be entered manually: `io.e6.jdbc.driver.E6Driver`.
{% endhint %}

## TLS/HTTPS

e6data uses globally trusted certificates, so the host and port from the connection dialog are sufficient. Any cluster requiring authentication also requires TLS/HTTPS - use the cluster's HTTPS URL in the connection string.

## See also

* [Python connector](/query-engine/developers/connecting-to-the-engine/python-connector.md)
* [JDBC](/query-engine/developers/connecting-to-the-engine/jdbc.md)
* [Access tokens](/query-engine/guides/security/access-tokens.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.e6data.com/query-engine/developers/bi-tool-recipes/notebooks.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
