【最佳实践】这样运用阿里云Elasticsearch,让你的数据库马上拥有强大的数据分析和搜索能力。

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 阿里云Elasticsearch拥有强大的搜索分析能力,最快可达5分钟/次。如何让你的阿里云云存储、云数据库产品拥有数据分析和搜索能力?那么这篇文章将会给你答案。

本文字数:2421
阅读时间:5~8分钟

以下是正文


阿里云Elasticsearch拥有强大的搜索分析能力,最快可达5分钟/次。如何让你的阿里云云存储、云数据库产品瞬间拥有数据分析和搜索能力?那么这篇文章将会给你答案。

说明 做数据同步时可能会产生公网流量费用,请您知晓。

准备工作

完成离线数据的分析与搜索,您需要完成以下几步操作:

image.png

  • 创建一个阿里云Elasticsearch实例,用来存储数据集成系统同步成功的数据。

  • 购买一台与阿里云Elasticsearch相同VPC的阿里云ECS,这台ECS将获取数据源数据并执行写阿里云Elasticsearch数据的任务(该任务将由数据集成系统统一下发)。

  • 开通DataWorks数据集成服务,并且将ECS作为一个可以执行任务的资源,注册到数据集成服务中去。

  • 配置一个数据同步脚本,并让其周期性执行

操作步骤

  1. 创建阿里云Elasticsearch和ECS实例

说明 地域、 专有网络、 虚拟交换机与您第一步中创建的专有网络保持一致。

image.png

  • 购买一台与阿里云Elasticsearch实例处于同一个VPC内的ECS服务器,并分配一个公网IP或开通弹性IP,为了节省您的成本,您可以复用已有且符合条件的ECS服务器。

本案例创建了一个位于华东1,可用区F的ECS实例,使用CentOS 7.4 64位系统,并勾选分配公网地址,网络配置如下:
image.png

说明
1、建议使用CentOS 6、CentOS 7 或者 Aliyun Linux。
2、如果您添加的ECS需要执行MaxCompute任务或者同步任务,需要检查当前ECS的python版本是否是python2.6或2.7 的版本(CentOS 5 的版本为2.4,其余CentOS自带了2.6以上版本)。
3、请确保 ECS 有公网 IP。

  1. 配置数据同步

a.进入DataWorks控制台创建项目,本案例使用名称为bigdata_DOC的DataWorks项目。

  • 如果您已经开通过DataWorks数据集成产品,您将会看到如下页面:
    image.png
  • 如果您未开通过DataWorks数据集成产品,将会看到如下页面。您需要按照步骤开通数据集成服务,此开通动作会产生费用,请您按照费用提示进行预算评估。
    image.png

b. 单击DataWorks项目下方的进入数据集成
c. 创建资源组。

  • 数据集成页面,选择左侧导航栏中的资源组,单击新增资源组
    1、按照以下步骤,完成资源组的添加:
    创建资源组:自定义输入资源组名称,本案例的资源组名称为es_test_resource。
    image.png
    2、添加服务器
    image.png
  • ECS UUID:步骤 3:连接ECS实例 服务器,执行 js dmidecode | grep UUID ,
    取返回值。

image.png

  • 机器 IP/机器CPU(核)/机器内存(GB):ECS实例的公网IP/CPU/内存。进入ECS控制台,单击实例名称链接,在配置信息模块,可以找到相关信息。
    3、 安装Agent:按照界面提示,完成安装Agent步骤。由于本案例使用的是VPC网络,不需要开通服务器的8000端口。
    4、 检查联通:联通成功后,状态会显示为可用。如果状态为不可用,您可以登录该ECS服务器,使用js tail -f /home/admin/alisatasknode/logs/heartbeat.log 命
    令查看DataWorks与该ECS服务器之间心跳报文是否超时。

d. 添加数据源。

  1. 在数据集成页面,选择左侧导航栏中的数据源,单击新增数据源。
  2. 选择数据源类型为MaxCompute
    image.png

  3. 输入数据源信息,本案例创建的数据源名称为odps_es,如下所示。
    image.png

  • ODPS空间名称:在DataWorks的数据开发页面,表对应的空间名称显示在左上角图标右侧,如下图所示:
    image.png
  • Access Id/ Access Key:鼠标移至您的用户名称上,选择 用户信息,如下图所示:
    image.png
    个人信息页面,鼠标移至您的用户头像上,单击 accesskeys进行获取,如下图所示:
    image.png

e.配置同步任务。

  1. 数据开发页面,单击左侧菜单栏中的数据开发,打开业务流程导航栏:
    image.png
  2. 右键单击导航栏中的数据集成,选择新建数据集成节点 > 同步节点,输入同步任务名称:
    image.png
  3. 成功创建同步节点后,单击新建同步节点右上角的转换脚本,选择确认即可进入脚本模式:
    image.png
  4. 单击脚本模式右上角的导入模板,在弹框中分别选择读取端的来源类型和数据源、写入端的目标类型和数据源,单击确认生成初始脚本:
    image.png
  5. 配置数据同步脚本,具体配置请参考[Elasticsearch的配置规则请参考配置Elasticsearch Writer。
    image.png

说明
1、同步脚本的配置分为三个部分,Reader用来配置您上游数据源(待同步数据的云产品)的config,Writer用来配置阿里云Elasticsearch的config,setting用来配置同步中的一些丢包和最大并发等。
2、endpoint为阿里云Elasticsearch的内网或外网地址,本案例使用内网地址,所以不用配置白名单。如果您是用的是外网地址,请在阿里云Elasticsearch的网络配置页面,配置阿里云Elasticsearch的公网地址访问白名单(包括[DataWorks服务器的IP地址]和您所使用的资源组的IP地址)。
3、Elasticsearch Writer中accessIdaccessKey需要配置您的阿里云Elasticsearch的访问用户名(默认为elastic)和密码。
4、index为阿里云Elasticsearch实例的索引,您需要使用该索引名称访问阿里云Elasticsearch的数据。本案例中的index名为es_index
5、如果您的ODPS表是一个分区表,需要在partition字段中设置分区信息,本案例中的分区信息为pt=1。

配置代码示例如下

{
"configuration": {
"reader": {
"plugin": "odps",
"parameter": {
  "partition": "pt=1",
  "datasource": "odps_es",
  "column": [
    "create_time",
    "category",
    "brand",
    "buyer_id",
    "trans_num",
    "trans_amount",
    "click_cnt"
  ],
  "table": "hive_doc_good_sale"
}
},
"writer": {
"plugin": "elasticsearch",
"parameter": {
  "accessId": "elastic",
  "endpoint": "http://es-cn-mpXXXXXXX.elasticsearch.aliyuncs.com:9200",
  "indexType": "elasticsearch",
  "accessKey": "XXXXXX",
  "cleanup": true,
  "discovery": false,
  "column": [
    {
      "name": "create_time",
      "type": "string"
    },
    {
      "name": "category",
      "type": "string"
    },
    {
      "name": "brand",
      "type": "string"
    },
    {
      "name": "buyer_id",
      "type": "string"
    },
    {
      "name": "trans_num",
      "type": "long"
    },
    {
      "name": "trans_amount",
      "type": "double"
    },
    {
      "name": "click_cnt",
      "type": "long"
    }
  ],
  "index": "es_index",
  "batchSize": 1000,
  "splitter": ","
}
},
"setting": {
"errorLimit": {
  "record": "0"
},
"speed": {
  "throttle": false,
  "concurrent": 1,
  "mbps": "1",
  "dmu": 1
}
}
},
"type": "job",
"version": "1.0"
}
  1. 同步脚本配置完成后,单击运行,将ODPS中的数据同步到阿里云Elasticsearch中。
    image.png

e.结果验证

  1. 进入阿里云Elasticsearch控制台,单击右上角的kibana控制台,选择Dev Tools
  2. 执行如下命令,查看数据是否已经同步到ES中。
    POST /es_index/_search?pretty
    {
    "query": { "match_all": {}}
    }
    
    es_index为您同步数据时,设置的index字段的值。
    如果数据同步成功,会显示以下界面:
    image.png
  3. 执行如下命令,按照trans_num字段对文档进行排序。
    POST /es_index/_search?pretty
    {
    "query": { "match_all": {} },
    "sort": { "trans_num": { "order": "desc" } }
    }
    
  4. 执行如下命令,搜索文档中的category和brand字段。

    POST /es_index/_search?pretty
    {
    "query": { "match_all": {} },
    "_source": ["category", "brand"]
    }
    
  5. 执行如下命令,搜索category生鲜的文档。

    POST /es_index/_search?pretty
    {
    "query": { "match": {"category":"生鲜"} }
    }
    

    更多命令和访问方式,请参考[ES访问测试]和Elastic.co官方帮助中心

常见问题

无法连通阿里云ES实例相关报错

一、检查在运行同步脚本之前,是否在页面右侧的配置任务资源组中选择了您前面步骤创建的资源组。

  • 是,执行下一步。
  • 否,单击页面右侧的配置任务资源组,选择您前面步骤创建的资源组,完成后单击运行

二、检查您的同步脚本配置是否正确,包括endpoint(您的阿里云Elasticsearch实例的内网或外网地址,使用外网地址需要配置公网地址访问白名单)、accessId(阿里云Elasticsearch实例的访问用户名,默认为elastic)和accessKey(阿里云Elasticsearch实例的访问密码)。

相关活动:

限时折扣截止--11/29

  1. 新购,首月75折
  2. 新购/续购/升级,预购6个月85折
  3. 新购/续购/升级,预购12个月8折

点击下方产品链接购买

Elaticsearch
提供100%兼容开源Elasticsearch的功能,以及Security、Machine Learning、Graph、APM等商业功能,致力于数据分析、数据搜索等场景服务。与开源社区背后商业公司Elastic战略合作,为客户提供企业级权限管控、安全监控告警、自动报表生成等场景服务。

加入我们

9.png

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
2天前
|
机器学习/深度学习 人工智能 运维
阿里云技术公开课直播预告:基于阿里云 Elasticsearch 构建 AI 搜索和可观测 Chatbot
阿里云技术公开课预告:Elastic和阿里云搜索技术专家将深入解读阿里云Elasticsearch Enterprise版的AI功能及其在实际应用。
阿里云技术公开课直播预告:基于阿里云 Elasticsearch 构建 AI 搜索和可观测 Chatbot
|
5天前
|
存储 人工智能 API
(Elasticsearch)使用阿里云 infererence API 及 semantic text 进行向量搜索
本文展示了如何使用阿里云 infererence API 及 semantic text 进行向量搜索。
|
2月前
|
存储 人工智能 自然语言处理
Elasticsearch Inference API增加对阿里云AI的支持
本文将介绍如何在 Elasticsearch 中设置和使用阿里云的文本生成、重排序、稀疏向量和稠密向量服务,提升搜索相关性。
90 14
Elasticsearch Inference API增加对阿里云AI的支持
|
2月前
|
存储 缓存 监控
深入解析:Elasticsearch集群性能调优策略与最佳实践
【10月更文挑战第8天】Elasticsearch 是一个分布式的、基于 RESTful 风格的搜索和数据分析引擎,它能够快速地存储、搜索和分析大量数据。随着企业对实时数据处理需求的增长,Elasticsearch 被广泛应用于日志分析、全文搜索、安全信息和事件管理(SIEM)等领域。然而,为了确保 Elasticsearch 集群能够高效运行并满足业务需求,需要进行一系列的性能调优工作。
160 3
|
5月前
|
存储 人工智能 自然语言处理
阿里云Elasticsearch AI场景语义搜索最佳实践
本文介绍了如何使用阿里云Elasticsearch结合搜索开发工作台搭建AI语义搜索。
17314 68
|
3月前
|
存储 SQL 缓存
数据库测试|Elasticsearch和ClickHouse的对决
由于目前市场上主流的数据库有许多,这次我们选择其中一个比较典型的Elasticsearch来和ClickHouse做一次实战测试,让大家更直观地看到真实的比对数据,从而对这两个数据库有更深入的了解,也就能理解为什么我们会选择ClickHouse。
数据库测试|Elasticsearch和ClickHouse的对决
|
2月前
|
SQL 分布式计算 数据挖掘
加速数据分析:阿里云Hologres在实时数仓中的应用实践
【10月更文挑战第9天】随着大数据技术的发展,企业对于数据处理和分析的需求日益增长。特别是在面对海量数据时,如何快速、准确地进行数据查询和分析成为了关键问题。阿里云Hologres作为一个高性能的实时交互式分析服务,为解决这些问题提供了强大的支持。本文将深入探讨Hologres的特点及其在实时数仓中的应用,并通过具体的代码示例来展示其实际应用。
243 0
|
4月前
|
存储 数据可视化 数据挖掘
使用Elasticsearch进行实时数据分析与预测
【8月更文第28天】Elasticsearch 是一个分布式的、RESTful 风格的搜索和分析引擎,它能够实时地存储、检索以及分析大规模的数据集。结合 Logstash 和 Kibana,它们共同构成了 Elastic Stack,这是一套强大的工具组合,适用于收集、存储、分析和可视化数据。
179 0
|
4月前
|
机器学习/深度学习 数据采集 缓存
Elasticsearch与机器学习集成的最佳实践
【8月更文第28天】Elasticsearch 提供了强大的搜索和分析能力,而机器学习则能够通过识别模式和预测趋势来增强这些能力。将两者结合可以实现更智能的搜索体验、异常检测等功能。
126 0
|
5月前
|
存储 数据挖掘 OLAP
阿里云 EMR Serverless StarRocks OLAP 数据分析场景解析
阿里云 E-MapReduce Serverless StarRocks 版是阿里云提供的 Serverless StarRocks 全托管服务,提供高性能、全场景、极速统一的数据分析体验,具备开箱即用、弹性扩展、监控管理、慢 SQL 诊断分析等全生命周期能力。内核 100% 兼容 StarRocks,性能比传统 OLAP 引擎提升 3-5 倍,助力企业高效构建大数据应用。本篇文章对阿里云EMR Serverless StarRocks OLAP 数据分析场景进行解析、存算分离架构升级以及 Trino 兼容,无缝替换介绍。
19219 12

热门文章

最新文章

相关产品

  • 检索分析服务 Elasticsearch版
  • 下一篇
    DataWorks