iT邦幫忙

2023 iThome 鐵人賽

DAY 3
2

⛹️‍♀️ 從你的問題開始

當你開始學習數據時,最常出現的第一個問題是如何選擇合適的工具。

我應該學 SQL 還是 Python?

剛開始時,我是沒有這個問題,因為我對兩者都一無所知 😶‍🌫️。

我從使用試算表,發現 SQL 可以解決試算表無法打開的問題(參見 Day 2),因此很自然的,我的下一步就是學習 SQL。

理解你的需求和能力

當時我的需求和能力是:

  • 需要比對廣告成效。
  • 不會寫程式,也沒有時間上 5 週的課。

我能做的是:

  • 繼續使用試算表。我仍然需要每天查看廣告成效。
  • 強調廣告表現的重要性,對同事求救我遇到的困難。
  • 表示我似乎可以學 SQL。

👼 很幸運 CTO 支持我。他發現我在學 SQL,於是教我如何將試算表接到 BigQuery

如果這個問題不夠重要,可以請個實習生、增加我的工作量或將報告更新頻率從每天降低到每月,就解決了。如果問題很重要,但我學不會 SQL,那麼這項工作可能會指派給另一人,我也無法開始接觸數據分析!🧟‍♀️

Extract Transfer Load

很高興可以擺脫打不開的試算表,並更快地進行分析工作。我沒有意識到當時是多麼幸運。當我在另一家公司遇到同樣的問題時,就沒有這樣的支援。

讓我先介紹 ETL。這是資料處理的普遍做法。你必須取得一些資料,分析它,並向其他人展示你的結果。

  • Extract:從源頭撈取資料
  • Transfer:清理、添加業務邏輯
  • Load:將資料載入 Data Warehouse 或你可以進行分析的地方

在我 v1 的版本中,
v1, ETL

我將資料從試算表匯入到 BigQuery,然後在 BigQuery 上進行 transfer,並將資料重新 load 到我的試算表中。當時對我來說這是個好方法,因為我只會試算表和一點點 SQL。

當我轉到另一家公司並要求 BigQuery 時,發現沒有!😦 我就不知道該怎麼做。以下是我的 v2.1,

這作法沒有完成 ETL。是直接從 production server 查詢資料

工程師教我使用 sequelpro 連接到 Prodcution Server。我不太會用,只是想看到一些圖表。所以他們幫我架了 Metabase

應該有些人已經想到接下來會發生什麼事 🤣,

為什麼網站這麼慢?
Karen,停止查詢資料!

注意,這是因為 OLAP vs. OLTP 不同。 Production Server 是 OLTP,它不適合用來做資料分析。

平衡技術和營運

我應該考慮,

  • 需要即時更新資料嗎?如果不是,可以批量抓資料。
  • 有很多使用者在等待我的報告嗎?如果不是,試算表中的圖表功能就足夠了。

於是有了 v2.2,滿足了我的需求而又不影響線上網站。皆大歡喜。
v2.2

根據你的特定問題和周圍的環境選擇一個作法。評估處理技術部分是否必要。是否值得投資?

🤜 提示,

如果你想進行一些資料分析但無法取得資料,試著專注一個重要的業務問題,並取得一些相關的資料,例如 csv 文件。分析這些 csv 文件,分享你對問題的發現,讓其他人感受到你分析的潛力跟啟發對資料分析的想像。展示價值之後,你才能要求更多投入。

尋找 ETL 的做法

有很多技術可以用來建立 data pipeline;我在這裡介紹了 ETL。根據你的問題、能力和環境選擇你的作法,參考你公司已在使用的工具,以及資料分析對業務的影響。

不要花太多時間選擇工具。只需嘗試看看什麼可以解決你的問題。在做中學,再慢慢調整。


對 dbt 或 data 有興趣 👋?歡迎加入 dbt community 到 #local-taipei 找我們,也有實體 Meetup 請到 dbt Taipei Meetup 報名參加


上一篇
用問題來描繪你的學習路徑 - Day 2
下一篇
開始使用 dbt - Day 4
系列文
被 dbt 帶入門的數據工作體驗 30 想30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言