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
Introduzione al nuovo tipo TimeOnly di .NET
Produrre un inventario automatico di Azure Storage
Creare un'istanza di Azure SQL Database tramite ARM
Monitorare metriche delle risorse Azure con Load Testing
Impostare il forward degli header in un sito ASP.NET Core dietro a un reverse proxy
Utilizzare i WebSocket con Azure API Management
Leggere il valore di un header della richiesta in ASP.NET Core 6
Utilizzare le Promise in Javascript - seconda parte
Installazione di una PWA Blazor
Utilizzare parametri a livello di controller nel routing di ASP.NET Core
Fare automaticamente il merge di una pull request con un workflow di GitHub
Utilizzare azurite come simulatore di Azure Storage
I più letti di oggi
- Richiamare un web service ASP.NET da una pagina ASP
- Tutorial ASP.NET
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Future Decoded - Roma
- Proteggersi dagli attacchi di Open Redirect in ASP.NET Core MVC
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!