從來源 MongoDB 資料庫匯入

本頁面說明遷移程序的第一階段,也就是使用 Datastream 串流擷取 MongoDB 相容來源資料庫的內容,並將內容轉移至 Cloud Storage 值區。

為串流建立 YAML 設定檔

除了常見的指令列標記外,建立串流還需要兩個 YAML 格式的設定檔:

  • mongo_source_config.yaml 檔案會設定要遷移的特定資源 (例如資料庫名稱)。Mongo 連線參數 (例如主機名稱、使用者名稱和密碼) 都是連線設定檔的屬性。不過,資料庫 (以及該資料庫中的任何特定集合) 是串流的屬性。

  • gcs_dst_config.yaml 檔案會設定 Cloud Storage 中的資料放置位置。Cloud Storage 值區和值區內的根路徑是連線設定檔的屬性。不過,資料格式和資料在 Cloud Storage 值區結構中的位置,是串流的屬性。

下列指令範例會建立這些檔案,並填入您先前設定的環境變數值。或者,您也可以在任何文字編輯器中建立這些檔案,然後手動替換值。

echo "$(cat <<EOF
includeObjects:
  databases:
  - database: ${MONGODB_DATABASE_NAME}
EOF
)" > mongo_source_config.yaml

echo "$(cat <<EOF
path: "/${GCS_BUCKET_SUB_PATH}"
avroFileFormat: {}
EOF
)" > gcs_dst_config.yaml

上一個範例會設定 $MONGODB_DATABASE_NAME 的完整內容,以供遷移。您也可以將遷移作業限制在資料庫中的特定集合。舉例來說,如要只遷移 userschats 集合,請使用下列指令:

includeObjects:
  databases:
  - database: ${MONGODB_DATABASE_NAME}
    collections:
      - collection: users
      - collection: chats

建立 Datastream 串流

接著,建立串流來連結來源和目的地:

gcloud datastream streams create "$DATASTREAM_NAME" \
--display-name="$DATASTREAM_NAME" \
--location="$LOCATION" \
--source="$SRC_CONNECTION_PROFILE_NAME" \
--destination="$DST_CONNECTION_PROFILE_NAME" \
--mongodb-source-config=./mongo_source_config.yaml \
--gcs-destination-config=./gcs_dst_config.yaml \
--backfill-all

如要進一步瞭解如何監控 Datastream 資料串流建立作業,請參閱「疑難排解」。

啟用 Datastream 串流

最後,啟用新串流。

串流開始從 MongoDB 來源提取資料並串流處理變更內容後,您可以在連線設定檔和串流中設定的路徑下,觀察 Cloud Storage bucket 中建立的新目錄和檔案。

如要啟用串流,請執行下列指令:

gcloud datastream streams update "$DATASTREAM_NAME" \
--location="$LOCATION" \
--state=RUNNING \
--update-mask=state

後續步驟

請繼續將資料寫入目的地資料庫