ソースの 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 のすべてのコンテンツを移行用に構成しています。移行をデータベース内の特定のコレクションに制限することもできます。たとえば、コレクション users
と chats
のみを移行するには、次のようにします。
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
次のステップ
宛先データベースにデータを書き込むに進みます。