Elasticsearch:将数据从 Snowflake 摄取到 Elasticsearch

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

作者:来自 Elastic Ashish Tiwari

Elasticsearch:将数据从 Snowflake 摄取到 Elasticsearch,Logstash,Elastic,elasticsearch,大数据,搜索引擎,数据库,全文检索,运维

为了利用 Elasticsearch® 提供的强大搜索功能,许多企业在 Elasticsearch 中保留可搜索数据的副本。 Elasticsearch 是一种经过验证的技术,适用于传统文本搜索以及用于语义搜索用例的向量搜索。 Elasticsearch Relevance EngineTM (ESRE) 使你能够在专有数据上添加语义搜索,这些数据可以与生成式 AI 技术集成以构建现代搜索体验。

Snowflake 是一种完全托管的 SaaS(软件即服务),为数据仓库、数据湖、数据工程、数据科学、数据应用程序开发以及实时/共享数据的安全共享和消费提供单一平台。

在本博客中,我们将了解如何使用以下方法将 snowflake 数据导入 Elasticsearch:

  1. 使用 Logstash®(定期同步)
  2. 使用 Snowflake Elasticsearch Python 脚本(一次性同步)

先决条件

Snowflake 凭证

注册后你将收到以下所有凭据,或者你可以从 Snowflake 面板获取它们。

  • 账户用户名
  • 账号密码
  • 账户标识符

Elastic® 凭证

  1. 访问 https://cloud.elastic.co 并注册。
  2. 单击 Create deployment。 在弹出窗口中,你可以更改设置或保留默认设置。
  3. 下载或复制部署凭据(用户名和密码)。
  4. 同时复制 Cloud ID。
  5. 准备好部署后,单击 “Continue”(或单击 “Open Kibana”)。 它会将你重定向到 Kibana® 仪表板。

使用 Logstash

Logstash 是一个免费且开放的 ETL 工具,你可以在其中提供多个源作为输入、转换(修改)它并推送到你最喜欢的存储。 Logstash 的著名用例之一是从文件中读取日志并将其推送到 Elasticsearch。 我们还可以使用 filter 插件动态修改数据,它会将更新的数据推送到输出。

我们将使用 JDBC input plugin 从 Snowflake 中提取数据,并使用 Elasticsearch output plugin 将数据推送到 Elasticsearch。

  1. 参考文档安装 Logstash。
  2. 转到 Maven 中央存储库并下载:https://repo1.maven.org/maven2/net/snowflake/snowflake-jdbc。
  3. 单击你需要的版本的目录并下载 snowflake-jdbc-#.#.#.jar 文件。 就我而言,我已经下载了snowflake-jdbc-3.9.2.jar。 (有关 Snowflake JDBC 驱动程序的更多信息,请参阅官方文档。)
  4. 通过创建文件 sf-es.conf 创建管道。 添加以下代码片段并替换所有凭证。

sf-es.conf

input {
  jdbc {
    jdbc_driver_library => "/usr/share/logstash/logstash_external_configs/driver/snowflake-jdbc-3.9.2.jar"
    jdbc_driver_class => "net.snowflake.client.jdbc.SnowflakeDriver"
    jdbc_connection_string => "jdbc:snowflake://<account_identifier>.snowflakecomputing.com/?db=SNOWFLAKE_SAMPLE_DATA&warehouse=COMPUTE_WH&schema=TPCH_SF1"
    jdbc_user => "<snowflake_username>"
    jdbc_password => "<snowflake_password>"
    schedule => "* * * * *"
    statement => "select * from customer limit 10;"
  }
}

filter {}

output {
  elasticsearch {
    cloud_id => "<elastic cloud_id>"
    cloud_auth => "<elastic_username>:<elastic_password>"
    index => "sf_customer"
  }
}

jdbc_connection_string

db=SNOWFLAKE_SAMPLE_DATA
warehouse=COMPUTE_WH
schema=TPCH_SF1

Schedule:你可以在此处计划使用 cron 语法定期运行此流程。 每次运行时,你的数据都会增量移动。 你可以查看有关 scheduling 的更多信息。

请根据你的要求进行更改。

JDBC 分页(可选):这将导致一条 sql 语句被分解为多个查询。 每个查询将使用限制和偏移量来共同检索完整的结果集。 你可以使用它在一次运行中移动所有数据。

通过添加以下配置来启用 JDBC 分页:

jdbc_paging_enabled => true,
jdbc_paging_mode => "explicit",
jdbc_page_size => 100000

        5. 运行 Logstash

bin/logstash -f sf-es.conf

Snowflake-Elasticsearch Python 脚本

如果 Logstash 当前尚未到位或尚未实现,我编写了一个小型 Python 实用程序(可在 GitHub 上找到)从 Snowflake 提取数据并将其推送到 Elasticsearch。 这将一次性提取你的所有数据。 因此,如果你有少量数据需要非定期迁移,则可以使用此实用程序。

注意:这不是官方 Elastic 连接器的一部分。 弹性连接器为各种数据源提供支持。 如果你需要从任何受支持的数据源同步数据,则可以使用此连接器。

1) 安装

git clone https://github.com/ashishtiwari1993/snowflake-elasticsearch-connector.git
cd snowflake-elasticsearch-connector

2)安装依赖项

git clone https://github.com/ashishtiwari1993/snowflake-elasticsearch-connector.git
cd snowflake-elasticsearch-connector

3)修改配置

  • 打开 config/connector.yml。
  • 将凭证替换为以下内容:
snowflake:
  username: <sf_username>
  password: <sf_password>
  account: <sf_account_identifier>
  database: <db_name>
  table: <table_name>
  columns: ""
  warehouse: ""
  scheme: ""
  limit: 50

elasticsearch:
  host: https://localhost:9200
  username: elastic
  password: elastic@123
  ca_cert: /path/to/elasticsearch/config/certs/http_ca.crt
  index: <sf_customer>

4)运行 Connector

python __main__.py

Elasticsearch:将数据从 Snowflake 摄取到 Elasticsearch,Logstash,Elastic,elasticsearch,大数据,搜索引擎,数据库,全文检索,运维

验证数据

登录 Kibana 并转到 ☰ > Management > Dev Tools。

将以下 API GET 请求复制并粘贴到控制台窗格中,然后单击 ▶(播放)按钮。 这会查询新索引中的所有记录。

GET sf_customer/_search
{
  "query": {
    "match_all": {}
  }
}

Elasticsearch:将数据从 Snowflake 摄取到 Elasticsearch,Logstash,Elastic,elasticsearch,大数据,搜索引擎,数据库,全文检索,运维

结论

我们已成功将数据从 Snowflake 迁移到 Elastic Cloud。 你可以在任何 Elasticsearch 实例上实现相同的目标,无论是在云端还是在本地。

开始在你的数据集上利用全文和语义搜索功能。 你还可以将你的数据与 LLM 连接起来,以构建问答功能。文章来源地址https://www.toymoban.com/news/detail-800689.html

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

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

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

相关文章

  • Logstash:如何使用 Logstash 解析并摄入 JSON 数据到 Elasticsearch

    在我之前的文章 “Logstash:Data 转换,分析,提取,丰富及核心操作” 有涉及到这个话题。今天我想使用一个具体的例子来更深入地展示。   我们先来把如下的数据拷贝下来,并保存到一个叫做 sample.json 的文件中。我们可以把这个文件置于 Logstash 的安装根目录下。 sample.j

    2024年02月02日
    浏览(32)
  • Logstash同步MySQL数据到ElasticSearch

    当MySQL数据到一定的数量级,而且索引不能实现时,查询就会变得非常缓慢,所以使用ElasticSearch来查询数据。本篇博客介绍使用Logstash同步MySQL数据到ElasticSearch,再进行查询。 测试环境 Windows系统 MySQL 5.7 Logstash 7.0.1 ElasticSearch 7.0.1 Kibana 7.0.1 ELK工具下载可访问:https://www.elastic

    2024年02月01日
    浏览(34)
  • Es elasticsearch 十八 Logstash 数据抽取工具

    目录 基础 启动命令 简单配置文件 控制台输入输出打印 input从log文件获取数据-如分布式日志收集 监听端口 filter过滤器 Grok 正则捕获 Output 输出到es 文件输入 es输出  获取日志中字段 level 基础 从原数据 获取数据  发送到 某地方 Input{}  filter{} output{} 输入  过滤  输出 启动命

    2024年02月11日
    浏览(29)
  • ELK之从Logstash读取数据到Elasticsearch

    前置条件: Elasticsearch 集群正常 Elasticsearch集群配置直通车:ELK之Elasticsearch7.17.4安装(yum方式)和三节点集群配置 Filebeat和logstash打通 ELK之LogStash接收Filebeat的数据:ELK之LogStash接收Filebeat的数据 修改Logstash 配置文件,将output改为如下地址,注释掉控制台输出,添加elasticsearc

    2024年01月22日
    浏览(33)
  • 【elasticsearch专题】:Logstash从入门到同步MySQL数据

      Elasticsearch是在数据处理生态系统中担任一个开源的分布式 搜索 和 分析 引擎的角色,专为 存储 、 检索 和分析大量的数据而打造。与此相伴的是Kibana,一个开源数据可视化平台,用于以优雅的方式展示Elasticsearch中的数据,并赋予用户创建仪表盘、图表和报告的能力。然

    2024年02月04日
    浏览(38)
  • 使用Logstash同步mysql数据到Elasticsearch(亲自踩坑)

    这篇文章主要介绍了如何使用Logstash同步mysql数据到Elasticsearch(亲自踩坑),如果帮助到了大家,希望用你毛茸茸的小手点个赞🤗;如有错误或未考虑周全的地方,希望在评论区留言🫡 Logstash官方文档提供了解决方案 一. 安装Logstash Logstash下载地址 下载版本一定要和Elastics

    2024年04月09日
    浏览(43)
  • Logstash 同步MySQL数据 至 开启HTTPS的ElasticSearch

    最近因为一些原因被迫学习了一周多的ElasticSearch,记录一下遇到的小问题。 此文件我理解为是Logstash的 * 可编译文件 *,我们通过编写此文件然后运行logstash去编译执行来让我们的数据按照自身期望的去传输。该文件主要包括input、filter和output三个部分,其中input和output是必要

    2024年02月01日
    浏览(30)
  • 使用Logstash同步mysql数据到Elasticsearch(亲自踩坑)_将mysql中的数据导入es搜索引擎利用logstash(1)

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新大数据全套学习资料》,

    2024年04月28日
    浏览(39)
  • Elasticsearch系列组件:Logstash强大的日志管理和数据分析工具

    Elasticsearch 是一个开源的、基于 Lucene 的分布式搜索和分析引擎,设计用于云计算环境中,能够实现实时的、可扩展的搜索、分析和探索全文和结构化数据。它具有高度的可扩展性,可以在短时间内搜索和分析大量数据。 Elasticsearch 不仅仅是一个全文搜索引擎,它还提供了分布

    2024年02月08日
    浏览(31)
  • elk的时候logstash传送elasticsearch的数据一直失败报错403

          message: \\\"blocked by: [FORBIDDEN/8/index write (api)];: [cluster_block_exception] blocked by: [FORBIDDEN/8/index write (api)];\\\" kibana中输入执行下边的 PUT /_all/_settings {   \\\"index.blocks.write\\\": null } logstash.outputs.elasticsearch] Encountered a retryable error. Will Retry with exponential backoff  {:code=403, :url=  以上问题最主要

    2024年02月15日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包