使用 Meltano 将数据从 Snowflake 导入到 Elasticsearch:开发者之旅

这篇具有很好参考价值的文章主要介绍了使用 Meltano 将数据从 Snowflake 导入到 Elasticsearch:开发者之旅。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:来自 Elastic Dmitrii Burlutskii

使用 Meltano 将数据从 Snowflake 导入到 Elasticsearch:开发者之旅,Elasticsearch,Elastic,elasticsearch,大数据,搜索引擎,数据库,全文检索

在 Elastic 的搜索团队中,我们一直在探索不同的 ETL 工具以及如何利用它们将数据传输到 Elasticsearch,并在传输的数据上实现 AI 助力搜索。今天,我想与大家分享我们与 Meltano 生态系统以及 Meltano Elasticsearch 加载器的故事。

Meltano 是一个声明式的代码优先数据集成引擎,允许你在不同的存储之间同步数据。在 hub.meltano.com 上有许提取器 (extractors) 和加载器 (loaders) 可用。如果你的数据存储在 Snowflake 中,并且想要为你的客户构建一个开箱即用的搜索体验,你可能会考虑使用 Elasticsearch,在那里你可以基于你拥有的数据为客户构建语义搜索。今天,我们将重点介绍如何将数据从 Snowflake 同步到 Elasticsearch。

要求

Snowflake 账号。 你在注册后将收到以下所有账号信息,或者你可以从 Snowflake 面板中获取它们。

  1. 账户用户名
  2. 账户密码
  3. 账户标识符(查看此处的说明以获取它)

Snowflake 数据集

如果你创建了一个新的 Snowflake 账户,你将拥有用于实验的示例数据。

使用 Meltano 将数据从 Snowflake 导入到 Elasticsearch:开发者之旅,Elasticsearch,Elastic,elasticsearch,大数据,搜索引擎,数据库,全文检索

然而,我将使用一个公共空气质量数据集,其中包含二氧化氮(NO2)的测量数据。

Elastic 账号

访问 https://cloud.elastic.co 并注册账号。

点击 “Create deployment”。在弹出窗口中,你可以更改或保留默认设置。

一旦准备好部署,请点击 “Continue”(或点击 “Open Kibana”)。它将重定向你到 Kibana 仪表板。

转到 Stack Management -> Security -> API keys,并生成一个新的 API 密钥。

安装 Meltano

在我的示例中,我将使用 Meltano Python 包,但你也可以将其作为 Docker 容器安装。

pip install "meltano"

添加 Snowflake 提取器

meltano add extractor tap-snowflake --variant=meltanolabs

验证提取器

meltano invoke tap-snowflake --test

添加 Elasticsearch 加载器

meltano add loader target-elasticsearch

配置提取器和加载器:

有多种方法可以配置 Meltano 提取器和加载器:

  • 编辑 meltano.yml
  • 使用 CLI 命令,例如
meltano config {loader} set config_name config_value

使用 CLI 交互模式

meltano config {loader} set --interactive

我将使用交互模式。

要配置 Snowflake 提取器,请运行以下命令并至少提​​供帐户标识符、用户名、密码和数据库。

meltano config tap-snowflake set --interactive

你应该会看到以下屏幕,你可以在其中选择要配置的选项。

使用 Meltano 将数据从 Snowflake 导入到 Elasticsearch:开发者之旅,Elasticsearch,Elastic,elasticsearch,大数据,搜索引擎,数据库,全文检索

配置提取后,你可以测试连接。 只需运行以下命令:

配置 Elasticsearch 加载器并提供主机、端口、架构和 API 密钥,

meltano config target-elasticsearch set --interactive

如果你想更改索引名称,可以运行以下命令并更改它:

meltano config target-elasticsearch set index_format my-index-name
meltano config target-elasticsearch set index_format my-index-name

比如, 默认索引字符串定义为 ecs-{{ stream_name }}-{{ current_timestamp_daily}} ,结果为 ecs-animals-2022-12-25,其中流名称为 animals。

配置完所有内容后,我们就可以开始同步数据。

meltano run tap-snowflake target-elasticsearch

同步开始后,你可以转到 Kibana 并看到创建了一个新索引并且有一些索引文档。

使用 Meltano 将数据从 Snowflake 导入到 Elasticsearch:开发者之旅,Elasticsearch,Elastic,elasticsearch,大数据,搜索引擎,数据库,全文检索

你可以通过单击索引名称来查看文档。 你应该查看你的文件。

使用 Meltano 将数据从 Snowflake 导入到 Elasticsearch:开发者之旅,Elasticsearch,Elastic,elasticsearch,大数据,搜索引擎,数据库,全文检索

使用你的索引设置(或映射)

如果我们开始同步数据,加载器将自动创建一个具有动态映射的新索引,这意味着 Elasticsearch 将处理索引中的字段及其类型。 如果我们愿意,我们可以通过提前创建索引并应用我们需要的设置来更改此行为。 咱们试试吧。

导航到 Kibana -> DevTools 并运行以下命令:

创建新的摄入管道

PUT _ingest/pipeline/drop-values-10
{
  "processors": [
    {
      "drop": {
      "description": "Drop documents with the value < 10",
      "if": "ctx.datavalue < 10"
      }
    }
  ]
}

这将删除 datavalue < 10 的所有文档。

创建新索引

PUT my-snowflake-data

应用索引设置

PUT my-snowflake-data/_settings
{
  "index": {
    "default_pipeline": "_ingest/pipeline/drop-values-10"
  }
}

更改 Meltano 中的索引名称

meltano config target-elasticsearch set index_format my-snowflake-data

开始同步作业

meltano run tap-snowflake target-elasticsearch

工作完成后,你可以看到索引中的文档比我们之前创建的要少

使用 Meltano 将数据从 Snowflake 导入到 Elasticsearch:开发者之旅,Elasticsearch,Elastic,elasticsearch,大数据,搜索引擎,数据库,全文检索

结论

我们已经成功地将数据从 Snowflake 同步到 Elastic Cloud。我们让 Meltano 为我们创建了一个新索引,并负责索引映射,我们将数据同步到了一个具有预定义管道的现有索引中。

我想强调在我旅程中记下的一些关键点:

Elasticsearch 加载器(Meltano Hub 上的页面)

  • 它尚未准备好处理大量的数据。你需要调整默认的 Elasticsearch 配置,使其更加健壮。我已经提交了一个 Pull Request,以暴露 “request_timeout” 和 “retry_on_timeout” 选项,这将会有所帮助。
  • 它使用 Elasticsearch Python 客户端的 8.x 分支,因此你可以确保它支持最新的 Elasticsearch 功能。
  • 它同步发送数据(不使用 Python AsyncIO),因此当您需要传输大量数据时可能会相当慢。

Meltano CLI

  • 它非常棒。你不需要 UI,所以一切都可以在终端中配置,这为工程师提供了大量的自动化选项。
  • 你可以仅通过一个命令即可运行按需同步。不需要其他正在运行的服务。

复制/增量同步

  • 如果你的管道需要数据复制或增量同步,你可以访问这个页面阅读更多信息。

另外,我想提一下 Meltano Hub 真的很棒。它易于导航并找到你需要的内容。此外,你可以通过查看有多少客户使用它们来轻松比较不同的加载器或抽取器。

如果你对构建基于 AI 的应用程序感兴趣,请在以下博客文章中查找更多信息:

  • 在你的数据集上实现全文和语义搜索能力。
  • 连接你的数据与 LLMs,构建问题 - 答案。
  • 构建一个使用检索增强生成(RAG)模式的聊天机器人。

准备将 RAG 构建到你的应用中了吗?想要尝试不同的 LLMs 与向量数据库吗? 查看我们在 Github 上关于 LangChain、Cohere 等的示例 notebooks,并加入即将开始的 Elasticsearch 工程师培训!

原文:Ingest Data from Snowflake to Elasticsearch using Meltano: A developer’s journey — Elastic Search Labs文章来源地址https://www.toymoban.com/news/detail-851960.html

到了这里,关于使用 Meltano 将数据从 Snowflake 导入到 Elasticsearch:开发者之旅的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elasticsearch 批量导入数据

    **Elasticsearch**是一款非常高效的全文检索引擎。 **Elasticsearch**可以非常方便地进行数据的多维分析,所以大数据分析领域也经常会见到它的身影,生产环境中绝大部分新产生的数据可以通过应用直接导入,但是历史或初始数据可能会需要单独处理,这种情况下可能遇到需要导

    2023年04月11日
    浏览(41)
  • elasticSearch数据的导入和导出

    es数据的导入和导出需要借助于elasticdump工具,这是一个nodejs的插件,安装方式直接使用 npm即可,安装指令如下: 如果您的电脑还未安装Node环境,请移步此处:《npm安装教程》 注意:demo我的索引名称

    2024年02月11日
    浏览(37)
  • elasticsearch通过文件批量导入数据

    有一个需求,需要测试es单个索引的性能,需要将一个索引灌1亿条数据,比较了3种常用的批量导入方式,选择了文件+shell批量导入 索引的mapping,如下 通过restAPI导入数据在数据量非常小的情况下也可以使用,一次性导入一亿条数据,这个要很长时间,非常慢,不推荐 这种方

    2023年04月09日
    浏览(32)
  • 云数据仓库Snowflake论文完整版解读

    本文是对于Snowflake论文的一个完整版解读,对于从事大数据数据仓库开发,数据湖开发的读者来说,这是一篇必须要详细了解和阅读的内容,通过全文你会发现整个数据湖设计的起初原因以及从各个维度(架构设计、存算分离、弹性伸缩、查询优化、故障恢复、性能优化等等

    2024年04月14日
    浏览(27)
  • 从mysql 数据库表导入数据到elasticSearch的几种方式

            从MySQL数据库导入数据到Elasticsearch有几种方式,主要包括以下几种:         1. 使用Logstash:         Logstash是一个开源的数据收集引擎,可以用来从不同的数据源导入数据到Elasticsearch。它具有强大的数据处理能力和插件生态系统,可以方便地实现数据的解

    2024年04月12日
    浏览(52)
  • Bytebase 2.3.0 - Snowflake SQL 审核,Oracle 数据脱敏和数据导出中心

    支持 Snowflake 的 SQL 审核❄️。 新增数据导出中心。 支持 Oracle 的数据脱敏。 支持配置外部审批节点,并用于自定义审批流中。 自定义审批流支持「退回」操作。 项目的「租户模式」改名为「批量模式」。 优化了数据查询和导出的流程体验。 优化了项目成员界面。 修复了

    2024年02月11日
    浏览(55)
  • kettle工具连接elasticsearch 7并导入MySQL表数据-简述

    一、简述 工作中需要利用kettle开源ETL工具将MySQL数据库中表数据同步到elasticsearch集群中。为此特记录一下操作方式,留作记录和学习。 二、环境 kettle工具:kettle 9.2 elasticsearch集群:7.11.1 集群配置信息: 集群名称:my-application 集群节点:192.168.172.200(node-1)、192.168.172.201(node

    2024年02月01日
    浏览(44)
  • 将uniAPP项目导入到微信开发者工具中保姆级教程

    uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。 uni-app官网 uni-app在手,做啥都不愁。即使不跨端,uni-app也是更好的小程序

    2024年02月04日
    浏览(47)
  • 安装Logstash并导入Movielens测试数据集(基于elasticsearch-8.5.2版本)

    组件 安装包 下载地址 Logstash logstash-8.5.2-linux-x86_64.tar.gz elastic官网:https://www.elastic.co/cn/downloads/past-releases#logstash elastic中文社区:https://elasticsearch.cn/download/ MovieLens 测试数据集 ml-latest-small.zip https://grouplens.org/datasets/movielens/ 自定义部署标准 标准描述 es elasticsearch不允许使用

    2024年02月15日
    浏览(47)
  • 微信开发者工具-导入小程序项目会自动切换到小游戏打开出错的解决方案

    微信开发者工具导入小程序项目会自动切换到小游戏打开出错, 提示appid错误,如下图 错误 Error: INVALID_TOKEN... 表示网络已断开, 检查开发工具是否连接到网络, 或注销重新登录开发工具试试 如果提示缺少 game.json ,表示当前打开的不是小游戏项目,要选小程序项目后再导入

    2024年02月11日
    浏览(98)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包