Snowflake如何与ElasticSearch一起工作

0md85ypi  于 2022-12-03  发布在  ElasticSearch
关注(0)|答案(1)|浏览(112)

我使用SnowFlake来存储所有数据,但我想对某些表进行基于文本查询,因此我想将这些表数据存储在ElasticSearch中,以便轻松执行复杂文本查询如何使用SnowFlake设置ElasticSearch以同步来自SnowFlake特定数据表
我已经使用SageMaker在AWS lambda函数上配置了一个cronjob,我在那里以CSV文件的形式从snowflake中获取并上传AWS S3 bucket上的数据。这似乎不太适合我。

ie3xauqp

ie3xauqp1#

您可以使用Logstash通过JDBC驱动程序从Snowflake中提取数据,然后将数据发送到Elastic Cloud:
一些参考链接:
雪花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配置文件示例

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

相关问题