Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.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
Amazon web services elasticsearch仅显示1个文档。使用logstash进行数据迁移_Amazon Web Services_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Logstash_Kibana - Fatal编程技术网 elasticsearch,logstash,kibana,Amazon Web Services,elasticsearch,Logstash,Kibana" /> elasticsearch,logstash,kibana,Amazon Web Services,elasticsearch,Logstash,Kibana" />

Amazon web services elasticsearch仅显示1个文档。使用logstash进行数据迁移

Amazon web services elasticsearch仅显示1个文档。使用logstash进行数据迁移,amazon-web-services,elasticsearch,logstash,kibana,Amazon Web Services,elasticsearch,Logstash,Kibana,我正在尝试使用logstash和自定义模板将数据从S3(.csv文件的数据)移动到弹性搜索集群。 但当我在Kibana中使用以下查询进行检查时,它只显示docs.count=1,其余记录显示为docs.deleted:- GET /_cat/indices?v 我的第一个问题是:- 为什么只传输一条记录[最后一条]而其他记录则作为删除记录传输 现在,当我在Kibana中使用以下查询查询此索引时:- GET /my_file_index/_search { "query": { "m

我正在尝试使用logstash和自定义模板将数据从S3(.csv文件的数据)移动到弹性搜索集群。 但当我在Kibana中使用以下查询进行检查时,它只显示docs.count=1,其余记录显示为docs.deleted:-

GET /_cat/indices?v
我的第一个问题是:-

  • 为什么只传输一条记录[最后一条]而其他记录则作为删除记录传输 现在,当我在Kibana中使用以下查询查询此索引时:-

    GET /my_file_index/_search
    {
      "query": {
        "match_all": {}
      }
    }
    
    我在
    “message:
    字段中只得到一条数据以逗号分隔的记录,因此第二个问题是:-

  • 我怎样才能像在csv中一样获得列名数据,因为我已经在输入logstash的模板文件中指定了所有列映射
  • 我也尝试过在logstash csv过滤器中提供columns字段,但没有成功

     columns => ["col1", "col2",...]
    
    任何帮助都将不胜感激

    编辑-1:下面是我的logstash.conf文件:-

    input {
     s3{
         access_key_id => "xxx"
         secret_access_key => "xxxx"
         region => "eu-xxx-1"
         bucket => "xxxx"
         prefix => "abc/stocks_03-jul-2018.csv"
       }
    }
    filter {
      csv {
          separator => ","
          columns => ["AAA","BBB","CCC"]
      }
    }
    output {
        amazon_es {
            index => "my_r_index"
            document_type => "my_r_index"
            hosts => "vpc-totemdev-xxxx.eu-xxx-1.es.amazonaws.com"
            region => "eu-xxxx-1"
            aws_access_key_id => 'xxxxx'
            aws_secret_access_key => 'xxxxxx+xxxxx'
            document_id => "%{id}"
            template => "templates/template_2.json"
            template_name => "my_r_index"
     }
    }
    
    注: logstash版本:6.3.1 elasticsearch版本:6.2

    编辑:-2添加模板_2.json文件以及示例csv标题:-

    1.映射文件:-
  • 我的excel内容为:-

    头:实际页眉很长,有很多栏,请继续考虑下面类似的其他列名。

      SECURITY | SERVICEID  | MEMBERID | VALUEDATE...
    
    第一行:同样列值如下一些列有空白值,我提到了上面的真实模板文件(在上面的映射文件中),它有所有列值

    KKK-LMN 2 1815 6/25/2018
    PPL-ORL 21815 6/25/2018
    SLB-ORD 2 1815 6/25/2018

  • 3。Kibana查询输出
    查询:

    GET /my_r_index/_search
    {
      "query": {
        "match_all": {}
      }
    }
    
    输出:

    {
            "_index": "my_r_index",
            "_type": "my_r_index",
            "_id": "IjjIZWUBduulDsi0vYot",
            "_score": 1,
            "_source": {
              "@version": "1",
              "message": "XXX-XXX-XXX-USD,2,3190,2018-07-03,UNITED STATES,USD,300,60,Put,2042-12-19,,,,.009108041,q,,,,.269171754,q,,,,,.024127966,q,,,,68.414017367,q,,,,.298398645,q,,,,.502677959,q,,,,,0.040880692400344164,q,,,,,,,159.361792143,,,,.631296636,q,,,,.154877384,q,,42.93,N,Y,\n",
              "@timestamp": "2018-08-23T07:56:06.515Z"
            }
          },  
    
    …上述其他类似记录

    编辑-3:
    使用autodetect_列_name=>true后的示例输出:-

    {
      "took": 4,
      "timed_out": false,
      "_shards": {
        "total": 10,
        "successful": 10,
        "skipped": 0,
        "failed": 0
      },
      "hits": {
        "total": 3,
        "max_score": 1,
        "hits": [
          {
            "_index": "indr",
            "_type": "logs",
            "_id": "hAF1aWUBS_wbCH7ZG4tW",
            "_score": 1,
            "_source": {
              "2": "2",
              "1815": "1815",
              "message": """
    PPL-ORD-XNYS-USD,2,1815,6/25/2018,UNITED STATES
    
    """,
              "SLB-ORD-XNYS-USD": "PPL-ORD-XNYS-USD",
              "6/25/2018": "6/25/2018",
              "@timestamp": "2018-08-24T01:03:26.436Z",
              "UNITED STATES": "UNITED STATES",
              "@version": "1"
            }
          },
          {
            "_index": "indr",
            "_type": "logs",
            "_id": "kP11aWUBctDorPcGHICS",
            "_score": 1,
            "_source": {
              "2": "2",
              "1815": "1815",
              "message": """
    SLBUSD,2,1815,4/22/2018,UNITEDSTATES
    
    """,
              "SLB-ORD-XNYS-USD": "SLBUSD",
              "6/25/2018": "4/22/2018",
              "@timestamp": "2018-08-24T01:03:26.436Z",
              "UNITED STATES": "UNITEDSTATES",
              "@version": "1"
            }
          },
          {
            "_index": "indr",
            "_type": "logs",
            "_id": "j_11aWUBctDorPcGHICS",
            "_score": 1,
            "_source": {
              "2": "SERVICE",
              "1815": "CLIENT",
              "message": """
    UNDERLYING,SERVICE,CLIENT,VALUATIONDATE,COUNTRY
    
    """,
              "SLB-ORD-XNYS-USD": "UNDERLYING",
              "6/25/2018": "VALUATIONDATE",
              "@timestamp": "2018-08-24T01:03:26.411Z",
              "UNITED STATES": "COUNTRY",
              "@version": "1"
            }
          }
        ]
      }
    }
    

    我非常确定您的单个文档的id为
    %{id}
    。第一个问题来自这样一个事实:在CSV文件中,您没有提取一个名为
    id
    的列,这就是您在
    document\u id=>“%{id}”
    中使用的列,因此所有行都使用id
    %{id}
    进行索引,并且每个索引都会删除前面的行。最后,您有一个文档,它的索引次数与CSV中的行数相同

    关于第二个问题,您需要修复过滤器部分,如下所示:

    filter {
      csv {
          separator => ","
          autodetect_column_names => true
      }
      date {
        match => [ "VALUATIONDATE", "M/dd/yyyy" ]
      }
    }
    
    您还需要像这样修复索引模板(我只在
    估价日期
    字段中添加了
    格式
    设置:

    {
      "order": 0,
      "template": "helloindex",
      "settings": {
        "index": {
          "codec": "best_compression",
          "refresh_interval": "60s",
          "number_of_shards": "10",
          "number_of_replicas": "1"
        }
      },
      "mappings": {
        "_default_": {
          "_all": {
            "enabled": false
          },
          "properties": {
            "UNDERLYING": {
              "type": "keyword"
            },
            "SERVICE": {
              "type": "integer"
            },
            "CLIENT": {
              "type": "integer"
            },
            "VALUATIONDATE": {
              "type": "date",
              "format": "MM/dd/yyyy"
            },
            "COUNTRY": {
              "type": "keyword"
            }
          }
        }
      },
      "aliases": {}
    }
    

    我很确定您的单个文档的id为
    %{id}
    ,对吗?问题是,在CSV中,您没有提取名为
    id
    的列,而这正是您在
    文档中使用的“%{id}”
    因此,除最后一行外,所有行都被删除。您能显示CSV的真实标题和样本行吗?您是正确的,我必须删除从样本logstash.conf文件复制的文档“%{id}”,因为我在CSV标题中没有任何id列。@Val但是,我仍然在“message”中获得数据:“from not like in separate column field values。理想情况下,它应该在kibana输出中显示具有不同列名的值,对吗?我还为template_2.json文件中的所有列定义了映射。请随意共享尽可能多的信息,例如,您的模板、CSV文件的前2-3行,等等。实际上,它是一个CSV文件,所以我正在使用”作为分隔符。在我的问题中,我只使用|分隔标题列名。很抱歉造成混淆。请准确显示文件中出现的前两行,并使用我已更新答案的代码段的格式,管道在我这端使用您的示例数据。只是我获取的列值不是用于rec的标题ord 2 it从标题中pics,然后对于记录3 it从记录2中pics值作为标题,依此类推。由于logstash中的一些错误,这是由于同一文件上的并行工作线程,每个线程开始从不同的记录位置读取数据。解决方案是将--pipeline.workers设为1,以便尝试这样做,但不知何故它停止了数据传输为了索引.checking againNow,我将--pipeline.workers增加到了10,它传输了数据,但列标题仍然不匹配。我附上了一个示例输出,并附带了一个问题以供查看。
    {
      "order": 0,
      "template": "helloindex",
      "settings": {
        "index": {
          "codec": "best_compression",
          "refresh_interval": "60s",
          "number_of_shards": "10",
          "number_of_replicas": "1"
        }
      },
      "mappings": {
        "_default_": {
          "_all": {
            "enabled": false
          },
          "properties": {
            "UNDERLYING": {
              "type": "keyword"
            },
            "SERVICE": {
              "type": "integer"
            },
            "CLIENT": {
              "type": "integer"
            },
            "VALUATIONDATE": {
              "type": "date",
              "format": "MM/dd/yyyy"
            },
            "COUNTRY": {
              "type": "keyword"
            }
          }
        }
      },
      "aliases": {}
    }