iT邦幫忙

2026 iThome 鐵人賽

DAY 13
0
Software Development

成為產品型工程師吧!從培養產品思維到 PostHog 數據實戰系列 第 13

Day 13|產品資料不只在 Analytics:Data Sources 與 Model

  • 分享至 

  • xImage
  •  

很多時候,事件本身攜帶的資料仍不足以提供完整的分析資訊。

例如我們發送了訂單事件,但事件內不見得包含完整的商品清單。這時就可以利用資料來源(Data Sources)功能,混合不同來源的資料。

https://ithelp.ithome.com.tw/upload/images/20260916/20102556DagkIcNarE.png

除了工程師常用的資料庫以外,PostHog 還支援非常多常見的資料來源,在這邊就不一一列舉。

https://ithelp.ithome.com.tw/upload/images/20260916/20102556TpQuJ956dd.png

以 Postgres 為例,可以設定資料庫的連線資訊以及 SSH Tunnel。不過這邊要求你直接填入 Private Key,而不是提供 Public Key 讓你登記,個人使用時會有一點怕。

https://ithelp.ithome.com.tw/upload/images/20260916/20102556fky3xsX8Dm.png

三種模式中,我認為 Sync to warehouse 是比較好用的選項,但它採用定時同步,因此除非啟用 CDC,否則會有一定的資料延遲。

Query directly 無法和 PostHog 本身的數據結合使用,因此我認為適用場景比較少。

Sync and query live 看似兼顧兩者,不過以 SQL Insight 的運作方式來看,應該無法完全享受到即時查詢的優勢。實際使用時可以依需求選擇。

下一個畫面會讓你選擇要同步進 PostHog 的表格。每個月可以免費同步 100 萬筆紀錄(第一次連接時的初始導入不計費;未升級到 Pay-as-you-go 方案時則限制最多 1 億筆),後續每 100 萬筆為 $15。

同步方式分為三種:Incremental、Append-Only、Full Refresh。

Incremental 會記錄最後一次查詢時參考欄位的最大值,下一次同步時,只會拉取參考欄位大於該值的紀錄並更新,適合使用更新時間戳記等欄位。

Append-Only 的方式類似,但只會插入、不會更新。因此如果資料庫中的既有紀錄被修改,新的版本會再被插入一次。

Full Refresh 則會在每次同步時重新抓取整張表,比較適合資料量非常少且通常會全部一起更新的表格。

https://ithelp.ithome.com.tw/upload/images/20260916/20102556SnE1NIFXJr.png

預設同步週期是六小時,可以視需求調整,後續也可以增加新的同步表格或關閉既有同步。

完成後,我們就可以回到 SQL Editor 裡面使用這些資料。

https://ithelp.ithome.com.tw/upload/images/20260916/20102556L1UddOvRMO.png

如此一來,像是前面提到的「從訂單事件查詢商品資料」案例,就可以透過 SQL 的關聯查詢來達成。

SELECT
    AVG(items.price) AS avg_order_value
FROM events
JOIN postgres.public__order_items ON events.properties.order_id = postgres.public__order_items.order_id
JOIN postgres.public__items ON postgres.public__order_items.item_id = postgres.public__items.id
WHERE events.event = 'submit_order'

或更進一步,我們可以在 PostHog 建立 Model。

https://ithelp.ithome.com.tw/upload/images/20260916/2010255692nEhRPzy8.png

https://ithelp.ithome.com.tw/upload/images/20260916/20102556S8BLbJ91Hh.png

和 SQL Insight 不同,Model 會把查詢結果變成一個可以再次利用的資料模型,並且能夠使用在上一篇文提到的預設分析圖表中。

https://ithelp.ithome.com.tw/upload/images/20260916/20102556XIl2dQlemH.png

以我自己的使用場景來說,我們有前述的多表格關聯查詢需求,但最終希望搭配 Bar Chart 與 Breakdown 來呈現結果,此時 SQL Insight 就無法完全滿足需求。

另一方面,我們也有許多基於相同關聯邏輯的分析需求。透過 Model,可以將這些資料整理邏輯集中在同一個地方,減少每個 Insight 分別維護查詢的麻煩。

到這裡,我們已經不再受限於事件本身攜帶的資料。從 SQL Expression、SQL Insight,到外部 Data Sources 與 Model,大部分想分析的資料都已經有辦法整理成適合觀察的形式。

不過,能建立 Insight 並不代表我們會持續去看它。實際上,許多產品問題也很難只靠單一 Insight 判斷,我們通常需要同時關注多個指標、圖表與補充資訊,才能掌握產品目前的狀況。

因此,下一篇文將介紹儀錶盤 Dashboard,看看如何把多個 Insight 與輔助資訊整合在一起,讓一次次的分析變成更容易持續進行的觀察。


如果你願意花 30 秒留下回饋,我會用這些意見來調整後續文章:分享你的意見


上一篇
Day 12|當內建圖表回答不了問題:SQL / HogQL
下一篇
Day 14|一個數字變好,產品就真的變好了嗎?Primary / Guardrail Metrics
系列文
成為產品型工程師吧!從培養產品思維到 PostHog 數據實戰20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言