Cosmos Db è il database documentale (e non solo) per eccellenza della piattaforma di Microsoft Azure. Ha incredibili prestazioni, affidabilità, replica geo distribuita ed è possibile usarlo tramite REST o driver MongoDB.
Si possono presentare situazioni in cui ci troviamo a dover spostare un container (ex collection) in un altro database, oppure vogliamo clonare l'intero database per poter effettuare delle prove di debug o dei test di pre produzione con dati reali. In queste situazioni, in virtù delle norme sulla privacy vigenti in Europa (GDPR) è opportuno usare pratiche che ci permettano di usare questi dati in sicurezza e nel rispetto della normativa. Si rende quindi necessario renderli anonimi, almeno nelle parti considerate personali nel momento in cui le portiamo su un altro database accessibile potenzialmente da più persone che non hanno in gestione i dati.
CosmicClone è uno strumento che possiamo trovare su https://github.com/Microsoft/CosmicClone e permette di clonare un container verso un altro. Possiamo scaricare la release oppure compilare autonomamente la sorgente. Avviandolo ci vengono chieste le coordinate di sorgente e destinazione.
E' sufficiente avere una chiave di lettura e di scrittura per i rispettivi database. Purtroppo, non è supportata la scrittura su database di tipologia diversa. Successivamente ci viene chiesto quali oggetti clonare: molto probabilmente tutti.
Lo step che precede l'avvio della copia è il più importante. Possiamo specificare una o più regole volte a rendere anonimi i dati. Indichiamo il percorso JSON al campo di nostro interesse, impostiamo un eventuale filtro e indichiamo come rendere anonimi i dati: impostiamo a null, valore fisso oppure randomico.
Queste regole possono essere salvate e ricaricate per eventuali successive copie. Non ci resta che avviare la procedura la quale terminerà in base agli RU del database sorgenti e del database destinatario, oltre che alla banda internet disponibile all'applicativo.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eseguire una GroupBy per entity in Entity Framework
3 metodi JavaScript che ogni applicazione web dovrebbe contenere - Parte 2
Eseguire attività con Azure Container Jobs
Specificare il versioning nel path degli URL in ASP.NET Web API
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Utilizzare la libreria Benchmark.NET per misurare le performance
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management
What's new in Azure Functions and Extensions
Miglioramenti nell'accessibilità con Angular CDK
Creare gruppi di client per Event Grid MQTT
Migrate and Modernize your .NET Applications on Azure
Reactive form tipizzati con FormBuilder in Angular