當您在使用關係型資料庫(RDS)遇到查詢慢的問題時,可將RDS中的資料同步至Elasticsearch進行查詢分析。Elasticsearch是一個基於Lucene的即時分布式的搜尋與分析引擎,可近乎於准即時地儲存、查詢和分析超巨量資料集。您可以通過DTS、Logstash、DataWorks和Canal等多種方式將RDS中的資料同步至Elasticsearch。本文介紹各同步方案適用的情境,協助您根據業務選擇合適的情境同步資料。
同步方案 | 原理說明 | 適用情境 | 使用限制 | 相關文檔 |
DTS實現資料即時同步 | 通過訂閱binlog的方式實現資料同步,在不影響來源資料庫的情況下,同步延遲可降至毫秒層級。 | 對資料同步的即時性要求較高的情境。 | ||
Logstash JDBC資料同步 | 通過logstash-input-jdbc外掛程式實現通過Logstash批量查詢RDS中的資料,並將資料移轉到Elasticsearch。實現的本質是該外掛程式會定期對RDS中的資料進行迴圈輪詢,從而在當前迴圈中找到上次插入或更改的記錄,然後批量查詢這些記錄並遷移至Elasticsearch。與DTS同步方案相比,該方案的即時性較差,存在秒級延遲。 |
|
| |
DataWorks實現離線資料同步 | DataWorks是一款提供Data Integration、資料開發及資料品質等全方位的產品服務。支援引入並儲存關係型資料,然後進行轉化和開發,最後將處理後的資料同步到Elasticsearch或其他資料系統。 |
|
| |
Canal實現MySQL資料同步 | 通過訂閱binlog的方式實現資料即時同步,在不影響來源資料庫的情況下,同步延遲可降至毫秒層級。 | 對資料同步的即時性要求較高的情境。 |
|