📊 打造自動化全球股市資料庫:global-stock-data-warehouse 專案解析

更新 發佈閱讀 5 分鐘

這份專案 global-stock-data-warehousestock-reminder-bot 的進階資料後援庫。如果說之前的 Bot 是「傳令兵」,這套系統就是「軍械庫」,負責儲存、同步全球市場(台、美、港)的歷史數據。

vocus|新世代的創作平台



在進行量化分析或技術指標篩選時,「資料的穩定性」是成敗關鍵。許多投資人常遇到 API 限制或連線中斷的問題,這套專案正是為了解決這些痛點而生。它不僅能自動爬取全球股市資料,還能將數據結構化儲存在 SQLite 並同步至雲端。

🏗️ 核心架構與程式碼功用

這個儲存庫的設計非常模組化,每個檔案各司其職:

1. main.py — 系統指揮官 (The Orchestrator)

這是整個專案的入口點。

  • 功用:負責接收指令(如 python main.py tw),決定現在要抓取哪個市場的資料。
  • 邏輯:它會調用 crawler.py 獲取清單,並啟動多執行緒下載任務,最後將結果彙整到資料庫中。

2. crawler.py — 資料採集員 (The Web Scraper)

資料庫的源頭。

  • 功用:針對不同市場進行「掃描」。例如,它會去公開資訊站或證交所抓取最新的台股成份股、港股清單或美股代碼。
  • 技術點:它處理了不同交易所的格式差異,確保輸出的代號格式(如 2330.TW0700.HK)能直接被後續模組讀取。

3. database.py — 倉儲管理員 (Database Manager)

負責 SQLite 的讀寫邏輯。

  • 功用:定義資料表的結構(Schema),確保每一筆歷史股價(開高低收、成交量)都能正確存放。
  • 重要性:它確保了數據的一致性,並提供查詢接口,讓 stock-reminder-bot 可以快速讀取歷史資料進行 KD 或 MACD 計算。

4. sync_manager.py — 雲端同步專家 (Cloud Sync Specialist)

這是處理 403 錯誤與 GH_PAT 的關鍵核心。

  • 功用:負責將本地端跑完的 .db 資料庫檔案上傳至 Google Drive 或 GitHub Repo 作為備份。
  • 技術挑戰
    • Google Drive API:處理服務帳戶 (Service Account) 的空間配額與權限驗證。
    • GH_PAT:利用 GitHub Token 將資料庫推送到私有倉庫,實現「異地備援」。

5. settings.py — 總部秘書 (Config Settings)

管理所有敏感資訊。

  • 功用:統一讀取環境變數(Environment Variables),包含 TELEGRAM_TOKENGOOGLE_CREDENTIALS 以及我們提到的 GH_PAT

💡 為什麼要將資料「倉庫化」?

比起每次執行 Bot 都重新向 Yahoo Finance 抓取資料,建立資料倉庫有三大好處:

  1. 突破限制:避免頻繁請求 API 導致 IP 被鎖(Rate Limit)。
  2. 速度極快:Bot 讀取本地 SQLite 資料庫的速度遠快於網路請求。
  3. 數據回測:有了完整的 .db 檔案,你可以隨時進行歷史策略回測,而不僅僅是接收即時通知。

🛠️ 技術筆記:關於 403 錯誤與 GH_PAT

在架設過程中,許多網友會遇到 HttpError 403 的問題。這通常與 Google 服務帳戶 (Service Account) 的儲存空間限制有關。服務帳戶本身沒有 15GB 的免費空間,因此它必須將檔案「寫入」到你共用給它的資料夾中。

同時,為了讓資料庫能安全地同步到 GitHub 私有儲存庫,我們必須配置 GH_PAT (Personal Access Token)。這張「數位通行證」確保了你的敏感數據能被加密傳輸且不對外公開。


💬 交流與回饋

目前這套系統已能穩定運行全球市場的資料同步,但在 Google Drive API 的配額管理上,仍有一些優化空間。

如果有網友在處理「服務帳戶空間配額 (Storage Quota)」或「GitHub Actions 自動同步資料庫」有更優雅的解法,還望不吝告知、指點迷津!歡迎在下方留言一起交流技術心得。

🚀 相關連結

  • 本專案 GitHub 倉庫





留言
avatar-img
《炒股不看周月年K漲幅機率就是耍流氓》
16會員
290內容數
普通上班族,用 AI 與 Python 將炒股量化。我的數據宣言是:《炒股不做量化,都是在耍流氓》。
你可能也想看
Thumbnail
※ 為什麼選擇SQLite? 安裝簡單:SQLite是一個零配置的資料庫,不需要複雜的設定和安裝過程。。 使用SQL語法。 設計選擇多元性(MySQL / SQLite):適合於小零件資料應用、嵌入式系統、物聯網設備。 ※ SQLite四大優點: 執行檔檔案很小:資料庫系統需要的磁碟空
Thumbnail
※ 為什麼選擇SQLite? 安裝簡單:SQLite是一個零配置的資料庫,不需要複雜的設定和安裝過程。。 使用SQL語法。 設計選擇多元性(MySQL / SQLite):適合於小零件資料應用、嵌入式系統、物聯網設備。 ※ SQLite四大優點: 執行檔檔案很小:資料庫系統需要的磁碟空
Thumbnail
做了一段時間的0codePM,終於有時間回到技術工作,即使AI世界已經因為Deepseek推出而改變,但AI本質係沒有變的---繼續搞SQLite-vec。由於年代久遠,Opensource界幾個月可以好大變化,而且文檔永遠不齊全,對於功力有限的0codePM唯有亂試。 首先係,要在SQLit
Thumbnail
做了一段時間的0codePM,終於有時間回到技術工作,即使AI世界已經因為Deepseek推出而改變,但AI本質係沒有變的---繼續搞SQLite-vec。由於年代久遠,Opensource界幾個月可以好大變化,而且文檔永遠不齊全,對於功力有限的0codePM唯有亂試。 首先係,要在SQLit
Thumbnail
本文簡單介紹如何使用SQLite。 先到官方網站下載SQLite 檔案。
Thumbnail
本文簡單介紹如何使用SQLite。 先到官方網站下載SQLite 檔案。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
加入套件 在pubspec.yaml添加sqflite與path_provider。 建立數據模型 id:識別欄位,唯一值為整數資料類型 name:存放名字為字串資料類型 class People { final int? id; final String? name;
Thumbnail
加入套件 在pubspec.yaml添加sqflite與path_provider。 建立數據模型 id:識別欄位,唯一值為整數資料類型 name:存放名字為字串資料類型 class People { final int? id; final String? name;
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News