描述
內容簡介
★☆★☆★ 獨家解析知名大數據專案,FinMind,帶你一窺大數據產品的發展過程,打造專屬個人的大數據 Side Project、作品、產品 ★☆★☆★
本書承襲第一版的精彩內容,分享在 Github 獲得 1,900 stars 的大數據 Side Project,並幫助讀者從 0 開始,打造專屬個人的大數據 Side Project。
精彩收錄:
【資料工程】 ○ 使用分散式技術,RabbitMQ、Flower、Celery,收集證交所、櫃買中心、期交所等股市資訊。 ○ 使用 Docker、FastAPI 架設 RESTful API 服務。 ○ 使用 Docker Swarm 架設分散式服務,包含爬蟲、RESTful API、資料庫 MySQL、RabbitMQ 等服務。 ○ 使用雲端服務,一個月 5 美金,且免費提供 100 美金額度。 ○ 一站式管理多台分散式機器。 ○ 使用業界等級的,分散式 Airflow。
【產品迭代】 ○ 單元測試 Unit Test 介紹,包含爬蟲、API 測試範例。 ○ 使用 CICD 做持續性整合、部屬,並以 Gitlab-CI 搭配 API 服務做為範例。
【API 產品上線】 ○ 免費網址申請教學,No-IP。 ○ 免費 SSL 憑證教學,Let's Encrypt。 ○ 一站式管理多服務網址,容器化反向代理工具 Traefik。
【業界資料視覺化工具】 ○ 使用 Redash 建立個人化、股市分析儀錶板。
【監控系統】 ○ 使用最知名的監控工具,Prometheus、Grafana,同時監控所有服務。
讀完本書,你將學會分散式爬蟲、RESTful API、MySQL 資料庫、壓力測試、Docker Swarm、CICD、雲端、Traefik、Redash 視覺化、分散式 Airflow、監控系統 Prometheus、Grafana 等,本書是一本集大成的作品。
※本書程式實例可至深智官網下載http://deepwisdom.com.tw
|
作者
林子軒
Sam,目前任職 17 LIVE 資料工程師。擅長資料工程、資料分析,希望對Python 社群、大數據領域,提供一份心力。
【經歷】 ● 17 LIVE 資深資料工程師。 ● 曾任職永豐金證券,軟體工程師。 ● 曾於 Open UP Summit 2019,擔任 Speaker。 ● 曾任職 Tripresso,資料工程師。 ● 東華研究所,應用數學碩士。
【FinMind】 ● https://github.com/FinMind/FinMind ● https://finmindtrade.com/
【個人 GitHub】 ● https://github.com/linsamtw
【Email】 ● samlin266118@gmail.com
如對本書有疑問,歡迎寄信到以上信箱。筆者除了本書內容外,GitHub 上也有寫文章介紹,兩篇 Kaggle 競賽經驗,分別是生產線分析、庫存需求預設,如對以上有興趣,也可寄信到以上信箱。
|
目錄
【第1 篇 資料工程 ETL】
01 本書介紹
02 開發環境 2.1 開發環境重要性 2.2 Linux 作業系統 2.3 Windows 作業系統 2.4 Mac 作業系統 2.5 Python 開發工具 VS Code
03 Docker 3.1 為什麼先介紹 Docker ? 3.2 什麼是 Docker ? 3.3 安裝 Docker 3.4 安裝 Docker-Compose
04 雲端 4.1 為什麼要用雲端?
05 資料收集 5.1 Python 環境設置 5.2 爬蟲 5.3 資料庫架設 5.4 上傳資料到資料庫 5.5 分散式爬蟲 5.6 定時爬蟲
06 資料提供—RESTful API 設計 6.1 什麼是 API ? 6.2 輕量 API --- Flask 6.3 高效能 API --- FastAPI
07 容器管理工具 Docker 7.1 為什麼要用 Docker 7.2 建立第一個Docker Image --- Dockerfile 7.3 發布 Docker Image 7.4 雲端部屬 7.5 Docker Swarm 7.6 部屬服務
【第2 篇 產品迭代-- 測試運維】 08 自動化測試 8.1 單元測試 Unit Test
09 CICD 持續性整合、部屬 9.1 什麼是 CICD ? 9.2 CI 持續性整合 9.3 Gitlab-CI、以爬蟲專案為例 9.4 Gitlab-CI,建立 Docker Image 9.5 Gitlab-CI,部屬新版本 9.6 Gitlab-CI、以 API 專案為例 9.7 總結
【第3 篇 API 產品上線】 10 API 服務網址 10.1 為什麼需要網址? 10.2 No-Ip 免費的網址申請 10.3 Let's Encrypt 免費的 SSL 憑證 10.4 Traefik 10.5 API 結合Traefik 10.6 總結
【第4 篇 資料視覺化】 11 視覺化工具 11.1 什麼是視覺化? 11.2 Redash 11.3 Redash 帳號設定 11.4 資料庫連接 11.5 匯入資料 11.6 製作第一個圖表 11.7 第一個 Dashboard 11.8 設定下拉式選單 11.9 其他 BI 工具
【第5 篇 排程管理工具】 12 排程管理工具 - Apache Airflow 12.1 事前準備 12.2 什麼是排程管理工具? 12.3 為什麼選擇 Airflow ? 12.4 什麼是 Airflow ? 12.5 架設第一個 Airflow 12.6 DAG 介紹 12.7 常見 Operator 介紹 12.8 Airflow 結合爬蟲 - CeleryExecutor 12.9 結論
13 Redis 介紹 13.1 什麼是 Redis ? 13.2 使用Docker 架設Redis - 結合 Celery
【第6 篇 監控系統】 14 監控工具介紹 14.1 為什麼需要監控系統? 14.2 最知名的開源監控系統之一 14.3 架設個人化監控儀表板 14.4 總結
15 結論 |
序
作者序
✤ 大數據如何入門? 大數據的時代,各行各業都在試著往大數據前進,將大數據導入企業,那最重要的是什麼呢?模型嗎?筆者認為是資料,沒有資料,一切都是空談,因此基礎工程、基礎建設尤為重要,那要如何完善基礎工程呢?這點就是本書談的核心,資料工程。
✤ 大數據產品 本書從最基本的資料收集、爬蟲開始,到資料庫、RESTful API、分散式,最後走到視覺化,完整的呈現,大數據產品的發展過程。筆者除了做開源資料,為大數據盡一份心力外,也希望將過程,寫成一本書,分享給大眾,希望提供一個入門磚,且不只是入門,本書所用到的技術,已經到Senior 等級。另外,本書不單純以技術為主軸,而是引入真實案例、真實情境,讓讀者更能體會到,為什麼要使用這些技術,是為了解決什麼樣的問題。
✤ Side Project 工程師、分析師,除了專研技術以外,發展個人的Side Project,也漸漸成為主流,筆者的專案,FinMind,也是從Side Project 慢慢發展起來,目前在GitHub 得到 1,900 stars,算是得到一些認可。開發Side Project 有什麼好處呢?除了對履歷上加分外,持續開發,接觸的層面會更多更廣,對於架構設計、產品開發上,更加有經驗。且不只是接觸技術,而是有真實的案例,可以證明,你會這項技術,並應用在真實場景。另外,工程師最大的優勢是,有能力做出產品,甚至是分析能力,都有可能幫助讀者,創造出個人產品、品牌,筆者希望能借助本書,讓更多讀者進入這個領域,更多讀者開始建立個人 Project、產品、品牌。 最後,感謝深智數位出版社,邀請筆者撰寫這本書,讓筆者有機會,分享本書內容、產品開發經驗、大數據技術,給各位讀者。 林子軒
|