[]
        
(Showing Draft Content)

ElasticSearch 数据连接

Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。

本节为您介绍如何在系统中连接南大通用 ElasticSearch 数据库。

驱动说明

创建ElasticSearch 数据连接前,需要手动下载驱动。

Elasticsearch jdbc 驱动下载地址:https://www.elastic.co/cn/downloads/past-releases#jdbc-client

在系统的安装目录 Datasource service 下,手动创建目录 third-party-drivers/elasticsearch,将下载好的驱动放入即可

image2022-6-6_11-22-10.png

连接 ElasticSearch 数据源

type=info

连接 ElasticSearch 数据源之前,还需由管理员在后台管理中将 ElasticSearch 数据源勾选并保存,以使前台创建数据源时可以选择 ElasticSearch。详情请见数据源管理。

image2022-6-6_11-23-3.png

1. 在系统的门户网站中单击 image2018-7-30_10-56-34.png,选择数据源

image2022-5-12_16-39-23.png

2. 在左侧数据源列表或者在右侧图标视图中选择 ElasticSearch(Beta)

image2022-6-6_11-24-17.png

3. 填写数据库配置信息。

image2021-3-30_17-15-28.png

参数

说明

端口

端口号,默认为9200。

用户名

连接数据库的用户名。

服务器

服务器名或IP。

密码

连接数据库用户的密码。

名称

必填参数,自定义输入数据源的名称。

使用配置连接字符串(高级)

如果您勾选了此选项,则只需要填写此项与数据源的名称即可。填写此项的格式为:

jdbc:es://myServerAddress:mySeverPort/?user=myUser&password=myPassword

使用表/字段名称映射

修改数据源中的表名或列名,使其在数据集中显示为希望的名称。

详情请见使用表/字段名称映射(修改数据源表名或列名)

4. (可选)可通过单击页面左下角的测试数据连接测试连接是否正常。

image2021-3-30_17-22-49.png

连接成功后,单击确定

image2019-11-4_17-33-26.png

5. 单击创建,创建数据源。

image2021-3-30_17-23-5.png

6. 创建成功后,在门户站点中的未分类数据源中均可以看到刚刚创建的数据源。单击数据源的名称即可预览。

image2022-5-12_16-39-58.png

数据源创建成功后即可进行缓存/直连数据集,以供后续数据分析展示使用。

数据源管理

数据源创建成功后,可在门户网站中对其进行管理操作。

可以像其他文档一样进行编辑、设为主页、复制链接、管理分类、删除、下载、重命名等一系列管理操作,具体操作请详见第三章 门户网站介绍

注意事项

我们系统当前支持的 SQL 标准是SQL92,但是 ElasticSearch 的原始 SQL 语法与 SQL92 有很大不同,因此我们选择 ElasticSearch 的 JDBC 驱动程序来支持标准 SQL,但是它有如下限制。

  1. ElasticSearch 数据源不支持联合和连接操作,因此在数据集中,不支持将两个 ElasticSearch 表进行联合或连接操作。但是可以跨数据源与其他数据源中的表联合或连接。

  2. 在数据集中使用聚合函数时,不支持引用字段别名。

  3. 在数据集设计器中,不能使用“分组”模式,仅能使用“详情”模式。

  4. 当前版本中,不支持在 ElasticSearch 上使用任何参数。

  5. 在系统中无法使用不包含任何字段和内容,也即空的 Index。

  6. 仅支持 ElasticSearch SQL数据类型,不支持其他类型。也即只有以下 DataType 可以在数据集设计器中选择使用:NULLBOOLEANTINYINTSMALLINTINTEGERBIGINTDOUBLEREALFLOATVARCHARVARBINARYTIMESTAMP

  7. 不支持使用函数 DISTINCT_COUNT

  8. ElasticSearch double 类型表示的范围比 javascript double 类型的范围更大,因此多余的数据将被自动拦截。

  9. 例如,如果为f或 double 类型,则数据库中显示的数字为-9223372036884775808,但是页面上的显示可能为-9223372036884776000。

  10. 某些双精度类型可能会降低精度。

  11. 例如,13533592802显示为13533592801.999998。

  12. 无法支持值为“ true”,“ false”或“”的布尔值字段。Elasticsearch JDBC 驱动程序仅查询值为true或false的布尔字段。

  13. 系统中不能显示 ElasticSearch 数据库中的 objectnested 数据类型,所以建议您尽量避免使用这两种数据类型。