Datastream 支援從 MongoDB 來源複製變更事件。MongoDB 是開放原始碼的 NoSQL 資料庫,使用類似 JSON 的文件。一份文件可以嵌入其他文件。文件會彙整成集合,而 MongoDB 資料庫會儲存一或多個文件集合。
MongoDB 資料庫中的每筆記錄都是以二進位 JSON (BSON) 描述的文件,這是一種二進位資料表示法,而非像關聯式 SQL 資料庫那樣,將資料儲存在由資料列和資料欄組成的資料表中。應用程式則能以 JSON 格式擷取這項資料。
這個頁面包含以下資訊:
- 從 MongoDB 資料庫複製時,您需要瞭解的重要用語
- Datastream 處理從來源 MongoDB 資料庫提取的資料時,會採取的行為
- Datastream 支援的 MongoDB 版本
- 使用 MongoDB 做為來源的已知限制
重要詞彙
使用 MongoDB 來源時,您需要瞭解下列重要詞彙:
SRV 連線:主機名稱與網域名稱服務 (DNS) 服務記錄 (SRV) 對應的連線字串。字串格式如下:
mongodb+srv://[username:password@]host[/[defaultauthdb][?options]]詳情請參閱 MongoDB 說明文件。
標準連線字串:MongoDB 連線 URI 的標準格式,用於連線至自行託管的 MongoDB 獨立部署項目、副本集或已 shard 的叢集。字串格式如下:
mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]詳情請參閱 MongoDB 說明文件。
副本集:MongoDB 伺服器叢集,可實作複製和自動容錯移轉。副本集提供備援和高可用性,是所有正式環境部署作業的基礎。
已 shard 的叢集:MongoDB 已 shard 的叢集包含 shard、mongos 和設定伺服器。MongoDB 會在集合層級對資料進行 shard,將集合資料分散到叢集中的各個 shard。
mongos:用戶端應用程式和 sharded 叢集之間的介面。
mongos則做為查詢路由器,並將作業寫入 shard。集合:MongoDB 以階層結構組織資料。MongoDB 部署作業包含一或多個資料庫,每個資料庫包含一或多個集合。在每個集合中,MongoDB 會將資料儲存為包含欄位和值組合的文件。集合類似於關聯式資料庫中的資料表。
行為
來源 MongoDB 資料庫會依據變更串流,將變更複製到目的地。變更串流可讓您存取即時資料,並支援副本集和 sharded 叢集。
- 設定完成後,系統會複製所含物件的所有歷來資料。
- 所有變更 (例如從指定物件插入、更新和刪除) 都會複製。
版本
Datastream 支援 5.0 以上的 MongoDB 版本。
已知限制
使用 MongoDB 做為來源的已知限制包括:
- 使用 Datastream API 時,您只能指定要從串流中排除哪些欄位。不支援指定欄位的納入清單。
- 嚴格模式不支援
Infinity、-Infinity和NaN數值。如果文件在嚴格模式下包含這些值,系統會捨棄文件。如果資料庫包含這些值,請使用標準模式 (預設)。詳情請參閱「MongoDB 資料類型」。 - Datastream 不支援以要求單位 (RU) 為基礎的 Azure Cosmos DB。
- Datastream 不支援 Amazon DocumentDB 彈性叢集。
- Datastream 不會複製 MongoDB 時間序列集合中的變更事件,因為 MongoDB 不支援這些集合的變更串流。Datastream 只會回填時間序列集合,不會複製回填後執行的插入、更新或刪除作業。
後續步驟
- 瞭解如何設定 MongoDB 來源,以便與 Datastream 搭配使用。
- 瞭解如何使用 API 和 gcloud CLI 建立 MongoDB 串流。