更新时间:2024-11-29 GMT+08:00

配置Elasticsearch数据源

操作场景

本章节指导用户在HSConsole界面添加Elasticsearch数据源。

  • 如果对接的Elasticsearch数据源开启了Ranger鉴权,需要将从HetuEngine访问Elasticsearch数据源的用户在数据源集群的Ranger中进行赋权。
  • HetuEngine对ElasticSearch数据源的元数据信息大小写不敏感,只能正确处理小写格式的元数据信息。

操作步骤

  1. 获取Elasticsearch数据源的“ca.crt”文件。

    1. 登录Elasticsearch数据源所在集群的FusionInsight Manager页面。
    2. 在“主页”右上方单击“下载客户端”,根据界面提示下载“完整客户端”文件至本地。
    3. 解压下载的客户端文件,获取“FusionInsight_Cluster_1_Services_ClientConfig”路径下的“ca.crt”文件。

  2. 生成Elasticsearch数据源开启TLS安全后的JKS格式的keystore文件。

    1. 在获取客户端文件的节点配置Java环境。
    2. 执行以下命令,在“ca.crt”文件所在目录生成“keystore.jks”文件。

      keytool -import -alias es -file ca.crt -keystore keystore.jks -storepass 自定义keystore.jks文件密码

  3. 使用HetuEngine管理员用户登录FusionInsight Manager,选择“集群 > 服务 > HetuEngine”,进入HetuEngine服务页面。
  4. 在概览页签下的“基本信息”区域,单击“HSConsole WebUI”后的链接,进入HSConsole界面。
  5. 选择“数据源”,单击“添加数据源”。在“添加数据源”页面填写参数。

    1. 配置“基本配置”,填写数据源名称,选择数据源类型“Elasticsearch”。
    2. 配置“Elasticsearch配置”,参数配置请参考表1
      表1 Elasticsearch配置

      参数

      描述

      取值样例

      驱动

      默认为“elasticsearch”。

      elasticsearch

      主机IP

      Elasticsearch主机的IP地址。

      登录FusionInsight Manager,选择“集群 > 服务 > Elasticsearch > 实例”,在实例列表可查看EsNode节点所在的主机IP地址。随机选取一个IP地址即可,目前仅支持填写一个IP地址。

      • IPV4:10.10.10.11
      • IPV6:[10:10::10:11]

      HTTP端口

      Elasticsearch的HTTP端口,默认为24100。

      24100

      schema名称

      HetuEngine生成的默认schema的名称。

      default

      安全认证机制

      开启安全模式后默认为PASSWORD。

      PASSWORD

      用户名

      开启安全模式时填写此参数。

      连接Elasticsearch认证的用户名。

      根据连接Elasticsearch的用户名修改。

      密码

      开启安全模式时填写此参数。

      连接Elasticsearch认证的密码。

      根据连接Elasticsearch的用户名密码修改。

      开启TLS

      是否在Elasticsearch开启TLS。

      Keystore文件

      开启安全模式时填写此参数。

      开启TLS时用到的keystore文件,在本地选择2生成的“keystore.jks”文件。

      keystore.jks

      Keystore密码

      开启安全模式时填写此参数,为2.b中填写的自定义keystore.jks文件密码。

      开启TLS时用到keystore文件的密码。

      -

    3. (可选)自定义配置。
      • 单击“增加”可以增加自定义配置参数。配置ElasticSearch数据源自定义参数,参考表2
        表2 ElasticSearch数据源自定义配置参数

        名称

        描述

        取值样例

        allow-aggregation-pushdown

        aggregation下推功能是否启用,默认开启。

        • true:开启下推。
        • false:不开启下推功能。

        true

        elasticsearch.query-data-immediate.enabled

        对ElasticSearch数据源执行表操作后,是否在ElasticSearrch数据源侧立即refresh生效,默认false。

        • true:开启。
        • false:不开启。

        false

      • 单击“删除”可以删除已增加的自定义配置参数。
    4. 单击“确定”。

  6. 登录集群客户端所在节点,执行以下命令,切换到客户端安装目录并认证用户。

    cd /opt/client

    source bigdata_env

    kinit HetuEngine组件操作用户 (普通模式集群跳过)

  7. 执行以下命令,登录数据源的catalog。

    hetu-cli --catalog 数据源名称 --schema 数据库名

    例如执行以下命令:

    hetu-cli --catalog elasticsearch_1 --schema default

  8. 执行以下命令,可正常查看数据库表信息或不报错即表示连接成功。

    show tables;

数据类型映射

ElasticSearch数据类型

HetuEngine数据类型

boolean

BOOLEAN

binary

VARBINARY

byte

TINYINT

short

SMALLINT

integer

INTEGER

long

BIGINT

float

REAL

double

DOUBLE

keyword

VARCHAR

text

VARCHAR

ip

IPADDRESS

性能优化

支持使用查询下推功能,提高查询速度。

约束

  • HetuEngine支持对接ElasticSearch操作的SQL语法:SHOW CATALOGS/SCHEMAS/TABLES、SELECT、DROP TABLE、DELETE、UPDATE、DESCRIBE。
  • 不支持如下语法:CREATE SCHEMA、CREATE TABLE、CREATE VIEW、ALTER TABLE、ALTER VIEW。
  • 不支持查询Elasticsearch中有重复列名的表,如列名为“name”和“NAME”。
  • 不推荐查询Elasticsearch表名中含有特殊字符的表,如“-”,“.”等,若需要加入特殊字符的表,需要在查询时将包含特殊字符的表用双引号表达。