iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
自我挑戰組

30 天從 BI 走向 Data Engineering:實戰、工具與心法系列 第 2

Day2:我的第一個DE任務──把檔案從SFTP搬進BigQuery (上)

  • 分享至 

  • xImage
  •  

在我們公司,Data Team 分為 BI(Business Intelligence Analyst)以及 DE(Data Enginner)。

分工的方式從資料流程來說,最初資料會由 DE 從外部系統導入並放上 bigquery,
分析師只需要透過 SQL 就可以做各式各樣的查詢,也可以把加工後的新表格導入 Looker Studio 製作儀表板。

因此,過去身為分析師的我,對終端機 (Terminal) 一直都偏陌生,大概只會輸一些 git 指令。

直到轉職為 DE 時,我先問了我們家的資深 DE:

「如果我想最快上手 DE 的工作,應該先學什麼?」

他想了一下,最後回答:

「最常用,最需要學的應該 Linux 指令。」

當時我還不太懂他這句話的意思,
直到我的第一個 DE 任務到來:

「把客戶放在 SFTP 資料夾上的檔案,上傳到 BigQuery。」

收到任務了!第一步我們要來拆解這個任務要怎麼完成,

在我們公司的技術框架下,可細分為以下步驟:

  1. 連線 sftp server 並找到客戶的資料夾位置
  2. 確認檔案內容與格式
  3. 將檔案複製進 GCS bucket
  4. 將 GCS bucket 中的檔案匯入 bigquery 的指定 dataset

光是在步驟一連線 SFTP Server 時,我就發現 PowerShell 不好用,Chatgpt推薦我用Git Bash

1. PowerShell vs Git Bash

PowerShell 是 Windows 環境下常見的終端機,但語法上與 Linux 有些差異。
為了模擬 Linux 環境,建議用 Git Bash,支援比較多 Unix/Linux 指令。
如果你是 Windows 使用者,Git Bash 會是一個很好的入門工具。

2. SFTP / FTP

因為客戶會把檔案放到 SFTP 資料夾,所以我必須先透過指令連線到 SFTP,並下載檔案。
常見的指令像是:

  • sftp user@host:連線到指定的 SFTP 伺服器
  • sudo -i:若你的個人帳號權限不足,要切換到 root 帳號時的指令
  • exit:離開

3. Linux 常用指令

連進 sftp 環境後,所有操作都是 Linux 指令,包含:

  • ls:列出目錄下的檔案
  • cd:切換資料夾
  • pwd:顯示目前所在路徑
  • mkdir:建立資料夾
  • mv:移動檔案,移動後刪除原位置的檔案
  • rm:刪除檔案
  • cp:複製檔案,移動後不刪除原位置的檔案

雖然這些指令看似簡單,但它們就像是搬運資料時的「手腳」,沒有這些基礎根本動不了。
而且在實際環境中操作時,這些指令就像句子裡的動詞,還得加上名詞才會是完整的句子,譬如

 cp *.csv backup/

是把當下路徑中所有 csv 檔都搬到此目錄下的 backup 資料夾內的意思

光是參考著前人寫過的code,在自己的終端機上反覆操作這些指令,就已經花掉我半個下午
明天還得繼續學習把 sftp 中的檔案搬到gcs的環境中呢!


上一篇
【Day 1】從 BI 轉向 DE:我的職涯轉型起點
系列文
30 天從 BI 走向 Data Engineering:實戰、工具與心法2
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言