69 lines
1.9 KiB
Plaintext
69 lines
1.9 KiB
Plaintext
---
|
||
title: Elasticsearch
|
||
hide_title: true
|
||
sidebar_position: 18
|
||
version: 1
|
||
---
|
||
|
||
## Elasticsearch
|
||
|
||
The recommended connector library for Elasticsearch is
|
||
[elasticsearch-dbapi](https://github.com/preset-io/elasticsearch-dbapi).
|
||
|
||
The connection string for Elasticsearch looks like this:
|
||
|
||
```
|
||
elasticsearch+http://{user}:{password}@{host}:9200/
|
||
```
|
||
|
||
**Using HTTPS**
|
||
|
||
```
|
||
elasticsearch+https://{user}:{password}@{host}:9200/
|
||
```
|
||
|
||
Elasticsearch as a default limit of 10000 rows, so you can increase this limit on your cluster or
|
||
set Superset’s row limit on config
|
||
|
||
```
|
||
ROW_LIMIT = 10000
|
||
```
|
||
|
||
You can query multiple indices on SQL Lab for example
|
||
|
||
```
|
||
SELECT timestamp, agent FROM "logstash"
|
||
```
|
||
|
||
But, to use visualizations for multiple indices you need to create an alias index on your cluster
|
||
|
||
```
|
||
POST /_aliases
|
||
{
|
||
"actions" : [
|
||
{ "add" : { "index" : "logstash-**", "alias" : "logstash_all" } }
|
||
]
|
||
}
|
||
```
|
||
|
||
Then register your table with the alias name logstasg_all
|
||
|
||
**Time zone**
|
||
|
||
By default, Superset uses UTC time zone for elasticsearch query. If you need to specify a time zone,
|
||
please edit your Database and enter the settings of your specified time zone in the Other > ENGINE PARAMETERS:
|
||
|
||
```
|
||
{
|
||
"connect_args": {
|
||
"time_zone": "Asia/Shanghai"
|
||
}
|
||
}
|
||
```
|
||
|
||
Another issue to note about the time zone problem is that before elasticsearch7.8, if you want to convert a string into a `DATETIME` object,
|
||
you need to use the `CAST` function,but this function does not support our `time_zone` setting. So it is recommended to upgrade to the version after elasticsearch7.8.
|
||
After elasticsearch7.8, you can use the `DATETIME_PARSE` function to solve this problem.
|
||
The DATETIME_PARSE function is to support our `time_zone` setting, and here you need to fill in your elasticsearch version number in the Other > VERSION setting.
|
||
the superset will use the `DATETIME_PARSE` function for conversion.
|