MLS 房源資料同步
System ↔ System訂閱 MLS 資料流,進行正規化、去重複並推送至各入口網站。
6 個節點 · 5 條連接real-estate
apidbsystem
視覺化
MLS 資料流訂閱api
透過 RETS/Web API 拉取新增及更新的房源資料。
↓sequential→ 資料正規化
資料正規化system
將 MLS 特有欄位對應至標準結構描述,統一地址格式。
↓sequential→ 重複資料偵測
重複資料偵測system
依地址與 MLS 編號進行模糊比對,防止房源重複刊登。
↓sequential→ 本地資料庫更新
本地資料庫更新db
以變更資料擷取日誌方式,將房源資料更新寫入 PostgreSQL。
↓sequential→ 入口網站推送
↓parallel→ 搜尋索引刷新
入口網站推送api
將更新後的房源分發至 Zillow、Realtor.com 及房仲網站。
搜尋索引刷新system
在 Elasticsearch 中重新索引更新的房源以供網站搜尋使用。
uc-mls-data-sync.osop.yaml
osop_version: "1.0"
id: "mls-data-sync"
name:"MLS 房源資料同步"
description:"訂閱 MLS 資料流,進行正規化、去重複並推送至各入口網站。"
nodes:
- id: "mls_feed"
type: "api"
subtype: "rest"
name: "MLS 資料流訂閱"
description: "透過 RETS/Web API 拉取新增及更新的房源資料。"
retry_policy:
max_attempts: 3
backoff: "exponential"
timeout_sec: 120
- id: "normalize"
type: "system"
name: "資料正規化"
description: "將 MLS 特有欄位對應至標準結構描述,統一地址格式。"
- id: "dedup"
type: "system"
name: "重複資料偵測"
description: "依地址與 MLS 編號進行模糊比對,防止房源重複刊登。"
- id: "db_update"
type: "db"
name: "本地資料庫更新"
description: "以變更資料擷取日誌方式,將房源資料更新寫入 PostgreSQL。"
- id: "portal_push"
type: "api"
subtype: "rest"
name: "入口網站推送"
description: "將更新後的房源分發至 Zillow、Realtor.com 及房仲網站。"
timeout_sec: 60
- id: "index_refresh"
type: "system"
name: "搜尋索引刷新"
description: "在 Elasticsearch 中重新索引更新的房源以供網站搜尋使用。"
edges:
- from: "mls_feed"
to: "normalize"
mode: "sequential"
- from: "normalize"
to: "dedup"
mode: "sequential"
- from: "dedup"
to: "db_update"
mode: "sequential"
- from: "db_update"
to: "portal_push"
mode: "sequential"
- from: "db_update"
to: "index_refresh"
mode: "parallel"