本文件作爲 Gravity Quick-Start 的快速部署操作指引,更進一步嘗試修改 docker-compose.yaml 來一個手動部署一條 Gravity 資料管線。
本實作必須依賴前面介紹過的 Quick-Start Demo 作爲基礎:
待系統環境準備好後,可以開始安裝 Gravity 相關的元件。
爲簡化當前的 demo ,我們只會建立兩個 table:上面是建立在來源資料庫(MySQL)、下面那個則是建立在目標資料庫(PostgreSQL)。
呼叫我們預先寫好的腳本來建立資料表:
我們可以從結果看到作爲來源的 MySQL 出現 products 這個資料表:
同時目標資料庫 PostgreSQL 會出現 inventory 這個資料表:
在前面步驟下載的檔案中,有一份名爲 docker-compose.yaml.sample 的檔案,我們可以打開它參考其設定。基本上,我們只需要修改所有 ”_@@xxxxx@@_“ 的內容,即可完成設定。
以當下 demo 的例子來看,具體的修改大致如下:
設定名稱 | 賦值 | 說明 | 所在行號 |
---|---|---|---|
_@@COLLECTION_NAME@@_ | inventoryData | 集合名稱 | 37, 61, 85, 109, 140 |
_@@DEST_TABLE@@_ | inventory | 目標資料表 | 141 |
_@@EVENT_CREATE@@_ | inventoryCreated | 事件建立名稱 | 60, 169 |
_@@EVENT_DEL@@_ | inventoryDeleted | 事件刪除名稱 | 108, 171 |
_@@EVENT_INIT@@_ | inventoryInitialized | 事件初始化名稱 | 36, 168 |
_@@EVENT_UPDATE@@_ | inventoryUpdated | 事件更新名稱 | 84, 170 |
_@@FIELD_NAME_1@@_ | category | 表格欄位 | 46, 47, 70, 71, 94, 95 |
_@@FIELD_NAME_2@@_ | quantity | 表格欄位 | 50, 51, 74, 75, 98, 99 |
_@@FIELD_NAME_3@@_ | warehouse | 表格欄位 | 54, 55, 78, 79, 102, 103 |
_@@PORT@@_ | 4223 | db連線port | 12, 131, 153 |
_@@PRI_KEY@@_ | name | 主鍵名稱 | 39, 42, 43, 63, 66, 67, 87, 90, 91, 111, 114, 115 |
_@@SRC_TABLE@@_ | products | 來源資料表 | 166 |
示範所需,我們已經爲大家建立好一份 docker-compose.yaml 以供直接使用。以上 sample 是爲了方便大家理解。當然您也可以用 sample 復制爲 docker-compose.yaml 然後自行修改也是可以的。
無論如何,請確定其中的欄位名稱要跟來源及目標資料庫所定義的 schema 要一致。
當 docker-compose.yaml 修改好之後,就可以啓用了管線了:
如果一切順利啟動,沒有任何錯誤,Gravity 會開始監控資料源(MySQL)的資料變化,並將任何變更資料同步一份至目標資料庫(PostgreSQL)。
如果你想驗證兩個資料庫之間的資料是否有同步,可以試著插入新的紀錄到 MySQL,然後去 PostgreSQL 檢查是否有同步成功。為節省時間,你也可以直接使用我們已經開發好的工具,來驗證 Gravity 管線是否正常:
如果你想停止 Gravity 並清除範例中所產生的資料,可以直接以命令關閉服務:
確認容器都關閉後,即可以刪除 *.yaml、*.sql 和相關目錄。