メインコンテンツまでスキップ

MongoDBデータソースの設定

最終更新 2026/10/03

AEデータ開発プラットフォームのオフライン同期プランは、MongoDB データソースへの 書き込み(Writer) に対応しています。このドキュメントでは、MongoDBのデータ同期機能の対応状況について説明します。

MongoDBはドキュメントデータベース(JSONをデータモデルとする)です。

MongoDBは、非リレーショナルデータベースの中で最も機能が豊富で、最もリレーショナルデータベースに近いデータベースです。対応するデータ形式はBSONで、JSONに似たバイナリ形式のストレージ形式です。略してBinary JSONと呼ばれ、JSONと同様に埋め込みのドキュメントオブジェクトや配列オブジェクトに対応しているため、比較的複雑なデータタイプを保存できます。

SQLの概念MongoDBの概念説明
データベース(database)データベース(database)論理的な名前空間。1つのデータベースには、名前の異なる複数のコレクションが含まれます
テーブル(table)コレクション(collection)SQLのテーブルに相当します。1つのコレクションには、異なるフィールド(タイプ)を持つ複数のドキュメントを格納できます
行(row)ドキュメント(document)1つのドキュメントはデータテーブルの1行に相当し、複数の異なるフィールドで構成されます
列(column)フィールド(field)ドキュメント内の1つの属性で、列( column )に相当します
インデックス (index)インデックス(index)SQLの概念と同じ
主キー ( primary key)_id(フィールド)各ドキュメントに一意のidフィールドがあります
ビュー (view)ビュー(view)仮想の(実在しない)コレクション
テーブル結合 ( table joins)集約操作($lookup)テーブル結合( tablejoin )に「類似した」集約演算子

MongoDBの最大の特徴は、非常に強力なクエリ言語に対応していることです。その構文はオブジェクト指向のクエリ言語に似ており、リレーショナルデータベースの単一テーブルクエリに相当する機能のほとんどを実現できるうえ、データへのインデックス作成にも対応しています。

ゲームでの活用例:MongoDBにゲームユーザーの情報を保存し、ユーザーの装備やポイントなどを埋め込みドキュメントとして直接保存することで、検索や更新が容易になります。

対応バージョン​

MongoDB 4.0+

使用制限​

現在、次の構成方法にのみ対応しています:

  • AEプリセット倉庫の空間テーブルからMongoDBへの書き込み(オフライン書き込み)に対応

注:

  • MongoDBデータソースの読み取り(オフライン読み取り)には現在対応していません

対応するフィールドタイプ​

フィールドタイプオフライン書き込み(MongoDB Writer)説明
INT対応32ビット整数
LONG対応64ビット整数
STRING対応
OBJECTID対応
DECIMAL対応Decimal128、最大34桁の精度
NULL対応
DOUBLE対応
DATE対応秒単位の精度
TIMESTAMP対応ミリ秒単位の精度
BOOLEAN対応
BINDATA未対応
REGEX未対応
JAVASCRIPT未対応
MINKEY未対応
MAXKEY未対応

MongoDBデータソースの作成​

データ開発プラットフォーム - バッチ統合 モジュールで、MongoDBデータソースを追加を選択できます

データソース設定パラメータ情報

データソースに必要な設定情報を入力し、接続性テストが完了すると、MongoDBデータソースを作成できます。

パラメータ名の前に * が付いているものは必須パラメータ、* が付いていないものは任意パラメータです。

フィールド名説明
基本情報
*データソース名データ開発プラットフォームのスペース内で一意である必要があります。英字、数字、アンダースコアの組み合わせで、数字やアンダースコアで始めることはできません
備考任意
データソース設定
環境を区別しない / 独立環境構成いずれかを選択:「環境を区別しない」は本番環境と開発環境で1セットの構成を共用することを表し、「独立環境構成」は2つの環境をそれぞれ独立して設定することを表します
*デプロイモード

以下のデプロイモードに対応しています

  • クラスタモード
  • コピークラスタ
  • シングルノードモード
*サーバーアドレス/IP

データベースがあるサーバーのアドレス

クラスタ構成の場合、複数のノード情報を入力するには「追加」をクリックしてください

*ポートMongoDBへのアクセスに使用するポート
*データベース名接続するMongoDBデータベースの名前
*ユーザー名データベースへのアクセス権限を持つユーザー名
*パスワードユーザー名に対応するパスワード情報
認証データベースユーザー作成時に使用したデータベースの名前。例:admin
レプリカセット名デプロイモード = コピークラスタの場合は、レプリカセット名を入力してください
高度な構成

データベースへの接続に必要なその他の高度なパラメータ。自由に入力できます

例:SSL証明書による接続が必要な場合は、ssl=true パラメータで制御できます

注:上記のパラメータ情報を連結してconnection stringを作成します。これはMongoDBデータベースとの接続を確立するための文字列です

例:mongodb://<username>:<password>@<instance_ip>:<instance_port>/<database_name>?authSource=admin&ssl=true

オフライン同期タスクの作成​

上記の手順でMongoDBデータソースを作成し、接続性テストに成功したら、実際のシナリオに応じてMongoDBオフライン書き込みのオフライン同期タスクを設定できます。

データの流向としてのMongoDB​

データの流向としてMongoDBを選択し、以下の関連パラメータを設定します:

フィールド名説明
*ソースタイプデータの流向のターゲットタイプとしてMongoDBを選択
*データソース名データソース管理画面で登録済みのMongoDBデータソースを、ドロップダウンから選択できます。
対応するデータソースをまだ作成していない場合は、データソース管理 ボタンをクリックして、MongoDBデータソースを作成できます。
*データベース名読み取るデータベースの名前
*コレクション名

コレクション名(collection)をドロップダウンから選択できます

注意:そのコレクション(collection)が現在存在しない場合、挿入操作によってそのコレクションが作成されます。

*書き込みモード
  • 新しいデータを挿入: Insert(一意キーの競合が発生した場合、タスクは失敗します)
  • 更新挿入: Upsert(一意キーが同じ場合は新しいデータで古いデータを上書きし、一意キーが異なる場合は新しいデータをそのまま挿入します)。一意キーは、フィールド照合の「コレクションフィールドを追加」ダイアログで、「UPSERT キーとして」スイッチによって指定します

注意:insert/updateコマンドに含まれるドキュメントは、最大16MBを超えることはできません。

前置ステートメント

役割:MongoDBにデータを書き込む前に、MongoDB内の既存データに対して実行する前処理です

入力する前置ステートメントは、JSON構文の要件を満たしている必要があります。

前置条件(PreSQL)の設定には、typeとjsonの2つの属性が含まれます。

  • type:必須項目です。値はremove、dropのいずれかです
  • json:
    • typeがremoveの場合は必須項目で、MongoDBの標準Queryの構文で設定します。
    • typeがdropの場合は入力不要です。
{
"type":"remove",
"item": [
{
"_id": ObjectId("..."),
"student_id": 1001,
"name": "xiaoming",
"grade": "grade_1"
}
]
}
高度な構成バッチ件数:1バッチでMongoDBに書き込むデータ量
バッチ書き込みインターバル:メモリバッファ内のデータをMongoDBにフラッシュ(Flush)する最大時間間隔。単位はミリ秒(ms)

パラメータ名の前に * が付いているものは必須パラメータ、* が付いていないものは任意パラメータです。

フィールド照合の説明​

データソースとターゲット側の設定が完了したら、フィールド照合関係を作成する必要があります。システムは照合関係に従って、ソース側フィールドのデータに基づき、ターゲットcollectionのフィールドを自動作成します。

  • 解析に成功したら、「同名照合を生成」をクリックし、ソーステーブルのデータタイプに基づいてMongo Documentの構造を生成します
  • 書き込むDocumentのフィールド名とフィールドのデータタイプは、ユーザーが再編集できます。

1つの目標フィールドに対応できるソースフィールドは1つだけであることに注意してください

フィールドタイプの照合方法(空間テーブル —— Mongo):

ソースファイルタイプ空間テーブルMongoDB BSONタイプ説明

orc、parquet

tinyintInt
smallintInt
integerInt32ビット整数
bigintLong64ビット整数
varcharString or ObjectID
booleanBoolean
doubleDouble
dateDate
timestampTimestampミリ秒単位の精度
decimalDecimal(10)Decimal128
arrayArray配列タイプ
rowObject
mapObject
csv、textvarcharString or ObjectID

プレビュー結果​

プレビュー結果 をクリックすると、ソースデータをサンプリングして、書き込み結果のサンプルを3件生成します。

注意⚠️:ソースフィールドがNullの場合、書き込みプレビューではそのフィールドは表示されませんが、実際にMongoに書き込む際には、そのフィールドは "key" :null になります。

基本情報の設定​

最後に、統合プランの基本情報を設定する必要があります。プラン名、責任者、統合の同期速度、備考などが含まれます。

設定が完了したら、「保存」 ボタンをクリックして統合プランの作成を完了できます。

注:プラン名は保存後に変更できません

詳細ページの表示:

オフライン同期プランのタスクフローへのマウント​

マウントされたタスクフロー​

1.マウント手順を開始する

  • 統合プランの詳細ページで、右上の「ジョブフローにマウントする」ボタンをクリックします

2.タスクフローを選択する

  • ドロップダウンメニューから対象のタスクフローを選択します

  • タスクフローを新規作成する場合:

    • ドロップダウンメニューの下にある「タスクフローを新規作成」ショートカットボタンをクリックします
    • または「開発」モジュールで作成します
  • ヒント:対象のタスクフローが表示されない場合は、右側の↻更新ボタンをクリックしてください

3.同期ノードを作成する

  • タスクフロー内で「オフライン同期プラン」タイプのノードを新規作成します
  • このノードは現在の統合プランに関連付けられ、ノードの実行時に対応する統合プランの実行がトリガーされます

4.マウントを完了する

  • 「ノードを作成し、マウントします」をクリックして設定を完了します
  • マウントに成功したら、「タスクフローに進む」をクリックしてマウント結果をすぐに確認できます
ヒント

注:タスクフローへのマウントで作成されたタスクノードは 未リリース状態 です。タスクフローを確認し、そのノードをリリースして配信を開始することをお勧めします。

タスクフローのマウント解除​

オフライン同期プランのタスクフローへのマウントを解除する場合:

  • タスクフローがまだリリースされていない場合は、そのプランがマウントされているタスクフローに移動し、開発モード でその「オフライン同期プラン」タスクノードを削除するだけです。
  • タスクフローがすでにリリースされている場合は、開発モード でその「オフライン同期プラン」タスクノードを削除した後、タスクフローを再リリースする必要があります。これにより、本番環境 でのそのノードのマウントも同時に解除されます。
このページは役に立ちましたか?