단방향 데이터 수집 - .NET SDK
이 페이지의 내용
버전 10.17.0의 새로운 기능
데이터 수집 을 사용하여 클라이언트 애플리케이션 에서 Flexible Sync 지원 Atlas App Services 앱으로 데이터를 스트림 할 수 있습니다.
날씨 센서가 데이터를 cloud로 전송하는 등 IoT 애플리케이션에서는 데이터를 단방향으로 동기화할 수 있습니다. 데이터 수집은 소매 앱에서 청구서를 생성하거나 애플리케이션 이벤트를 기록하는 등 충돌 해결이 필요하지 않은 다른 유형의 불변 데이터를 작성하는 데에도 유용합니다.
데이터 수집은 과중한 클라이언트 사이드 삽입 전용 워크로드의 성능 향상을 제공하도록 최적화되었습니다.
중요
클라이언트 앱에서 비대칭 객체를 쿼리, 수정 또는 삭제할 수 없습니다. 클라이언트는 AsymmetricObject를 수정할 수 없으므로 컴파일러에서는 AsymmetricObject에 대한 구독을 추가할 수 없습니다.
.NET SDK를 사용하면 동일한 Realm 내에서 비대칭 객체와 표준 Realm 객체로 작업할 수 있습니다.
클라이언트 애플리케이션에서 단방향으로 데이터 동기화
버전 11.6.0에서 변경되었습니다.
데이터 수집을 설정하기 전에 다음 규칙을 이해해야 합니다.
Atlas와 동기화할 C# 객체는 IAsymmetricObject 인터페이스를 구현하거나 AsymmetricObject 클래스에서 파생되어야 합니다.
.NET SDK 버전 11.6.0 이상부터
IAsymmetricObject
를 구현하는 객체에는 IEmbeddedObject 유형과IRealmObject
유형에 대한 링크가 포함될 수 있습니다. .NET SDK 버전 11.5.0IAsymmetricObject
를 구현하는 객체는 IEmbeddedObject 유형만 포함할 수 있으며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는 이 데이터의 수명 주기를 완벽하게 관리합니다. 데이터 수집 동기화가 완료될 때까지 유지된 후 기기에서 제거됩니다.