zoukankan      html  css  js  c++  java
  • 通过Logstash将 CSV 文档到 Elasticsearch

    准备文件cars.csv

    将csv文件导入elasticsearch

    logstash_cars.config 文件的内容如下:

    input {
        file {
            path => "/Users/liuxg/data/cars.csv"
            start_position => "beginning"
            sincedb_path => "/dev/null"
        }
    }
     
    filter {
        csv {
            separator => ","
     
            columns => [ "maker", "model", "mileage", "manufacture_year", "engine_displacement",
            "engine_power", "body_type", "color_slug", "stk_year", "transmission", "door_count",
            "seat_count", "fuel_type", "date_created", "date_last_seen", "price_eur" ]
        }
     
        mutate { convert => ["mileage", "integer"] }
        mutate { convert => ["price_eur", "float"] }
        mutate { convert => ["engine_power", "integer"] }
        mutate { convert => ["door_count", "integer"] }
        mutate { convert => ["seat_count", "integer"] }
    }
     
    output {
        elasticsearch {
            hosts => "localhost:9200"
            index => "cars"
            document_type => "sold_cars"
        }
     
        stdout {}
    }

    这里有几点需要说明的:

    • 在 input 中,我们定义了一个文件,它的path指向我们的 csv 文件的位置。start_position 指向beginning。如果对于一个实时的数据源来说,它通常是 ending,这样表示它每次都是从最后拿到那个数据。sincedb_path 通常指向一个文件。这个文件保存上次操作的位置。针对我们的情况,我们设置为 /dev/null,表明,我们不存储这个数据
    • 在 filter 中,CSV filter 是非常直接的,不太需要很多的解释。这里的 column 都来自于我们的 csv 表格。通常 Logstash 会把每个数据都当做是字符串。针对我们的情况,我们可看到 mileage 是一个整型数,price_eur 是一个浮点数。这些我们都需要进行调整。这个调整我们可以通过 mutate 来完成
    • 在 output 之中,我们制定本地的 Elasticsearch 为我们的数据库,它的 index 是 cars,同时 document_type 为_doc。我们也同时使用 stdout,这样我们可以在terminal屏幕中看出数据在处理之中
  • 相关阅读:
    mysql命令集锦
    linux 删除文件名带括号的文件
    linux下的cron定时任务
    struts2文件下载的实现
    贴一贴自己写的文件监控代码python
    Service Unavailable on IIS6 Win2003 x64
    'style.cssText' is null or not an object
    "the current fsmo could not be contacted" when change rid role
    远程激活程序
    新浪图片病毒
  • 原文地址:https://www.cnblogs.com/fat-girl-spring/p/14338943.html
Copyright © 2011-2022 走看看