Kibana depends on Elasticsearch to perform the data queries that it visualizes, but Elasticsearch doesn't natively work with most databases. While some have taken the approach of creating connectors from their product to Elasticsearch, we have taken a more direct approach. We have built a small service which bypasses Elasticsearch and connects Kibana directly to Kinetica. This service takes the place of Elasticsearch, receiving queries from Kibana, converting them to Kinetica queries, and returning the results in the format Kibana expects. Currently we only support Kibana version 4.x
Edit /opt/gpudb/core/etc/gpudb.conf, set enable_kibana_connector:
enable_kibana_connector = true
Restart Kinetica:
sudo service gpudb restart
If you will be using an external instance of Kibana, continue to the next section.
Since our connector takes the place of Elasticsearch, we must point Kibana to our instead.
Edit /opt/kibana/config/kibana.yml
elasticsearch.url: "http://<kinetica_host>:8090"
You probably will never need to configure the connector, but you can change the port, loglevel, and other parameters by editing the file /opt/gpudb/connectors/kibana/config.json. This file contains the parameters:
"port": 8090,
"logLevel": "INFO",
"gpudbUrl": "http://localhost:9191",
"gpudbLogLevel": "FATAL",
"pingInterval": 60000,
"fetchSize": 10000,
"maxFetch": 99999,
"maxAggregationCalls": 100
Geohash grid aggregation: When zooming in on a region, Kibana doesn’t filter its query to just the area in view. Therefore, when zoomed in it can take a really long time because it’s pulling down thousands and thousands (if not potentially millions) of points that it’s not actually displaying. There is a record count cutoff in the config file after which it will error out to prevent crashing the system.
Scripted fields use Kinetica's expression syntax, not Elasticsearch's. Therefore, the Kibana help screen for this syntax should be ignored.
Kinetica supports nested aggregations in Kibana, but many of them require per-bucket Kinetica calls. , so if you for example nest a histogram in a histogram in a histogram it’s going to be making an exponential number of Kinetica calls and probably won’t perform very well. There is a query count cutoff in the config file after which it will error out to prevent crashing the system.
Changing any of the other settings in the UI does nothing.