elasticsearch,Jdbc,elasticsearch" /> elasticsearch,Jdbc,elasticsearch" />

ElasticSearch JDBC River for SQL Server 2012企业版

ElasticSearch JDBC River for SQL Server 2012企业版,jdbc,elasticsearch,Jdbc,elasticsearch,我在使用ElasticSearch River的JDBC驱动程序从SQL Server 2012 enterprise提供数据时遇到问题 以下是我的设置: 操作系统:Windows 2008 R2 X64 ES:1.2.1 JDK:JDK-7u60-windows-x64 JRE:JRE-7u60-windows-x64 用于SQL Server的Microsoft JDBC驱动程序4.0 当我运行jdbc将数据馈送到ES时,出现了以下异常: C:\Users\madhavan.ram>c

我在使用ElasticSearch River的JDBC驱动程序从SQL Server 2012 enterprise提供数据时遇到问题

以下是我的设置:

  • 操作系统:Windows 2008 R2 X64
  • ES:1.2.1
  • JDK:JDK-7u60-windows-x64
  • JRE:JRE-7u60-windows-x64
  • 用于SQL Server的Microsoft JDBC驱动程序4.0
当我运行jdbc将数据馈送到ES时,出现了以下异常:


C:\Users\madhavan.ram>curl-XPUT'localhost:9200/orders/order/_meta'-d'{“type”:“jdbc”,“jdbc”:{“driver”
“:”com.microsoft.sqlserver.jdbc.SQLServerDriver“,”url:“jdbc:sqlserver://localhost:1433;databaseName=adventureworks”,“用户”:“sa”,“密码”:“密码”,
“sql:“从[订单]”中选择*,“索引”:“订单”,“类型”:“订单”,“批量大小”:100,“最大重试次数”:5,“最大重试次数”:5,“最大等待次数”:“30s”,“最大批量请求数”:5,“批量刷新间隔”:“5s”}”
curl:(3)[globbing]第83列中的嵌套大括号
curl:(6)无法解析主机:*
curl:(6)无法解析主机:从
卷曲:(3)[globbing]第6列中的错误范围



看起来MSSQL 4.0驱动程序不支持JDK 1.7。但是如果我将JAVA_Home配置为JDK1.6。。ES在windows上不工作。有没有更好的方法将数据从SQL Server 2012加载到ElasticSearch?

我假设您已经安装了jdbc插件,如果没有,请按照这里的说明操作:实际上,您可以在本页中找到设置河流所需的几乎所有内容

河流被放入一个名为_river的特殊索引中,而不是您的文档索引/订单

因此,如果您使用Sense(现在在Marvel中),下面类似的内容将起作用:

PUT /_river/glacgrp_river/_meta
{
"type":"jdbc",
"jdbc": {
    "driver":"com.microsoft.sqlserver.jdbc.SQLServerDriver", 
    "url":"jdbc:sqlserver://127.0.0.1:1433;databaseName=SAMLTD",
    "user":"sa","password":"sa",
    "sql":"select RTRIM(LTRIM(ACCTGRPCOD)) as id, RTRIM(LTRIM(ACCTGRPDES)) as descp from [GLACGRP]",
    "strategy" : "poll",
    "schedule":"0/10 * * * * ?",
    "index":"accountgroup",
    "type":"ag",
    "maxbulkactions":500
} }

您可以根据需要更改数据库名称、表名称和其他选项以进行尝试

在此之后,您可以使用GET/\u river/您的\u river\u name/\u status检查河流是否已设置

然后重新启动ES,您的河流应该开始自动从数据库中获取数据并为它们编制索引


希望这有帮助

这个问题已经很老了,但是现在弹性搜索可以通过SQL Server在Windows上轻松设置

河流已被弃用:

因此,您应该使用elasticsearch jdbc插件:

并在馈线模式下使用JDBC导入器进行设置

基本上,一旦您安装了Elastic SearchElastic Search jdbc插件:

  • 从以下位置下载并安装JDBC SQL Server驱动程序:

  • 创建jdbc_sqlserver.json

    {
       "type":"jdbc",
       "jdbc":{
          "url":"jdbc:sqlserver://localhost:1433;databaseName=test",
          "user":"test",
          "password":"test",
          "sql":"SELECT id as _id, id, name FROM planets",
          "index":"planets",
          "type":"planet",
          "autocommit":"true"
       }
    }
    
  • 创建包含以下内容的jdb_sqlserver.ps1文件:

    function Get-PSVersion {
        if (test-path variable:psversiontable) {$psversiontable.psversion} else {[version]"1.0.0.0"}
    }
    $powershell = Get-PSVersion
    if($powershell.Major -le 2 ){
        Write-Error "Oh, so sorry, this script requires Powershell 3 (due to convertto-json)"
        exit
    }
    if((Test-Path   env:\JAVA_HOME) -eq $false){
        Write-Error "Environment variable JAVA_HOME must be set to your java home"
        exit
    }
    $DIR = "D:\programs\elasticsearch\plugins\elasticsearch-jdbc-1.7.0.1\"
    $FEEDER_CLASSPATH="$DIR\lib"
    $FEEDER_LOGGER="file://$DIR\bin\log4j2.xml"
    java -cp "$FEEDER_CLASSPATH\*" -"Dlog4j.configurationFile=$FEEDER_LOGGER" "org.xbib.tools.Runner" "org.xbib.tools.JDBCImporter" jdbc_sqlserver.json
    
  • 从Powershell运行它

  • \jdbc\u sqlserver.ps1

  • 此处描述了完整的设置:

    {“take”:30,“timed_out”:false,{“shards”:{“total”:5,“successful”:5,“failed”:0},“hits”:{“total”:2,“max_score”:1.0,“hits”:[{“index”:“orders”:“orders”:“order”:“order”;“id”:“s21t3YGNSAO7c-pA2Eo9pA”;“评分”:1.0,{“source”:“type”:“type”:“jdbc”,“jdbc”:“driver”:“com.microsoft.sqlserver.jdbc.sqldriver”:“url”:“jdbc:sqlserver://localhost:1433;Trusted_Connection=yes;databaseName=adventureworks“,”sql“:”从[订单],”轮询“:”10m“,”策略“:”简单“,”索引“:”订单“,”类型“:”订单“,”批量大小“:”100,“最大重试次数“:”5,“最大重试次数“:”等待“:”30s“,”最大批量请求“:”5,“批量刷新间隔“:”5s“}”您是否成功设置了river?请使用GET/_river/您的\u river\u name/_status在此处进行检查和发布。干杯,请注意jdbc插件不再支持“poll”参数。因此您不能使用“poll”:“10m”。要指定从数据库获取数据的频率,请使用“schedule”“改为参数。顺便说一句,批量大小和批量刷新间隔也是过时的参数。请仔细阅读。”。