Python 大數據專案 X 工程 X 產品 資料工程師的升級攻略
本書獨家解析知名大數據專案,FinMind,帶你一窺大數據產品的發展過程,打造專屬個人的大數據 side project、作品、產品。讀完本書,你將學會分散式爬蟲、rabbitmq、api、MySQL 資料庫、壓力測試、docker、CICD、雲端、traefik、redash 視覺化等,本書是一本集大成的作品。
分享在 Github 獲得 1,500 stars 的大數據 side project,並幫助讀者從 0 開始,打造專屬個人的大數據 side project。
● 資料工程
○ 使用分散式技術,rabbitmq、flower、celery,收集證交所、櫃買中心、期交所等股市資訊。
○ 使用 docker、fastapi 架設 RESTful API 服務。
○ 使用 docker swarm 架設分散式服務,包含爬蟲、api、資料庫 MySQL、rabbitmq 等服務。
○ 使用雲端服務,一個月 5 美金,且免費提供 100 美金額度。
○ 一站式管理多台分散式機器。
● 產品迭代
○ 單元測試 unit test 介紹,包含爬蟲、api 測試範例。
○ 使用 CICD 做持續性整合、部屬,並以 gitlab-ci 搭配 API 服務做為範例。
● API 產品上線
○ 免費網址申請教學,No-IP。
○ 免費 SSL 憑證教學,Let's Encrypt。
○ 一站式管理多服務網址,容器化反向代理工具 Traefik。
● 業界資料視覺化工具
○ 使用 Redash 建立個人化、股市分析儀表板。
作者簡介:
林子軒,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 競賽經驗,分別是生產線分析、庫存需求預設,如對以上有興趣,也可寄信到以上信箱。
作者序
✤ 大數據如何入門?
大數據的時代,各行各業都在試著往大數據前進,將大數據導入企業,那最重要的是什麼呢?模型嗎?筆者認為是資料,沒有資料,一切都是空談,因此基礎工程、基礎建設尤為重要,那要如何完善基礎工程呢?
這點就是本書談的核心,資料工程。
✤ 大數據產品
本書從最基本的資料收集、爬蟲開始,到資料庫、RESTful API、分散式,最後走到視覺化,完整的呈現,大數據產品的發展過程。筆者除了做開源資料,為大數據盡一份心力外,也希望將過程,寫成一本書,分享給大眾,希望提供一個入門磚,且不只是入門,本書所用到的技術,已經到 senior 等級。另外,本書不單純以技術為主軸,而是引入真實案例、真實情境,讓讀者更能體會到,為什麼要使用這些技術,是為了解決什麼樣的問題。
✤ Side Project
工程師、分析師,除了專研技術以外,發展個人的Side Project,也漸漸成為主流,筆者的專案,FinMind,也是從Side Project 慢慢發展起來,目前在GitHub 得到 1,500 stars,算是得到一些認可。開發Side Project 有什麼好處呢?除了對履歷上加分外,持續開發,接觸的層面會更多更廣,對於架構設計、產品開發上,更加有經驗。且不只是接觸技術,而是有真實的案例,可以證明,你會這項技術,並應用在真實場景。另外,工程師最大的優勢是,有能力做出產品,甚至是分析能力,都有可能幫助讀者,創造出個人產品、品牌,筆者希望能借助本書,讓更多讀者進入這個領域,更多讀者開始建立個人 Project、產品、品牌。
最後,感謝深智數位出版社,邀請筆者撰寫這本書,讓筆者有機會,分享本書內容、產品開發經驗、大數據技術,給各位讀者。
✤ 大數據如何入門?
大數據的時代,各行各業都在試著往大數據前進,將大數據導入企業,那最重要的是什麼呢?模型嗎?筆者認為是資料,沒有資料,一切都是空談,因此基礎工程、基礎建設尤為重要,那要如何完善基礎工程呢?
這點就是本書談的核心,資料工程。
✤ 大數據產品
本書從最基本的資料收集、爬蟲開始,到資料庫、RESTful API、分散式,最後走到視覺化,完整的呈現,大數據產品的發展過程。筆者除了做開源資料,為大數據盡一份心力外,也希望將過程,寫成一本書,分享給大眾,希望提供一個入門磚,且不只是入門,本書所用到的技...
目錄
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 部屬服務
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 總結
10 API 服務網址
10.1 為什麼需要網址?
10.2 No-IP 免費的網址申請
10.3 Let's Encrypt 免費的 SSL 憑證
10.4 Traefik
10.5 API 結合 Traefik
10.6 總結
11 視覺化工具
11.1 什麼是視覺化?
11.2 Redash
11.3 Redash 帳號設定
11.4 資料庫連接
11.5 匯入資料
11.6 製作第一個圖表
11.7 第一個 Dashboard
11.8 設定下拉式選單
11.9 其他 BI 工具
A 結論
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 容...
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。