2017-03-05 74 views
1

我正在處理一個SQLServer中的表,我需要在ElasticSearch中實時索引。記錄在這個表格中從各個點(遺留代碼,存儲過程等)添加/更新/刪除,因此通過檢查代碼來查找與該表格交互的所有區域是不可行的。什麼技術和/或工具會允許這個?如何使Elasticsearch保持與SQLServer無代碼的最新狀態?

注意:SQLServer中的表包含大約10列,可能包含多達100萬行。

回答

2

如果你想用最少的代碼來完成它,那麼你可以使用Logstash jdbc插件(現在Elasticsearch不再支持河流概念)進行設置。在表格中有最後更新的時間戳列。您可以將輪詢查詢配置爲基於它,以便它能夠從上次運行後獲取更改。確保在此時間戳列上定義了索引。由於這將是一個輪詢過程,只是不要過度使用並設置非常低的輪詢間隔,因爲這可能最終導致SQL DB服務器上不必要的工作負載。

如果您準備好了正確的方式並準備好花時間編碼,那麼您可能應該考慮SQL Server服務代理選項。您可以在表上寫入觸發器,在隊列中寫入消息和外部輪詢/觸發器進程,以接收消息/更改並將其推送到Elasticsearch。

+0

感謝您的快速響應。當你說要保持低輪詢間隔時,你只關心SQLServer而不是ElasticSearch? –

+0

沒錯。我正在討論關於SQL Server數據庫的負載。通過一些測試,您應該能夠確定什麼頻率是可以接受的,而不會在SQL Server上不斷增加負載。 – askids

相關問題