iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 2
1
Elastic Stack on Cloud

Elastic 30天自我修行系列 第 2

匯入 JSON 檔: Via Github API

看了其他同主題的鐵人賽文章,果然有經驗的人就是不一樣。
坦白說,看了 Elastic Stack 雲端的各項整合選項,我有點嚇到,很多都能在商業上直接發生利益。
不過煩惱的是,一般個人使用者在學習中,總不可能因此就架上好幾個伺服器吧。
只好自己先想法子先成 JSON 檔來學習。

由於個人平常的工作主要是接觸/熟悉關聯式資料庫(MySQL/Oracle/PostgreSQL/SQL Server/SQLite),所以對於 JSON 平常主要是使用者而非製作者。
這次 Elastic Stack 雲端服務要求上傳 JSON 格式,是 "Newline-delimited JSON"。
在這次 R 程式碼的處理中,遇到一些之前不清楚而一直鬼打牆的地方,後來總算搞定。

目前 elastic 在 Github 上面共有 413 個 repos,而在 Github 提供的API 一次最多回傳100筆資料。
所以簡單寫一個小迴圈,只需5次就可以全數將資料捉回;此次做為示例,所以批次輸出5個JSON 檔案。
看過網路上其他文章對於 Elastic Stack 的介紹,熟悉資料庫的朋友應該可以猜得出來,到時候,我們可以將這5個JSON放在一起集中觀察。


library(jsonlite)
for (i in 1:5) {
  elastic_dataframe <- fromJSON(paste0("https://api.github.com/users/elastic/repos?per_page=100&page=", i))
  stream_out(elastic_dataframe, file(paste0("elastic_json", i, ".json")))
}

今天就讓我們先上傳其中第一個檔案吧!

首先在雲端管理介面首頁中 https://cloud.elastic.co/home 點選 Quick link 底下的 Kibana , 就會帶出新的頁面;然後我們點選其中的 "Upload data from log file",再將我們的 elastic_json1.json 丟上去。

我們可以發現 Elastic Stack 會像很 BI 工具一樣,快速的告訴你目前上傳的這筆資料中,有那些特徵值。例如有多少的 True 或是 Flase。由於今天臨時想找筆資料上傳,所以先以 elastic 本家在 Github 上的 Repos 為主。這幾天會再思考一下,有什麼樣的資料集是手邊可以捉取,又可以方便上傳。

總之,這是第2天。
有機會的話,我也會想把今天簡單的幾行程式碼轉成 Python Code ;我想 Python 對於 Newline-delimited JSON 格式的產出,應該更為強大吧!


上一篇
什麼是 ELK?
下一篇
學習透過 API 進行查詢: 星星數大於2000?
系列文
Elastic 30天自我修行31

尚未有邦友留言

立即登入留言