Kafka Connect Elasticsearch Sink Connector 與 Elasticsearch 複合、聚合查詢
概述:
Kafka connect 是一種用於在 Apache kafka 和其他系統之間可擴展且可靠的資料傳輸工具。
透過定義 connector 可以輕易地從 Kafka 傳入和傳出大量資料。
Kafka connect 有眾多不同的連接器如下列:
- RDBMS (Oracle, SQL Server, DB2, Postgres, MySQL)
- Cloud Object stores (Amazon S3, Azure Blob Storage, Google Cloud Storage)
- Message queues (ActiveMQ, IBM MQ, RabbitMQ)
- NoSQL and document stores (Elasticsearch, MongoDB, Cassandra)
- Cloud data warehouses (Snowflake, Google BigQuery, Amazon Redshift)
特性:
- Kafka Connect 標準化了數據系統與 Kafka 的集成,從而簡化連接器的開發、部署和管理
- 支持分布式模式和單機模式部署,且分布式可擴展,並支援故障移轉
- 通過簡單的 Rest API 管理連接器
- 針對 Source 和 Sink 都有對應 Offset 管理方案
演練:
今日透過 docker 建立相關環境,使用 Kafka connect 將資料導入於 Elasticsearch ,並實作 Elasticsearch Java API 的查詢功能
準備內容:
docker-compose.yml
- Kafka : 9092
- Elasticsearch : 9200
- Kafka connect : 8083
建立 Kafka connect
- name: elasticsearch-sink
- topic : elasticsearch-topic
導入證券成交明細資料
下列為實作 Elasticsearch 搜尋項目:
term :
match :
match (AND) :
range :
bool :
aggregation :
參考資料:
https://docs.confluent.io/platform/current/connect/index.html#kafka-connect
https://www.kloia.com/blog/kafka-connect-elasticsearch-sink-connector
https://blog.csdn.net/zhuocailing3390/article/details/126328770
https://www.tizi365.com/archives/938.html