Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 尝试使用Logstash使Elasticsearch与SQL Server数据库保持同步会引发字段映射异常_Sql Server_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Logstash_Elastic Stack_Elk - Fatal编程技术网 elasticsearch,logstash,elastic-stack,elk,Sql Server,elasticsearch,Logstash,Elastic Stack,Elk" /> elasticsearch,logstash,elastic-stack,elk,Sql Server,elasticsearch,Logstash,Elastic Stack,Elk" />

Sql server 尝试使用Logstash使Elasticsearch与SQL Server数据库保持同步会引发字段映射异常

Sql server 尝试使用Logstash使Elasticsearch与SQL Server数据库保持同步会引发字段映射异常,sql-server,elasticsearch,logstash,elastic-stack,elk,Sql Server,elasticsearch,Logstash,Elastic Stack,Elk,我正在尝试使用logstash使我的SQL Server数据库与Elasticsearch保持同步。这是我的配置文件(logstash config.conf) 我的问题是:logstash如何将数据库列与Elasticsearch字段匹配?我的实际数据库查询要长得多,logstash不断抛出字段匹配错误,即使我的数据库列别名与elasticsearch字段名匹配。。下面这个让我特别困惑,因为我相信@version字段是由logstash自行生成的。。这对严格映射不起作用吗 "error"=&g

我正在尝试使用logstash使我的SQL Server数据库与Elasticsearch保持同步。这是我的配置文件(logstash config.conf)

我的问题是:logstash如何将数据库列与Elasticsearch字段匹配?我的实际数据库查询要长得多,logstash不断抛出字段匹配错误,即使我的数据库列别名与elasticsearch字段名匹配。。下面这个让我特别困惑,因为我相信@version字段是由logstash自行生成的。。这对严格映射不起作用吗

"error"=>{"type"=>"strict_dynamic_mapping_exception", "reason"=>"mapping set to strict, dynamic introduction of [@version] within [doc] is not allowed"}
这是运行logstash-f logstash-config.conf后的cmd输出

input {
  jdbc { 
    jdbc_connection_string => "jdbc:sqlserver://jobDatabaseHost:port;DatabaseName=jobDBname;integratedSecurity=true"
    jdbc_user => "xxxx"
    jdbc_driver_library => "C:\sqljdbc_4.2.8112.200_enu\sqljdbc_4.2\enu\jre8\sqljdbc42.jar"
    jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
    statement => "SELECT TOP (50) 
      JobID as jobId, JobName as jobName, JobDescription as jobDescription, JobStatus as jobStatus
      from jobTable"
    }
  }
output {
  elasticsearch { 
    hosts => ["http://jobhost:9200"]
    index => "jobIndex"
    document_type => "doc"
    document_id => "%{jobId}"
    user => "Christian.***@***.com"
    password => "*****"
    }
  stdout { codec => rubydebug }
}
{
    "@version" => "1",
    "jobId" => 1,
    "jobDescription" => "Deduction",
    "jobName" => "test",
    "jobStatus" => "active,
而且工作不成功


此外,我正在使用sqjljdbc 1.8、logstash 6.6.2、elasticsearch 6.6.2

如何定义索引映射?看起来定义的索引映射不允许添加新属性,如
@version
索引对象字段名称将基于您已定义的映射。如果未定义,则将使用SQL列别名