繼之前分享如何實作「窮人版 ELK」之後,再來分享一下這個服務裡面的 DSL 是如何實作的。會想到要為這個服務做 DSL,主要是小編雖然已經把 Impala 產生的資料利用一些工具轉成 PNG 圖檔,但動作太繁雜,所以想把這些過程用 DSL 來表示,工程師只要會下 SQL 就能把資料轉成 PNG 圖檔了。
其實對於 DSL,有在 follow 粉絲頁的朋友應該有注意到,小編很久以前就有一個屬意的方案了,那就是 MSON。它結合了 Markdown 以及 JSON,所以不只人類易讀,機器也易讀。只不過 MSON Parser 一直都是殘缺不全,所以沒辦法讓小編完整的實作 DSL,這個方案就被捨棄了。
另一個也很適合拿來做 DSL 的就是 YAML 了,個人覺得跟 MSON 比起來易讀性稍低一點,但已經是目前還不錯的實作方式,所以就以這個來做為「窮人版 ELK」的 DSL 實作方案。
DSL 已經把所有轉換的細節都隱藏起來了,工程師只要先自己在 Impala 上撰寫正確的 SQL 指令,其他動作只要把必要欄位填完就可以了。下面是必要欄位的說明:
* SQL:要在 Impala 裡面執行的 SQL 指令,其中有用 ":VAR" 包起來的變數名稱,表示是從 INPUT 欄位取得
* CHART:highcharts 的圖表格式,DSL 目前支援 column (長條圖)、pie (圓餅圖)
* INPUT:這是一個陣列,表示這個變數名稱是從外部操作時取得,另外後面的 "date" 為資料型態,目前支援的類型為 HTML 的 input[type]
* OUTPUT:產生 PNG 圖檔時的欄位資訊,如 X 軸是從 Impala 的哪個欄位取得,顯示在圖表上的名稱要叫什麼
至於轉換細節又是另一件麻煩事,將 DSL 轉成最後的圖檔又經過了不少步驟:
1. js-yaml:雖然說 YAML 很適合拿來做 DSL,但 JSON 還是目前大家最常用的格式。所以當然要先把 YAML 轉成 JSON 這樣才好操作 XD
2. jq:轉換過程中 jq 幫了小編很大的忙,官網寫著這是一套輕量且靈活的命令列 JSON 處理工具。無論要對 JSON 取 key、取 value、取 length、做 group by、做 sort by、if-else、while-loop 都可以,就是很強大。所以小編就拿這個將 YAML 轉換完的 JSON,用一堆奇怪的語法把資料轉換成功。
其實在轉換過程最麻煩的不是操作 JSON,最麻煩的在小編不太會寫 bash script 啊!!!尤其是一堆變數轉換的過程,一下子用 ${},一下子用 $(),還有 ${[$k]} 的這種寫法,看了頭好痛 Orz
最後把 jq 轉完的資料丟給前一篇提到的那些工具,就可以完美把 PNG 圖檔產生出來了,第二篇的「窮人版 ELK」文章到此也就結束了。其實這個專案還有另一個跟圖表無關的功能,那就是即時觀看 API 發送歷程,如果有第三篇的話再來分享一下好了。
* 如何實作「窮人版 ELK」:https://www.facebook.com/kewang.information/posts/2085843121692051
* 如何使用 MSON 的幾個方向:https://www.facebook.com/kewang.information/posts/1940647046211660
* jq:https://stedolan.github.io/jq
#mson #dsl #yaml #json #jq
同時也有51部Youtube影片,追蹤數超過7,970的網紅吳老師EXCEL VBA設計(大數據自動化)教學,也在其Youtube影片中提到,EXCEL VBA與資料庫(進階112)第6單元用VBA下載JSON從單筆到全部&將所有程式串再一起執行&用GOOGLE試算表分享開放資料&VBA下載大樂特歷史資料 上課內容: 01_重點回顧與下載JSON資料 02_用VBA下載JSON從單筆到全部 03_下載JSON與合併儲存格 04_將所有程...
表格 轉 json 在 紀老師程式教學網 Facebook 的最讚貼文
[大數據入門書籍推薦] Big Data Glossary (O'Reilly)
http://it-ebooks.info/book/823/
咳咳...不囉唆!先點擊上面的連結,找尋一個位於「Download」字樣旁邊的超連結再來看我底下的說明...說不定你下載完也不想看我的說明就是了 (Mission Completed)... XD
這是一本很適合剛進入「大數據(Big Data)」領域的概念書。比起講解 How,更著重 What。它的書籍大綱如下:
01 Terms
名詞解釋。包含何謂「文件導向(Document-Oriented)」、「鍵-值儲存(Key-Value Stores)」...等基本名詞解釋。
02 NoSQL Database
說明用於大數據資料儲存的常見資料庫系統有哪些?優劣為何?包含 MongoDB、CouchDB、Cassandra、Redis、BigTable、HBase...等。
03 MapReduce
Google 提出的一個大數據軟體架構(Frameworks)。在已經有人做好輪子的時代,想造一部車當然是直接拿別人做好的輪子來用囉!
04 Store
如何儲存資料本體的一章。這裡介紹了 Amazon S3 與 Hadoop Distributed File System 兩個架構。
05 Servers
介紹可用於大數據管理的伺服器有哪些。包含 Amazon EC2, Google App Engine, Elastic Beanstalk, Heroku 等。
06 Processing
介紹大數據分析與處理的工具。包括 R、Yahoo! Pipes、Mechanical Turk... 等。
07 NLP (Natural Language Processing)
自然語言處理。這一章講如何教會電腦「看懂」我們人類撰寫的語言(主要是英文),然後「機器自動爬文」,篩選出隱藏在字裡行間的「數據」。這邊介紹了幾組 NLP API,包括 OpenNLP, Boilerpipe, OpenCalais...等。
08 Machine Learning
講機器學習的一章。教你如何讓你的軟體越來越「聰明」,擁有「類似」人類學習的能力(雖然還不及五歲小孩的學習能力,但現今科技水準就到這裡了,相信將來會進步的)。這篇介紹了 WEKA、Mahout、Scikits.Learn 幾套 API。
09 Visualization
介紹幾套可以把複雜數據「視覺化」成圖表的 API:Gephi、GraphVis...等。
10 Acquisition
標題雖然是「資訊取得(Acquisition)」,但這章其實在講「資料清洗」與「正規化」。如:有個表格內藏你要的資料,你如何把表格拿掉,重新排列,變成你要的資訊存入資料庫內。
11 Serialization
標題直譯的話,會翻成「序列化」。但比較偏講「如何找到一種放諸四海皆準的『中間格式』(如:XML),好讓資料從一部系統,透過這個『中間格式』,轉換到另一部系統」。這章講了 JSON、Thrift...等格式。
我覺得這是本可以帶在身上,等車無聊時隨手看兩頁的書。因為它前後章節並沒有太強烈的連貫性,內容也大多偏向名詞解釋,不需要擺台電腦在身邊實驗兩下才會懂。所以隨時中斷閱讀也沒啥關係。看完後,就應該可以參加相關的會議討論,而不會有什麼名詞聽不懂了。很適合初學大數據的工程師,或專案經理閱讀。
如果你也覺得本篇內容不錯的話,麻煩您轉分享給您的朋友,讓他們也能免費得到一本大數據的電子書喔!希望今天介紹的內容大家會喜歡!
表格 轉 json 在 吳老師EXCEL VBA設計(大數據自動化)教學 Youtube 的最佳貼文
EXCEL VBA與資料庫(進階112)第6單元用VBA下載JSON從單筆到全部&將所有程式串再一起執行&用GOOGLE試算表分享開放資料&VBA下載大樂特歷史資料
上課內容:
01_重點回顧與下載JSON資料
02_用VBA下載JSON從單筆到全部
03_下載JSON與合併儲存格
04_將所有程式串再一起執行
05_用GOOGLE試算表分享開放資料
06_用VBA下載大樂特歷史資料說明
07_改為批次大樂透下載與刪除日期
08_批次大樂透下載與格式設定
完整影音
http://goo.gl/aQTMFS
教學論壇:
https://groups.google.com/forum/#!forum/scu_excel_vba2_112
與前幾期的課程雖然用的是相同的範例,但最大的不同在:
1.除了解說建函數公式,並將之轉成自訂函數,把複雜的公式變簡單。
2.如何將複雜的公式變成簡單的按鈕,按下按鈕就自動完成工作。
內容主要分成:
單元01_資料拆解相關(VBA基礎)
單元02_表單設計
單元03_輸入自動化與表單與資料庫
單元04_工作表合併
單元05_資料查詢(篩選與分割工作表)
單元06_批次查詢
單元07_從雲端硬碟下載資料
單元08_下載網路資料
單元09_工作表相關
單元10_活頁簿與檔案處理(工作表分割與合併活頁簿)
單元11_表格與圖表處理(自動繪製圖表)
單元12_圖案處理(快速匯入圖片到EXCEL)
上課參考用書:
看!就是比你早下班-50個ExcelVBA高手問題解決法
作者:楊玉文 出版社:松崗
Excel VBA一點都不難:一鍵搞定所有報表
作者:?Excel Home
出版社:博碩
課程理念:
1.以循序漸進的方式, 透過詳細的說明和實用的Excel VBA範例, 逐步了解整個 VBA 的架構與輪廓,進而學習 VBA 變數、函式及邏輯的觀念, 即使沒有任何程式設計基礎, 也能自己親手撰寫 VBA 程序來提昇工作效率, 晉身職場 Excel 高手! 2.進而解說EXCEL與資料庫的結合,將EXCEL當成資料庫來使用,結合函數、VBA等更深入的功能,讓資料處理和分析的應用更上層樓。 3.將結合GOOGLE雲端試算表,教您如何將EXCEL函數雲端化與網路化。
更多EXCEL VBA連結:
01_EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
02_EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
吳老師 2020/10/28
EXCEL,VBA,函數東吳進修推廣部,EXCEL,VBA,函數,程式設計,線上教學,excel,vba,教學,excel,vba指令教學,vba範例教學excel,,excel,vba教學視頻,excel函數教學,excel函數說明,excel函數應用
表格 轉 json 在 吳老師EXCEL VBA設計(大數據自動化)教學 Youtube 的最佳解答
EXCEL VBA與資料庫(進階112)第6單元用VBA下載JSON從單筆到全部&將所有程式串再一起執行&用GOOGLE試算表分享開放資料&VBA下載大樂特歷史資料
上課內容:
01_重點回顧與下載JSON資料
02_用VBA下載JSON從單筆到全部
03_下載JSON與合併儲存格
04_將所有程式串再一起執行
05_用GOOGLE試算表分享開放資料
06_用VBA下載大樂特歷史資料說明
07_改為批次大樂透下載與刪除日期
08_批次大樂透下載與格式設定
完整影音
http://goo.gl/aQTMFS
教學論壇:
https://groups.google.com/forum/#!forum/scu_excel_vba2_112
與前幾期的課程雖然用的是相同的範例,但最大的不同在:
1.除了解說建函數公式,並將之轉成自訂函數,把複雜的公式變簡單。
2.如何將複雜的公式變成簡單的按鈕,按下按鈕就自動完成工作。
內容主要分成:
單元01_資料拆解相關(VBA基礎)
單元02_表單設計
單元03_輸入自動化與表單與資料庫
單元04_工作表合併
單元05_資料查詢(篩選與分割工作表)
單元06_批次查詢
單元07_從雲端硬碟下載資料
單元08_下載網路資料
單元09_工作表相關
單元10_活頁簿與檔案處理(工作表分割與合併活頁簿)
單元11_表格與圖表處理(自動繪製圖表)
單元12_圖案處理(快速匯入圖片到EXCEL)
上課參考用書:
看!就是比你早下班-50個ExcelVBA高手問題解決法
作者:楊玉文 出版社:松崗
Excel VBA一點都不難:一鍵搞定所有報表
作者:?Excel Home
出版社:博碩
課程理念:
1.以循序漸進的方式, 透過詳細的說明和實用的Excel VBA範例, 逐步了解整個 VBA 的架構與輪廓,進而學習 VBA 變數、函式及邏輯的觀念, 即使沒有任何程式設計基礎, 也能自己親手撰寫 VBA 程序來提昇工作效率, 晉身職場 Excel 高手! 2.進而解說EXCEL與資料庫的結合,將EXCEL當成資料庫來使用,結合函數、VBA等更深入的功能,讓資料處理和分析的應用更上層樓。 3.將結合GOOGLE雲端試算表,教您如何將EXCEL函數雲端化與網路化。
更多EXCEL VBA連結:
01_EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
02_EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
吳老師 2020/10/28
EXCEL,VBA,函數東吳進修推廣部,EXCEL,VBA,函數,程式設計,線上教學,excel,vba,教學,excel,vba指令教學,vba範例教學excel,,excel,vba教學視頻,excel函數教學,excel函數說明,excel函數應用
表格 轉 json 在 吳老師EXCEL VBA設計(大數據自動化)教學 Youtube 的最佳貼文
EXCEL VBA與資料庫(進階112)第6單元用VBA下載JSON從單筆到全部&將所有程式串再一起執行&用GOOGLE試算表分享開放資料&VBA下載大樂特歷史資料
上課內容:
01_重點回顧與下載JSON資料
02_用VBA下載JSON從單筆到全部
03_下載JSON與合併儲存格
04_將所有程式串再一起執行
05_用GOOGLE試算表分享開放資料
06_用VBA下載大樂特歷史資料說明
07_改為批次大樂透下載與刪除日期
08_批次大樂透下載與格式設定
完整影音
http://goo.gl/aQTMFS
教學論壇:
https://groups.google.com/forum/#!forum/scu_excel_vba2_112
與前幾期的課程雖然用的是相同的範例,但最大的不同在:
1.除了解說建函數公式,並將之轉成自訂函數,把複雜的公式變簡單。
2.如何將複雜的公式變成簡單的按鈕,按下按鈕就自動完成工作。
內容主要分成:
單元01_資料拆解相關(VBA基礎)
單元02_表單設計
單元03_輸入自動化與表單與資料庫
單元04_工作表合併
單元05_資料查詢(篩選與分割工作表)
單元06_批次查詢
單元07_從雲端硬碟下載資料
單元08_下載網路資料
單元09_工作表相關
單元10_活頁簿與檔案處理(工作表分割與合併活頁簿)
單元11_表格與圖表處理(自動繪製圖表)
單元12_圖案處理(快速匯入圖片到EXCEL)
上課參考用書:
看!就是比你早下班-50個ExcelVBA高手問題解決法
作者:楊玉文 出版社:松崗
Excel VBA一點都不難:一鍵搞定所有報表
作者:?Excel Home
出版社:博碩
課程理念:
1.以循序漸進的方式, 透過詳細的說明和實用的Excel VBA範例, 逐步了解整個 VBA 的架構與輪廓,進而學習 VBA 變數、函式及邏輯的觀念, 即使沒有任何程式設計基礎, 也能自己親手撰寫 VBA 程序來提昇工作效率, 晉身職場 Excel 高手! 2.進而解說EXCEL與資料庫的結合,將EXCEL當成資料庫來使用,結合函數、VBA等更深入的功能,讓資料處理和分析的應用更上層樓。 3.將結合GOOGLE雲端試算表,教您如何將EXCEL函數雲端化與網路化。
更多EXCEL VBA連結:
01_EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
02_EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
吳老師 2020/10/28
EXCEL,VBA,函數東吳進修推廣部,EXCEL,VBA,函數,程式設計,線上教學,excel,vba,教學,excel,vba指令教學,vba範例教學excel,,excel,vba教學視頻,excel函數教學,excel函數說明,excel函數應用