mirror of
https://github.com/apache/superset.git
synced 2026-05-08 09:25:56 +00:00
* chore: create `PrestoBaseEngineSpec` class that share common functions between Presto and Trino Signed-off-by: Đặng Minh Dũng <dungdm93@live.com> * feat(Trino): support CertificateAuthentication * chore(Presto): move `get_function_names` to `PrestoBaseEngineSpec` Signed-off-by: Đặng Minh Dũng <dungdm93@live.com> * chores(Presto): remove `is_readonly_query` * feat(Trino): implement `extra_table_metadata` * feat(Trino): specify `User-Agent` Signed-off-by: Đặng Minh Dũng <dungdm93@live.com> * fix: pylint Signed-off-by: Đặng Minh Dũng <dungdm93@live.com> * chores(Presto): move `PrestoBaseEngineSpec` to `presto.py` Signed-off-by: Đặng Minh Dũng <dungdm93@live.com> * fix(Presto): typing annotations Signed-off-by: Đặng Minh Dũng <dungdm93@live.com> Signed-off-by: Đặng Minh Dũng <dungdm93@live.com>
116 lines
2.8 KiB
Plaintext
116 lines
2.8 KiB
Plaintext
---
|
|
title: Trino
|
|
hide_title: true
|
|
sidebar_position: 34
|
|
version: 1
|
|
---
|
|
|
|
## Trino
|
|
|
|
Supported trino version 352 and higher
|
|
|
|
### Connection String
|
|
The connection string format is as follows:
|
|
```
|
|
trino://{username}:{password}@{hostname}:{port}/{catalog}
|
|
```
|
|
|
|
If you are running Trino with docker on local machine, please use the following connection URL
|
|
```
|
|
trino://trino@host.docker.internal:8080
|
|
```
|
|
|
|
### Authentications
|
|
#### 1. Basic Authentication
|
|
You can provide `username`/`password` in the connection string or in the `Secure Extra` field at `Advanced / Security`
|
|
* In Connection String
|
|
```
|
|
trino://{username}:{password}@{hostname}:{port}/{catalog}
|
|
```
|
|
|
|
* In `Secure Extra` field
|
|
```json
|
|
{
|
|
"auth_method": "basic",
|
|
"auth_params": {
|
|
"username": "<username>",
|
|
"password": "<password>"
|
|
}
|
|
}
|
|
```
|
|
|
|
NOTE: if both are provided, `Secure Extra` always takes higher priority.
|
|
|
|
#### 2. Kerberos Authentication
|
|
In `Secure Extra` field, config as following example:
|
|
```json
|
|
{
|
|
"auth_method": "kerberos",
|
|
"auth_params": {
|
|
"service_name": "superset",
|
|
"config": "/path/to/krb5.config",
|
|
...
|
|
}
|
|
}
|
|
```
|
|
|
|
All fields in `auth_params` are passed directly to the [`KerberosAuthentication`](https://github.com/trinodb/trino-python-client/blob/0.306.0/trino/auth.py#L40) class.
|
|
|
|
#### 3. Certificate Authentication
|
|
In `Secure Extra` field, config as following example:
|
|
```json
|
|
{
|
|
"auth_method": "certificate",
|
|
"auth_params": {
|
|
"cert": "/path/to/cert.pem",
|
|
"key": "/path/to/key.pem"
|
|
}
|
|
}
|
|
```
|
|
|
|
All fields in `auth_params` are passed directly to the [`CertificateAuthentication`](https://github.com/trinodb/trino-python-client/blob/0.315.0/trino/auth.py#L416) class.
|
|
|
|
#### 4. JWT Authentication
|
|
Config `auth_method` and provide token in `Secure Extra` field
|
|
```json
|
|
{
|
|
"auth_method": "jwt",
|
|
"auth_params": {
|
|
"token": "<your-jwt-token>"
|
|
}
|
|
}
|
|
```
|
|
|
|
#### 5. Custom Authentication
|
|
To use custom authentication, first you need to add it into
|
|
`ALLOWED_EXTRA_AUTHENTICATIONS` allow list in Superset config file:
|
|
```python
|
|
from your.module import AuthClass
|
|
from another.extra import auth_method
|
|
|
|
ALLOWED_EXTRA_AUTHENTICATIONS: Dict[str, Dict[str, Callable[..., Any]]] = {
|
|
"trino": {
|
|
"custom_auth": AuthClass,
|
|
"another_auth_method": auth_method,
|
|
},
|
|
}
|
|
```
|
|
|
|
Then in `Secure Extra` field:
|
|
```json
|
|
{
|
|
"auth_method": "custom_auth",
|
|
"auth_params": {
|
|
...
|
|
}
|
|
}
|
|
```
|
|
|
|
You can also use custom authentication by providing reference to your `trino.auth.Authentication` class
|
|
or factory function (which returns an `Authentication` instance) to `auth_method`.
|
|
|
|
All fields in `auth_params` are passed directly to your class/function.
|
|
|
|
**Reference**:
|
|
* [Trino-Superset-Podcast](https://trino.io/episodes/12.html)
|