クライアントから Atlas への一方向へのデータのストリーミング
項目一覧
MongoDB Atlas にストリーミングしたい大量のデータを生成するモバイルまたはクライアント アプリケーションがある場合は、Device Sync を使用してデータを一方向に同期できます。 この一方向同期を可能にする機能をData Ingestと呼びます。
クラウドにデータを送信する気象センサーなど、IoT アプリケーションでデータを一方向に同期したい場合があります。 Data Ingest は、小売アプリからの請求書作成や、アプリケーション イベントのログ記録など、競合の解決を必要としない他のタイプの不変データを書き込む場合にも役立ちます。
Data Ingest は、クライアント側の挿入専用ワークロードのパフォーマンスを向上させるために最適化されています。 このデータは、ストリーミングしている Realm から読み取ることはできません。
現在、Data Ingest は次の Realm SDK でのみ使用できます。
C++ SDK
.NET SDK
Kotlin SDK
Node.js SDK
React Native SDK
Swift SDK
開始するには、次の高レベルの手順に従います。
Atlasアクセスの設定
Atlas App Services アプリの作成
App Services アプリケーションは、クライアント デバイスが MongoDB Atlas に接続できるようにするゲートウェイです。 アプリを作成するときは、名前を付け、Atlas クラスターにリンクし、アプリケーションに最適な配置モデルと配置リージョンを指定します。
App Services Appの作成方法については、「 アプリの作成 」を参照してください。
Device Sync と Data Ingest の設定
Device Sync は、Atlas とクライアント デバイス間でデータを同期するサービスです。 Device Sync は、Realm SDK と合わせて、ネットワーク接続、ユーザー権限、競合の解決を自動的に管理します。 App Services Appは、 Device SyncとRealm SDK がデータを保護するために活用する組み込みのユーザー認証を提供します。
Device Sync を構成するときは、クライアント デバイスがアクセスできるデータソースと、ユーザーが書込みできるデータを決定する権限を指定します。
Device Sync は、 Atlas UI、Atlas App Services コマンドラインインターフェイス、または App Services Admin API経由で構成できます。 Device Sync を初めて構成するときに、Atlas UI を使用すると便利な場合があります。これには、さまざまな設定やオプションに関するリンクと情報が提供されるためです。
1 つ以上のコレクションに対して Data Ingest を有効にするには、Device Sync 構成の Advanced Configurationセクションでコレクションを選択します。 このドロップダウンで選択できるのは、 Atlas App Services スキーマを持つコレクションのみです。
一方向に同期するコレクションのスキーマをまだ作成していない場合は、次のいずれかを実行できます。
Realm オブジェクトモデルから App Services スキーマを生成します。 「Realm オブジェクトモデルから App Services スキーマを作成する」を参照してください。
App Services スキーマを手動で作成します。 詳細については、「 スキーマの定義と強制 」を参照してください。
認証プロバイダを有効にする
同期されたデータにアクセスするには、クライアント デバイスが認証される必要があります。 App Services は、ユーザーが認証できるようにするためのメール/パスワードや匿名認証などのいくつかの認証プロバイダを提供します。 クライアント アプリケーションで認証を有効にするには、これらの認証プロバイダの 1 つ以上を構成します。
App Services App UI 内で認証プロバイダを設定するには、左側のナビゲーション メニューで [ Authentication ] を選択し、そのプロバイダーをクリックして構成します。 また、 Atlas App Services コマンドライン インターフェースまたは App Services Admin API を使用して App Services 構成を編集し、認証プロバイダを設定することもできます。
クライアント アプリケーションへの同期の追加
これにより、Atlas 側で必要なすべてのセットアップが完了し、クライアント アプリケーションでデータを一方向に同期する準備ができます。
非対称オブジェクトの作成とデータの書込み
Realm SDK は、Data Ingest で使用する特殊なタイプのオブジェクト(非対称オブジェクト)を提供します。 非対称オブジェクトの定義方法の詳細については、Realm SDK ドキュメントを参照してください。
非対称オブジェクトを作成して同期された Realm に書込み、Realm SDK は Device Sync を使用してデータを自動的にストリーミングするプロセスを管理します。 デバイスがネットワークに接続している場合、SDK は App Services バックエンドと Atlas にデータをストリーミングします。 デバイスにネットワーク接続がない場合、データはデバイス上に保持され、ネットワーク接続が復元されたときに自動的にアップロードされます。
Atlas Device Sync は、このデータのライフサイクルを完全に管理します。 Data Ingest 同期が完了するまでデバイス上に保持され、その後デバイスから削除されます。