ソースの Mongo データベースからインポートする

このページでは、Datastream ストリームを使用して MongoDB 互換のソース データベースの内容をキャプチャし、Cloud Storage バケットに転送する移行プロセスの最初のステージについて説明します。

ストリームの YAML 構成ファイルを作成する

ストリームの作成には、通常のコマンドライン フラグに加えて、YAML 形式の 2 つの構成ファイルが必要です。

  • 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 ストリームを有効にする

最後に、新しいストリームを有効にします。

ストリームが Mongo ソースからデータの取得と変更のストリーミングを開始すると、接続プロファイルとストリームで構成されたパスの下の Cloud Storage バケットに新しいディレクトリとファイルが作成されます。

ストリームを有効にするには、次のコマンドを実行します。

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

次のステップ

宛先データベースにデータを書き込むに進みます。