首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设计摄取管道,将数据从雪花中提取到ElasticSearch云中?

如何设计摄取管道,将数据从雪花中提取到ElasticSearch云中?
EN

Stack Overflow用户
提问于 2022-04-01 05:08:16
回答 1查看 291关注 0票数 0

我最近订阅了弹性白金许可证,以使用弹性云服务。我想设计摄取管道,它将数据从雪花数据仓库中提取到elasticsearch服务中。我已经探索并发现了以下方法,请建议最好的方法来设计管道。还请向我指出任何可用的文档。

  1. 设置日志存储服务器,在其中安装logstash服务。使用jdbc雪花插件定义一个将数据从雪花中提取到弹性服务中的管道,
  2. 在弹性云中使用logstash管道。在摄入时通过rest触发管道。这个云管道设置似乎没有太多关于如何通过rest进行implement.
  3. Ingesting的文档。我认为这种方法不是最好的,因为配置管道不是很灵活。
  4. 任何其他方法,如Beats.
EN

回答 1

Stack Overflow用户

发布于 2022-11-30 14:29:07

我会用#1:

您可以使用Logstash通过JDBC驱动程序从雪花中提取数据,然后将数据发送到Elastic:

一些参考链接:

雪花JDBC驱动程序https://docs.snowflake.com/en/user-guide/jdbc.html

使用cloud_id:https://www.elastic.co/guide/en/logstash/current/connecting-to-cloud.html将日志存储到弹性云中

示例Logstash conf文件

代码语言:javascript
复制
input {
    jdbc {
        jdbc_driver_library => "/etc/logstash/pipeline/snowflake/dependency/snowflake-jdbc-3.9.2.jar"
        jdbc_driver_class => "com.snowflake.client.jdbc.SnowflakeDriver"
        jdbc_connection_string => "jdbc:snowflake://url.eu-west-1.snowflakecomputing.com/?db=dbname&warehouse=House"
        jdbc_user => "user"
        jdbc_password => "password"
        schedule => "15 * * * *"
        statement => "
            SELECT TOP 100000 * FROM dbname.CORE.table WHERE timestamp >= '2038-10-02 00:00:00' AND timestamp < '2038-10-02 23:59:59'
        "
        jdbc_fetch_size => 1000
    }
}

output {
    elasticsearch {
        cloud_id => "<cloud id>" 
        api_key => "<api key>"
    }

}

要使两个数据库保持同步,可以使用sql_last_value参数,更多信息:

https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html#_state

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71702067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档