如何在 Elasticsearch 實現敏捷的資料建模與管理 @ DevOpsDays 2023

如何在 Elasticsearch 實現敏捷的資料建模與管理
在面對不斷變化的商業需求,敏捷快速交付價值以及选代的精神已廣泛落實在 DevOps 的實踐之中,但是在使用 Elasticsearch 處理巨量日誌或資料時,一但需求改變或是有新的資料使用需求提出時,我們的應對及管理的策略為何? 如何在 Elasticsearch 來做到最佳的實踐?
工作坊將包含以下的內容:
- 敏捷的資料建模與管理的概念簡介 
- Elasticsearch Data Modeling 簡介 
- 深入 Elasticsearch Data Modeling 的實作 
- Schema on read 與 Schema on write 的差異與實現方式 
- 事先定義好的 Data Modeling 
- 動態產生的 Data Modeling 
- Data Model 的选代 
適合已經使用過 Elasticsearch,或至少稍微了解 Elasticsearch 的聽眾。
課程目標
掌握有彈性的敏捷資料建模與管理的方法,並且透過設計好的實作案例,一步一步的學習如何在 Elasticsearch 進行實踐,掌握 Dynamic Field Mapping, Dynamic Template, Runtime Fields, Async Search 以及在 schema on read 至 schema on write 的轉換調整的方式。
行前準備
電腦需求
- 建議 16GB 以上的 RAM 
- MacOS, Linux, Windows 皆可,但請不要用太舊的作業系統 
操作環境需求
- Elasticsearch 8.0 以上版本 
- Kibana 8.0 以上版本 
這次工作坊主要會使用 Kibana 的 Dev Tools 進行操作,你有以下幾種方式,準備好這個環境:
- (新手推薦) 在 https://cloud.elastic.co 申請一個新帳號,不用填入信用卡資訊,就可以免費試用 7 天,蠻適合這次工作坊中短期的使用。 
- 手動下載 Elasticsearch 8.10.2 與 Kibana 8.10.2 壓縮檔,在本機執行。 - 解壓縮並啟動 Elasticsearch:執行 Elasticsearch 目錄中的 - ./bin/elasticsearch -E xpack.security.enabled=false (透過參數強制關閉 Security,避免額外的 Security 設定流程。)
- 解壓縮並啟動 Kibana:執行 Kibana 目錄中的 - ./bin/kibana執行檔
- 請先確保 Elasticsearch 啟動後,再啟動 Kibana。 
- 透過 http://localhost:5601 可以成功存取 Kibana 的網站。 
 
- 如果你習慣使用 Docker Container 的容器化方式來建構環境,可以使用 https://github.com/onedoggo/devopsdays-taipei-2023-es-workshop 準備好的環境。 - 先執行 - docker-compose up setup初始化 ES 的帳號密碼。
- 再執行 - docker-compose up -d啟動環境,
- 即可以 帳號 - elastic密碼- changeme透過 http://localhost:5601 存取 kibana。
 
- 使用你自己架設好的 Elasticsearch 與 Kibana 環境,可以存取 Kibana Dev Tools 即可。 
(請不要使用 AWS OpenSearch 來操作哦! 這次工作坊是以 Elasticsearch 的功能與操作為主。)
投影片
Last updated
