単方向のデータ取り込み - .NET SDK
バージョン 10.17.0 の新機能。
Data Ingestを使用して、クライアント アプリケーションから Flexible Sync が有効化されている Atlas App Services アプリにデータをストリーミングできます。
クラウドにデータを送信する気象センサーなど、IoT アプリケーションでデータを一方向に同期したい場合があります。 Data Ingest は、小売アプリからの請求書作成や、アプリケーション イベントのログ記録など、競合の解決を必要としない他のタイプの不変データを書き込む場合にも役立ちます。
Data Ingest は、クライアント側の挿入専用ワークロードのパフォーマンスを向上させるために最適化されています。
重要
クライアント アプリから非対称オブジェクトをクエリ、変更、または削除することはできません。 AsyncMongoDB はクライアントによって変更できないため、コンパイラーは AmetricObject にサブスクリプションを追加できません。
.NET SDK を使用すると、同じ Realm 内で非対称オブジェクトと標準 Realm オブジェクトを操作できます。
クライアント アプリケーションから一方向にデータを同期
バージョン 11.6.0 で変更。
Data Ingest を設定する前に、次のルールを理解する必要があります。
.NET SDK バージョン11.6.0以降では、
IAsymmetricObject
を実装するオブジェクトにI埋め込みオブジェクト型を含めることができ、IRealmObject
型にリンクします。 .NET SDK バージョンでは11が含まれます。 5 。 0 以前では、IAsymmetricObject
を実装するオブジェクトにはI埋め込みオブジェクト型のみを含めることができます。IRealmObject
型または他のIAsymmetricObject
型へのリンクはサポートされていません。IRealmObject
およびIEmbeddedObject
型には、プロパティとしてIAsymmetricObject
型を含めることはできません。一方向同期にはFlexible Sync が必要です。
データを非対称同期するプロセスは、上記のルールに従っている限り、標準の 双方向同期と同じです。 次のコードは、非対称オブジェクトを作成し、それをバックエンドと同期する方法を示しています。 また、 がエラーを生成することも示します。
private partial class Measurement : IAsymmetricObject { [ ] public Guid Id { get; private set; } = Guid.NewGuid(); public double Value { get; set; } public DateTimeOffset Timestamp { get; private set; } = DateTimeOffset.UtcNow; } public void SendMeasurementToRealm() { var measurement = new Measurement { Value = 9.876 }; realm.Write(() => { realm.Add(measurement); }); // The following line will cause a compile time error // _ = realm.All<Measurement>(); // The following line will compile but throw a // Realms.Exceptions.RealmInvalidObjectException at runtime // _ = measurement.Value; }
Atlas Device Sync は、このデータのライフサイクルを完全に管理します。 Data Ingest 同期が完了するまでデバイス上に保持され、その後デバイスから削除されます。