回答
你的問題是廣泛的 - 所以這是一個選項的指針。
Elastic search用於查詢數據庫並分析數據。
客戶端庫
對於一年多來,我們已經爲 Elasticsearch官方客戶端庫大多數編程語言。這意味着將 掛接到您的應用程序中,並通過現有的代碼庫 獲取數據應該相對簡單。這項技術還允許在數據到達Elasticsearch之前輕鬆地獲取數據。一個常見的例子是 應用程序,該應用程序已經使用ORM將域模型映射到 數據庫,並將域模型掛接和索引回 Elasticsearch的實現易於實現。
有一個關於如何使用彈性搜索大量的文檔:
的文檔將解決以下問題:
安裝package:
PM> Install-Package Elasticsearch.Net
var node = new Uri("http://mynode.example.com:8082/apiKey");
var config = new ConnectionConfiguration(node);
var client = new ElasticsearchClient(config);`
這就是你需要開發的東西。
插件
Logstash也可以用來代替河流,從各種插件已經被開發。
此外,可以使用Logstash或類似工具將數據發送到 Elasticsearch。例如,一些河流Elasticsearch附帶的 現在作爲Logstash插件(如CouchDB之一)在 即將推出的Logstash 1.5中實現。
額外閱讀
雖然這是一種不同的語言和框架 - 在博客Advanced Search for Your Legacy Application通過David Pilato和信息可能會有所幫助瀏覽。他建議在應用程序層中執行此操作。
解決評論中的問題。
SQL Server提供了一個內置系統來跟蹤數據更改,這是一種自動跟蹤數據更改的有效方法,無需實現手動方法來檢查更改。
有兩大手段來達致這:
數據變化跟蹤帶有時間戳。數據變化的歷史可以被追蹤。
變更數據捕獲爲用戶提供 表通過捕獲這兩種DML進行了更改的事實和已更改 實際數據的歷史變化信息。通過使用讀取事務日誌的 異步進程捕獲更改,並對系統產生較低的 影響。
這有更少的開銷,但不跟蹤的歷史變遷。最新的變化被保留,但沒有更多的回來。
更改跟蹤捕獲表中的行已更改的事實,但不捕獲已更改的數據。這使得 應用程序可以確定直接從用戶表中獲取的最新行數據所更改的行。因此, 更改跟蹤在歷史問題上更受限制,它可以與 答案進行比較,以更改數據捕獲。 .../...
如何將MSSQL同步到Elasticsearch?
一個簡單的解決方案可能是一個PowerShell
腳本(SQL Agent
工作):
Import-Module 'sqlps' -DisableNameChecking;
Invoke-Sqlcmd `
-ServerInstance "(local)\SQL2016" `
-Database "msdb" `
-Query "SELECT TOP(1) object_id AS id, name, type_desc FROM sys.objects" `
| Select-Object * -ExcludeProperty ItemArray, Table, RowError, RowState, HasErrors -OutVariable sql_results
$id = $sql_results.id
$json_results = ConvertTo-Json -InputObject $sql_results[0] # In this case, input object is an array/table with a single row
Invoke-RestMethod "http://localhost:9200/index007/type007/$id" -Method Put -Body $json_results -ContentType "application/json"
您可以使用Logstash做的工作。只需使用logstash JDBC插件來設置logstash管道。請點擊此鏈接: - Migrate MySQL data to ElasticSearch
也會檢出GitHub上ElasticSearchCRUD
對於SQL服務器,檢查https://shariefmohatad.wordpress。 com/2016/03/29/ms-sql-config-with-logstash /可以使用JDBC以類似的方式完成 –
此回購所以,只是我的2¢上實現這一點。在過去,我通過設置觸發器來寫入作爲事件日誌的緩衝區表來完成此操作。然後,我在計時器上安裝了無服務器功能(AWS Lambda),該計時器將清除該事件日誌並將所需更改推送到ES中。這樣我就不必在觸發器中做任何瘋狂的事情,或者甚至改變我的原始代碼。
儘管問題是要求從MSSQL
- >ElasticSearch
同步,但我覺得跨異構系統同步的基本思想是完全相同的。 您可能需要
- 定義和創建要sync'ed
- 軌道的最後一批,以同步數據的批次來確定從哪裏開始,基本上標記
- 轉換數據
- 最後運輸一批
這篇文章Continuous data sync across Hetereogeneous Systems - YoursAndMyIdeas解釋所有細節,以更詳細地實現這一點。
- 1. MySQL到MSSQL的同步
- 2. MSSQL到使用同步管絃樂隊的PostgreSQL同步
- 3. 同步elasticsearch - 的NodeJS
- 4. 如何同步卡桑德拉和elasticsearch
- 5. Elasticsearch 0.90與MSSQL河
- 6. 如何將彈簧數據elasticsearch與mongodb同步?
- 7. Elasticsearch數據庫同步
- 8. 我們如何將numberOfRowsInSection同步到cellForRowAtIndexPath?
- 9. 如何將文件同步到存儲?
- 10. 如何將sqlite同步到遠程mysql?
- 11. 如何將sqlite同步到Mysql
- 12. 如何將SQLite從PC同步到Android
- 13. 在線MSSQL服務器同步使用Microsoft同步框架
- 14. 使用Rails遠程MSSQL/ODBC同步
- 15. MsSql server 2008 r2數據同步
- 16. elasticsearch如何同步所有節點之間的映射?
- 17. 如何在elasticsearch中使多個調用同步?
- 18. 如何在elasticsearch集羣之間同步數據?
- 19. 我如何保持elasticsearch-rails內的同步
- 20. 如何保持Elasticsearch與MySQL數據庫同步?
- 21. 將郵件同步到MySQL
- 22. 將backbone.js同步到php/MySQL
- 23. 使用SQL自動同步ElasticSearch
- 24. 保持elasticsearch和數據庫同步
- 25. 同步elasticsearch&cassandra與postgres數據庫
- 26. mongodb和Elasticsearch的初始同步
- 27. Elasticsearch CouchDB的河流陳舊/同步
- 28. PostgreSQL with elasticsearch(保持同步) - nodeJS
- 29. 如何將多線程調用同步到同一方法
- 30. 如何將mysql數據上傳到Elasticsearch
你不*同步到Elasticsearch。你*提取你想從你的源搜索的信息併發送給Elastic。河就是這樣。這已被Logstash取代,如[https://www.elastic.co/blog/deprecating-rivers](https://www.elastic.co/blog/deprecating-rivers)所述。另一個選擇是使用[.NET客戶端](https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/index.html)將數據直接發送到Elastic –
順便說一句,這就是所有的搜索引擎都能正常工作,儘管佈線沒有那麼多。爬行器從數據源中提取數據,索引器對數據進行處理以生成搜索索引,並且查詢處理器使用這些索引來加速搜索。這些角色可以在多臺機器上運行,以實現負載平衡和可擴展性 –
感謝@PanagiotisKanavos:「您不會同步到Elasticsearch,您可以從源文件中提取想要搜索的信息並將其發送給Elastic。」我只是不知道這樣做的標準做法是什麼。 – JedatKinports