2016-08-16 162 views
1

在當前的項目中,我致力於改進搜索功能。在網上閱讀了一些東西后,我決定去Elasticsearch。所以我有幾個問題。 我已經有生產數據庫填充數據。索引該數據庫的最佳方式是什麼? 當我想向數據庫添加新記錄時,是否需要添加彈性搜索?或者可能創建某種工作來索引數據一段時間?
我們如何保持2個數據庫(生產數據庫,Elasticsearch數據庫)的數據一致性?Elasticsearch索引

任何建議,鏈接,評論等,都非常歡迎 感謝

回答

1

我不知道,如果你仍然需要一個答案,但我目前使用Logstash。我基本上有一個用於輸入的jdbc sql插件和用於輸出的elasticsearch插件。你基本上配置一個配置文件,建立連接,執行查詢,然後進行數據變異和輸出。

如果你看一看的文檔:https://www.elastic.co/guide/en/logstash/current/index.html

的配置的例子可以在下面看到,我讀過您可以安排這個將數據從一個SQL數據庫傳輸到索引中,雖然我沒有親自設置。

請記住,您需要確保數據傳輸的安全,sql插件確實爲此提供了支持。

input { 
jdbc { 
jdbc_driver_library => "file directory to sql driver" 
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver" 
jdbc_connection_string => "" 
jdbc_user => "" 
jdbc_password => "" 
lowercase_column_names => false 
statement => "SELECT IGF_UID AS id, IGF_NAME AS name FROM dbo.IGT_ENTITY" 
} 
} 
filter { 
if ![id] { 
    mutate { 
       replace => {"id" => "00000000-0000-0000-0000-000000000000"} 
      } 
    } 

    } 
mutate { 
    remove_field => [ "@timestamp" ] 
    remove_field => [ "@version" ] 
    } 

} 

output { 
    elasticsearch { 
    hosts => "localhost" 
    index => "entities" 
    document_type => "entity" 
    manage_template => false 
    } 
}