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
Utilizzare politiche di resiliency con Azure Container App
Configurare dependabot per aggiornare le dipendenze di terze parti con GitHub Actions
Usare le navigation property in QuickGrid di Blazor
Le novità di Angular: i miglioramenti alla CLI
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Cambiare la chiave di partizionamento di Azure Cosmos DB
Creazione di plugin per Tailwind CSS: espandere le funzionalità del framework dinamicamente
Migliorare la sicurezza dei prompt con Azure AI Studio
Creare un webhook in Azure DevOps
Usare una container image come runner di GitHub Actions
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Testare l'invio dei messaggi con Event Hubs Data Explorer