2020-04-27

從 XBRL 建立屬於自己的財報資料庫

若是要了解一家公司的財務狀況,一定要閱讀財務報表,傳統 PDF 格式的財務報表不利於電腦整理、比較公司的各種財務數據,而 XBRL(eXtensible Business Reporting Language,可延伸商業報導語言)是以 XML 為基礎做為一種財務報表的表達方式,有益於分析公司的財務報表。

在閱讀財務報表相關書籍時,我就在想怎麼從上千家的公司裡篩選出具優益財務的公司,顯然要透過資料庫整理好各項數據,才能藉由電腦快速篩選。像是財報狗Goodinfo!台灣股市資訊網優分析等網站都能篩選出符合某些財務指標的公司,缺點就是有時想用的指標是沒有提供的,如果能自己寫想要的指標,就能更自由的尋找潛力股。

公開資訊觀測站就能下載以 XBRL 格式製作的財務報表,但網路上關於利用 XBRL 製作財務資料庫的資訊卻很少,所以我打算慢慢找資料,慢慢建立自己的資料庫。

以下是我目前找到相關的網站,其中幫助最大的是周國華老師的XBRL網站和貓囧丸,周國華老師對於XBRL的介紹很詳細,對於我建立 XBRL 概念很有用,而貓囧丸則是在程式設計上讓我受益不少,尤其是他寫在程式碼中的註解,不止讓我更了解程式也更了解 XBRL。

公開資訊觀測站也將每一季的財務報表打包成一個檔,而從 2019 年第 1 季開始加進了 iXBRL 格式,使得線上閱讀財務報表更方便,以台積電2018年第4季合併財務報表台積電2019年第1季合併財務報告為例就可以看出差別。

之後再慢慢將 XBRL 的筆記寫下來,也訓練我對於 Python 語言的使用,尤其在爬取股價資訊、券商進出明細方面,搭配起來也許更有助於投資。

2020-04-07

Hyper-V 搬移硬碟

使用 Hyper-V 建立虛擬機器後,如果想要複製機器可以使用匯出/匯入的方式,匯出/匯入亦可透過 Power Shell 操作,或者想先建立一個 Base machine,之後利用 Base machine 快速建立其他機器時,亦可利用匯出/匯入的功能。

匯入的類型選擇第三種「複製虛擬機器(建立新的唯一識別碼)」,存放虛擬機器的資料夾必須和原來的不同。匯出時會連同檢查點一起匯出,不是單純的把虛擬硬碟匯出。




兩個需求


  • Base 和其他後來建立機器的映像檔放在同一個資料夾
  • Base 映像檔已經合併了所有的檢查點( 快照,Snapshot)
匯入 base 的機器時,虛擬機器的硬碟(vhdx 檔)檔名仍和原來的一樣,因此必須指定另一個資料夾,不符合我第 1 個需求。在匯入時如果之前做過快照,會連同檢查點的檔案一起匯入,而 Hyper-V 的檢查點是種差異磁碟,如果將最早的 vhdx 檔改名直接複製,則中間做過的系統更新就會消失。

那要如何同時滿足這兩個需求呢?後來在 [如何手動還原 Hyper-V 的 VM 與 Snapshots 到另一台主機] 找到將 Snapshot 合併回父 vhdx 的方法,同時又可以指定新檔名的方法,這樣就能直接建立一台新的虛擬機器,並指定 vhdx 檔做為硬碟。


合併 Snapshot 並指定新檔名

  1. 選取編輯磁碟便會啟動編輯磁碟精靈
  2. 選取最新的 avhdx 檔,或是想要合併的檢查點
  3. 選擇合併
  4. 合併至新的虛擬硬碟並指定檔名
  5. 建立新的虛擬機器,並連接新的虛擬硬碟
  6. 在虛擬機器列表中便可看到新舊機器


CentOS 啟動網路

我的 Base 是 CentOS 8,在建立新虛擬機器後,遇到沒有網路的問題,以下是啟動網路的方法。
  1. 用 ifconfig 指令查看網路,如果沒有就先看一下 /sbin/ 底下有沒有 ifconfig,再沒有就安裝 net-tools
     
    # 安裝 net-tools
    sudo dnf install net-tools
    
  2. 啟動網路,我的是 eth0,就輸入以下指令
     
    sudo ifup eth0
  3. 如果希望開機便自動啟動網路,修改檔案 /etc/sysconfig/network-scripts/ifcfg-eth0,將 ONBOOT=no 改為ONBOOT=yes


利用差異磁碟可節省實際硬碟空間

將父磁碟設為唯讀,新增子磁碟為「差異磁碟」,在建立新虛擬機器時連接至子磁碟,這樣可以節省硬碟空間,不過一旦虛擬機器太多時,父磁碟將成為效能瓶頸。

參考網頁


  1. Day-12 Hyper-V 3.0實戰之-另一種備份的方式(匯出匯入虛擬機器)
  2. [Hyper-V]如何在Hyper-V 3.0上進行虛擬主機的複製
  3. 如何手動還原 Hyper-V 的 VM 與 Snapshots 到另一台主機
  4. Linux CentOS Network unreachable 處理解決方式
  5. [HyperV] 差異磁碟