SlideShare a Scribd company logo
別讓資料庫不開心!
有些工作讓 Elasticsearch 來代勞。
軟體主廚
http://mvc.tw
 任職某投資理財網站攻城獅
 懂得後端也略懂前端
 敏捷會一些也會一點 Infra
 還知道一點點 UX
 https://dotblogs.com.tw/supershowwei
 https://www.facebook.com/softkitchen
2
軟體主廚(莊志弘)
3
這是一個關於愛妻的故事
4
Shay Banon
圖片來源:https://www.elastic.co
5
圖片來源:https://lucene.apache.org
Luncene
6
“
”
Compass
7
Elasticsearch
圖片來源:https://www.elastic.co
8
elastic.co
圖片來源:https://www.elastic.co
9
LIKE ‘%%’
Microsoft Index Service
Full-Text Indexing
過去我如何做資料搜索?
HP Autonomy
10
?不好用嗎
過去我如何解決搜索的問題?
11
圖片來源:http://blog.xuite.net/erickhera.tw/nomore
12
or
圖片來源:http://wccftech.com/windows-10-editions
https://en.wikipedia.org/wiki/Linux
13
圖片來源:http://wccftech.com/windows-10-editions
https://en.wikipedia.org/wiki/Linux
or
Windows 跨足 CentOS 心得文(一)
Windows 跨足 CentOS 心得文(二)
http://mvc.tw
 建議 JDK v1.8.0
 在防火牆挖 9200、9300 的洞
14
環境
http://mvc.tw 15
安裝
rpm -ivh
https://download.elastic.co/elasticsearch/release/org/elastic
search/distribution/rpm/elasticsearch/2.4.0/elasticsearch-
2.4.0.rpm
http://mvc.tw 16
啟動
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
17
...裝完 了!?
http://mvc.tw 18
It’s working
19
不過
我們還需要做兩件事
http://mvc.tw
 設定 network.host: _site_
 /etc/elasticsearch/elasticsearch.yml
20
第一件事
http://mvc.tw
 安裝 kopf Plugin
 https://www.elastic.co/guide/en/elasticsearch/plugins
/current/index.html
21
第二件事
/usr/share/elasticsearch/bin/./plugin install
lmenezes/elasticsearch-kopf
22
一點點基本觀念
http://mvc.tw
 Index
 Document type
 Document
 Field
23
資料的存放結構
≒ Database
≒ Table
≒ Record
≒ Column
24
來種點碼
http://mvc.tw
 官方提供的 Elasticsearch .NET Client
 支援強型別
 簡潔的 API 操作方式
25
NEST
26
Coding Something
http://mvc.tw
 安裝 delete-by-query Plugin
 重啟 Elasticsearch 服務
27
DeleteByQuery Plugin
/usr/share/elasticsearch/bin/./plugin install delete-by-query
sudo systemctl restart elasticsearch.service
28
老師說:
如果你只有一支筆
就容易被拱跳
PPAP
圖片來源:https://pixabay.com
29
如果你有一堆
就比較不會
圖片來源:http://officesupplygeek.com
http://mvc.tw
 Node:單個 ES 服務
 Cluster:一群 ES 服務
 Shard:將一個 Index 分成若干部分(Shard)儲存在相
同或不同的 Node 上,是 ES 執行分散式任務的基礎。
 Replica:Index 的備份(備幾份的意思)
30
Cluster
ES預設1個Index是
5Shards、1Replica=總共10Shards
http://mvc.tw
 cluster.name
 discovery.zen.ping.unicast.hosts
31
Cluster
32
圖片來源:http://www.laughspark.info
33
過去我如何存放日誌?
圖片來源:https://commons.wikimedia.org
https://azure.microsoft.com
34
過去我如何搜尋及彙總日誌?
Ctrl + F
SQL Query
圖片來源:https://commons.wikimedia.org
https://azure.microsoft.com
35
?不方便嗎
過去我如何搜尋及彙總日誌?
36
Logstash
Elasticsearch
Kibana
圖片來源:https://www.elastic.co
37
Logstash
Elasticsearch
Kibana
圖片來源:https://www.elastic.co
http://mvc.tw
 安裝
38
Logstash
rpm -ivh
https://download.elastic.co/logstash/logstash/packages/cen
tos/logstash-2.4.0.noarch.rpm
http://mvc.tw
 設定檔(Pipeline)
 https://www.elastic.co/guide/en/logstash/current/index.html
39
Logstash
input {
}
filter {
}
output {
}
40
圖片來源:http://news.gamme.com.tw
來看一個範例
http://mvc.tw
 啟動
41
Logstash
/opt/logstash/bin/./logstash -f iislog.conf
42
圖片來源:http://www.jtpic.cn
過去辛苦累積的 Log 怎麼辦?
http://mvc.tw 43
可以這樣做
 log4net
 UdpAppender
 NLog
 Network target
 File
 logstash file input plugin
 SQL Database
 logstash jdbc input plugin
http://mvc.tw
 打通防火牆 5601 埠號
 安裝
 指定 ES Url
 /opt/kibana/config/kibana.yml
44
Kibana
rpm -ivh https://download.elastic.co/kibana/kibana/kibana-
4.6.1-x86_64.rpm
http://mvc.tw
 啟動
 設定資料來源:logstash-*(預設值)
45
Kibana
systemctl daemon-reload
systemctl enable kibana.service
systemctl start kibana.service
46
讓老闆不來煩你的強大圖表
47
圖片來源:http://www.taxjusticeblog.org
http://mvc.tw
 Elasticsearch 將搜索的工作從關聯式資料庫中獨立出來
 上手 Linux 不是一件很難的事情
 Elasticsearch 的高用性讓人驚豔
 ELK 幫助我們輕鬆地就處理掉大量的日誌
 Kibana 的圖表讓我們很簡單地就可以處理日誌彙總的工作
 範例程式原始碼在這兒
 https://github.com/supershowwei/do-not-make-db-unhappy
48
今天我們瞭解了什麼?
49
http://mvc.tw
Blog 是記錄知識的最佳平台
50
http://mvc.tw
感謝 Jetbrains 贊助贈品
51
https://www.jetbrains.com/resharper/
http://mvc.tw
感謝 OzCode 贊助贈品
52
http://www.oz-code.com/
http://mvc.tw
感謝 ALIVE 贊助贈品
53
https://comealive.io/
http://mvc.tw
業界師資、實戰教學
54
http://skilltree.my
謝謝各位
• 本投影片所包含的商標與文字皆屬原著作者所有。
• 本投影片使用的圖片皆從網路搜尋。
• 本著作係採用姓名標示-非商業性-相同方式分享 3.0 台灣授權。閱讀本授權條款,請到
http://creativecommons.org/licenses/by-nc-sa/3.0/tw/,或寫信至Creative Commons, 444 Castro
Street, Suite 900, Mountain View, California, 94041, USA.
h t t p : / / m v c . t w

More Related Content

PDF
Uliweb cheat sheet_0.1
PDF
OpenWebSchool - 11 - CodeIgniter
PDF
Ch14 簡介Spring Boot
PPTX
Ch14 簡介 Spring Boot
PPTX
耳邊消息 APP (Machine Learning Application of LSTM, MLP) Presentation
PPT
Dynamic JS Loader
PDF
Struts+Spring+Hibernate整合教程
PDF
Struts+Spring+Hibernate整合教程
Uliweb cheat sheet_0.1
OpenWebSchool - 11 - CodeIgniter
Ch14 簡介Spring Boot
Ch14 簡介 Spring Boot
耳邊消息 APP (Machine Learning Application of LSTM, MLP) Presentation
Dynamic JS Loader
Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程

Similar to twMVC#24 | 別讓資料庫不開心!有些工作讓 Elasticsearch 來代勞 (20)

PDF
iThome Modern Web 2018: 如何打造高效的機器學習平台
PDF
透過網路連線 MySQL 進行查詢會比較快嗎?
PPT
Rails 炸機實務
PPT
2006/03/21 PHP與MYSQL初體驗
PPT
Seo網上推廣課程 2 mar
PPTX
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
PPT
2010年第1期
PDF
twMVC#18 | 專案分層架構
PDF
專案分層架構 twMVC#18
PDF
Modern Web Development Introduction
PDF
以自動化先行的 DevOps 實踐經驗分享
PDF
為瞬間巨量做好準備 20180726
PDF
淺入淺出 MySQL & PostgreSQL
PPS
Flash UI - 商業應用案例探討
PDF
My DevOps Tour 0.1
PDF
那些mockup沒告訴你的事@WebConf.tw 2013
PPT
腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享
PPT
前端杂谈
PDF
DevOPS
PDF
Proud Plone on Cloud
iThome Modern Web 2018: 如何打造高效的機器學習平台
透過網路連線 MySQL 進行查詢會比較快嗎?
Rails 炸機實務
2006/03/21 PHP與MYSQL初體驗
Seo網上推廣課程 2 mar
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
2010年第1期
twMVC#18 | 專案分層架構
專案分層架構 twMVC#18
Modern Web Development Introduction
以自動化先行的 DevOps 實踐經驗分享
為瞬間巨量做好準備 20180726
淺入淺出 MySQL & PostgreSQL
Flash UI - 商業應用案例探討
My DevOps Tour 0.1
那些mockup沒告訴你的事@WebConf.tw 2013
腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享
前端杂谈
DevOPS
Proud Plone on Cloud
Ad

More from twMVC (20)

PDF
twMVC#51 以平台工程重新思考系統設計 - 以 Batch System 為例封面
PDF
twMVC#51-GitHub Copilot 徹底改變開發模式,探索 AI 驅動的智慧程式碼協作
PDF
twMVC#50 微服務上線後的救贖
PDF
twMVC 47_Elastic APM 的兩三事
PDF
twMVC#46_SQL Server 資料分析大躍進 Machine Learning Services
PDF
.NET 7 家族新成員: Microsoft Orleans v7
PDF
twMVC#46 一探 C# 11 與 .NET 7 的神奇
PDF
twMVC#44 如何測試與保護你的 web application with playwright
PDF
twMVC#44 讓我們用 k6 來進行壓測吧
PDF
twMVC#43 Visual Studio 2022 新功能拆解
PDF
twMVC#43 YARP
PDF
twMVC#43 C#10 新功能介紹
PDF
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
PDF
twMVC#42 Azure IoT Hub for Smart Factory
PDF
twMVC#42 Windows容器導入由0到1
PDF
twMVC#42 讓我們用一種方式來開發吧
PDF
twMVC#41 hololens2 MR
PPTX
twMVC#41 The journey of source generator
PDF
twMVC#38 How we migrate tfs to git(using azure dev ops)
PDF
twMVC#36C#的美麗與哀愁
twMVC#51 以平台工程重新思考系統設計 - 以 Batch System 為例封面
twMVC#51-GitHub Copilot 徹底改變開發模式,探索 AI 驅動的智慧程式碼協作
twMVC#50 微服務上線後的救贖
twMVC 47_Elastic APM 的兩三事
twMVC#46_SQL Server 資料分析大躍進 Machine Learning Services
.NET 7 家族新成員: Microsoft Orleans v7
twMVC#46 一探 C# 11 與 .NET 7 的神奇
twMVC#44 如何測試與保護你的 web application with playwright
twMVC#44 讓我們用 k6 來進行壓測吧
twMVC#43 Visual Studio 2022 新功能拆解
twMVC#43 YARP
twMVC#43 C#10 新功能介紹
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
twMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Windows容器導入由0到1
twMVC#42 讓我們用一種方式來開發吧
twMVC#41 hololens2 MR
twMVC#41 The journey of source generator
twMVC#38 How we migrate tfs to git(using azure dev ops)
twMVC#36C#的美麗與哀愁
Ad

twMVC#24 | 別讓資料庫不開心!有些工作讓 Elasticsearch 來代勞