MongoDBデータソースの設定
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)をドロップダウンから選択できます
|
| *書き込みモード |
|
前置ステートメント | 役割:MongoDBにデータを書き込む前に、MongoDB内の既存データに対して実行する前処理です 入力する前置ステートメントは、JSON構文の要件を満たしている必要があります。 前置条件(PreSQL)の設定には、
|
| 高度な構成 | バッチ件数:1バッチでMongoDBに書き込むデータ量 |
| バッチ書き込みインターバル:メモリバッファ内のデータをMongoDBにフラッシュ(Flush)する最大時間間隔。単位はミリ秒(ms) |
パラメータ名の前に * が付いているものは必須パラメータ、* が付いていないものは任意パラメータです。
フィールド照合の説明
データソースとターゲット側の設定が完了したら、フィールド照合関係を作成する必要があります。システムは照合関係に従って、ソース側フィールドのデータに基づき、ターゲットcollectionのフィールドを自動作成します。
- 解析に成功したら、「同名照合を生成」をクリックし、ソーステーブルのデータタイプに基づいてMongo Documentの構造を生成します
- 書き込むDocumentのフィールド名とフィールドのデータタイプは、ユーザーが再編集できます。
1つの目標フィールドに対応できるソースフィールドは1つだけであることに注意してください
フィールドタイプの照合方法(空間テーブル —— Mongo):
| ソースファイルタイプ | 空間テーブル | MongoDB BSONタイプ | 説明 |
|---|---|---|---|
orc、parquet | tinyint | Int | |
| smallint | Int | ||
| integer | Int | 32ビット整数 | |
| bigint | Long | 64ビット整数 | |
| varchar | String or ObjectID | ||
| boolean | Boolean | ||
| double | Double | ||
| date | Date | ||
| timestamp | Timestamp | ミリ秒単位の精度 | |
| decimal | Decimal(10) | Decimal128 | |
| array | Array | 配列タイプ | |
| row | Object | ||
| map | Object | ||
| csv、text | varchar | String or ObjectID |
プレビュー結果
プレビュー結果 をクリックすると、ソースデータをサンプリングして、書き込み結果のサンプルを3件生成します。
注意⚠️:ソースフィールドがNullの場合、書き込みプレビューではそのフィールドは表示されませんが、実際にMongoに書き込む際には、そのフィールドは "key" :null になります。
基本情報の設定
最後に、統合プランの基本情報を設定する必要があります。プラン名、責任者、統合の同期速度、備考などが含まれます。
設定が完了したら、「保存」 ボタンをクリックして統合プランの作成を完了できます。
注:プラン名は保存後に変更できません
詳細ページの表示:
オフライン同期プランのタスクフローへのマウント
マウントされたタスクフロー
1.マウント手順を開始する
- 統合プランの詳細ページで、右上の「ジョブフローにマウントする」ボタンをクリックします
2.タスクフローを選択する
-
ドロップダウンメニューから対象のタスクフローを選択します
-
タスクフローを新規作成する場合:
- ドロップダウンメニューの下にある「タスクフローを新規作成」ショートカットボタンをクリックします
- または「開発」モジュールで作成します
-
ヒント:対象のタスクフローが表示されない場合は、右側の↻更新ボタンをクリックしてください
3.同期ノードを作成する
- タスクフロー内で「オフライン同期プラン」タイプのノードを新規作成します
- このノードは現在の統合プランに関連付けられ、ノードの実行時に対応する統合プランの実行がトリガーされます
4.マウントを完了する
- 「ノードを作成し、マウントします」をクリックして設定を完了します
- マウントに成功したら、「タスクフローに進む」をクリックしてマウント結果をすぐに確認できます
注:タスクフローへのマウントで作成されたタスクノードは 未リリース状態 です。タスクフローを確認し、そのノードをリリースして配信を開始することをお勧めします。
タスクフローのマウント解除
オフライン同期プランのタスクフローへのマウントを解除する場合:
- タスクフローがまだリリースされていない場合は、そのプランがマウントされているタスクフローに移動し、開発モード でその「オフライン同期プラン」タスクノードを削除するだけです。
- タスクフローがすでにリリースされている場合は、開発モード でその「オフライン同期プラン」タスクノードを削除した後、タスクフローを再リリースする必要があります。これにより、本番環境 でのそのノードのマウントも同時に解除されます。

