簡體   English   中英

將大型 JSON 文件索引/導入 Elasticsearch (>10GB) 並添加過濾器

[英]Index/Import a large JSON file into Elasticsearch (>10GB) and add filters

我是 python 和彈性搜索的新手,我想將一個 14GB 的 JSON 文件導入到 Elasticsearch 中,如下所示:

{
  "_score": 1.0,
  "_index": "newsvit",
  "_source": {
    "content": "   \u0628\u0647 \u06af\u0632\u0627\u0631\u0634 \u0627\u06cc\u0631\u0646\u0627\u060c \u062a\u06cc\u0645 \u0647\u0627\u06cc \u062a\u0631\u0627\u06a9\u062a\u0648\u0631\u0633\u0627\u0632\u06cc ",
    "title": "\u0641\u06cc\u0646\u0627\u0644 \u062c\u0627\u0645 \u062d\u0630\u0641\u06cc\u061b \u0648\u062f\u0627\u0639 \u0627\u0644\u0628\u0631\u0632 \u062d\u0627\u062c\u06cc \u067e\u0648\u063",

    "lead": "\u062a\u0647\u0631\u0627\u0646 - \u0627\u06cc\u0631\u0646\u0627 - \u062f\u06cc\u062f\u0627\u0631 \u067e\u0627\u06cc\u0627\u0646\u06cc \u062c\u0627\u0645 f.",
    "agency": "36",
    "date_created": 1494521741,
    "url": "http://www.irna.ir/fa/News/82525960/",
    "image": "uploads/2017/05/11/2561366787.jpg",
    "category": "5"
  },
  "_type": "news",
  "_id": "2981938"
}

我想使用 logstash 導入這個文件,但我現在有兩個問題:

1)

我寫了這個 .conf 文件來導入它:

input {
    file {
        start_position => "beginning"
        path => "E:/git/consemsearch/ferdowsi-data.json"
        sincedb_path => "NULL"
    }
}
filter {
   json {
       source => "message"
   }
}
output {
    elasticsearch {
         hosts => "http://localhost:9200"
        index => "news_data"
    }
    stdout { }
}

但它沒有添加我想要的過濾器。 我希望能夠通過_source_id項目在 Elasticsearch/Kibana 中過濾它。 我怎樣才能寫出正確的 .conf?

2)這個文件很大,用logstash導入時間太長。 有沒有更快的導入方法?

要將數據從輸入“過濾”到輸出,您可以使用“ drop ”過濾器:

filter {
      if [category] == "old category" {
        drop { }
      }
    }

關於性能。 這在很大程度上取決於您的硬件。 在您的示例中,所有內容都在您的本地主機上。 您正在嘗試讀取 14gb 的數據並將其插入同一個 HDD。 您的 HDD IO 可能是這里的瓶頸。 但它可以來自 RAM 或其他東西。

如果您的系統能夠管理它,您可以在 logstash 端添加工作人員或增加批量大小。 在 elasticseach 端,您應該首先禁用副本並在攝取第一個數據集時增加 index.refresh_interval。

關於優化: https : //www.elastic.co/guide/en/elasticsearch/reference/master/tune-for-indexing-speed.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM