Directiva de retención
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer
La directiva de retención controla el mecanismo que quita automáticamente los datos de las tablas o las vistas materializadas. Resulta útil quitar los datos que fluyen continuamente en una tabla y cuya relevancia se basa en la antigüedad. Por ejemplo, la directiva se puede usar para una tabla que contiene eventos de diagnóstico que pueden dejar de ser interesantes después de dos semanas.
La directiva de retención se puede configurar para una tabla específica o una vista materializada, o para toda una base de datos. A continuación, la directiva se aplica a todas las tablas de la base de datos que no la invalidan. Cuando la directiva se configura en el nivel de base de datos y tabla, la directiva de retención de la tabla tiene prioridad sobre la directiva de base de datos.
La configuración de una directiva de retención es importante al ingerir datos continuamente, lo que limitará los costos.
Los datos que están "fuera" de la directiva de retención son aptos para su eliminación. No hay ninguna garantía específica cuando se produce la eliminación. Los datos pueden "permanecer" incluso si se desencadena la directiva de retención.
La directiva de retención se establece normalmente para limitar la antigüedad de los datos desde la ingesta. Para obtener más información, vea SoftDeletePeriod.
Nota:
- El tiempo de eliminación es impreciso. El sistema garantiza que los datos no se eliminarán antes de que se supere el límite, pero la eliminación no es inmediata después de ese punto.
- Un período de eliminación temporal de 0 se puede establecer como parte de una directiva de retención de nivel de tabla, pero no como parte de una directiva de retención de nivel de base de datos.
- Cuando esto se hace, los datos ingeridos no se confirmarán en la tabla de origen, evitando la necesidad de conservar los datos. Como resultado,
Recoverability
solo se puede establecer enDisabled
. - Esta configuración es útil principalmente cuando los datos se ingieren en una tabla. Se usa una directiva de actualización transaccional para transformarla y redirigir la salida a otra tabla.
- La directiva de retención en una vista materializada afecta solo a la vista, no a la tabla de origen. Los datos de origen no se ven afectados.
El objeto de la directiva
Una directiva de retención incluye las siguientes propiedades:
- SoftDeletePeriod:
- Intervalo de tiempo para el que se garantiza que los datos se mantienen disponibles para la consulta. El período se mide a partir del momento en que se ingieren los datos.
- Tiene como valor predeterminado
1,000 years
. - Al modificar el período de eliminación temporal de una tabla o base de datos, el nuevo valor se aplica tanto a los datos existentes como a los nuevos.
- Capacidad de recuperación:
- Capacidad de recuperación de datos (habilitada o deshabilitada) después de eliminar los datos.
- Tiene como valor predeterminado
Enabled
. - Si se establece en
Enabled
, los datos se podrán recuperar durante 14 días después de eliminarlos temporalmente. - No es posible configurar el período de capacidad de recuperación.
Comandos de administración
- Use
.show policy retention
para mostrar la directiva de retención actual para una base de datos, una tabla o una vista materializada. - Use
.alter policy retention
para cambiar la directiva de retención actual de una base de datos, una tabla o una vista materializada.
Defaults
De forma predeterminada, cuando se crea una base de datos o una tabla, no tiene definida una directiva de retención. Normalmente, la base de datos se crea y, a continuación, tiene su directiva de retención establecida por su creador según los requisitos conocidos.
Cuando se ejecuta un .show
comando para la directiva de retención de una base de datos o tabla que no tiene su conjunto de directivas, Policy
aparece como null
.
La directiva de retención predeterminada, con los valores predeterminados mencionados anteriormente, se puede aplicar mediante el siguiente comando.
.alter database DatabaseName policy retention "{}"
.alter table TableName policy retention "{}"
.alter materialized-view ViewName policy retention "{}"
El comando da como resultado el siguiente objeto de directiva aplicado a la base de datos o tabla.
{
"SoftDeletePeriod": "365000.00:00:00", "Recoverability":"Enabled"
}
La eliminación de la directiva de retención de una base de datos o tabla se puede realizar mediante el siguiente comando.
.delete database DatabaseName policy retention
.delete table TableName policy retention
Ejemplos
Para un entorno que tenga una base de datos denominada MyDatabase
, con tablas MyTable1
, MyTable2
y MySpecialTable
.
Período de eliminación temporal de siete días y capacidad de recuperación deshabilitada
Establezca todas las tablas de la base de datos para que tengan un período de eliminación temporal de siete días y una capacidad de recuperación deshabilitada.
Opción 1 (recomendado): establezca una directiva de retención de nivel de base de datos y compruebe que no hay ninguna directiva de nivel de tabla establecida.
.delete table MyTable1 policy retention // optional, only if the table previously had its policy set .delete table MyTable2 policy retention // optional, only if the table previously had its policy set .delete table MySpecialTable policy retention // optional, only if the table previously had its policy set .alter-merge database MyDatabase policy retention softdelete = 7d recoverability = disabled .alter-merge materialized-view ViewName policy retention softdelete = 7d
Opción 2: Para cada tabla, establezca una directiva de retención de nivel de tabla, con un período de eliminación temporal de siete días y capacidad de recuperación deshabilitada.
.alter-merge table MyTable1 policy retention softdelete = 7d recoverability = disabled .alter-merge table MyTable2 policy retention softdelete = 7d recoverability = disabled .alter-merge table MySpecialTable policy retention softdelete = 7d recoverability = disabled
Período de eliminación temporal de siete días y capacidad de recuperación habilitado
Establezca tablas
MyTable1
yMyTable2
para tener un período de eliminación temporal de siete días y se deshabilite la capacidad de recuperación.Establézcalo
MySpecialTable
en tener habilitado un período de eliminación temporal de 14 días y capacidad de recuperación.Opción 1 (recomendado): establezca una directiva de retención de nivel de base de datos y establezca una directiva de retención de nivel de tabla.
.delete table MyTable1 policy retention // optional, only if the table previously had its policy set .delete table MyTable2 policy retention // optional, only if the table previously had its policy set .alter-merge database MyDatabase policy retention softdelete = 7d recoverability = disabled .alter-merge table MySpecialTable policy retention softdelete = 14d recoverability = enabled
Opción 2: Para cada tabla, establezca una directiva de retención de nivel de tabla, con el período de eliminación temporal y la capacidad de recuperación pertinentes.
.alter-merge table MyTable1 policy retention softdelete = 7d recoverability = disabled .alter-merge table MyTable2 policy retention softdelete = 7d recoverability = disabled .alter-merge table MySpecialTable policy retention softdelete = 14d recoverability = enabled
Período de eliminación temporal de siete días y MySpecialTable
mantiene sus datos indefinidamente
Establezca tablas MyTable1
y MyTable2
para tener un período de eliminación temporal de siete días y mantenga MySpecialTable
sus datos indefinidamente.
Opción 1: establecer una directiva de retención de nivel de base de datos y establecer una directiva de retención de nivel de tabla, con un período de eliminación temporal de 1000 años, la directiva de retención predeterminada, para
MySpecialTable
..delete table MyTable1 policy retention // optional, only if the table previously had its policy set .delete table MyTable2 policy retention // optional, only if the table previously had its policy set .alter-merge database MyDatabase policy retention softdelete = 7d .alter table MySpecialTable policy retention "{}" // this sets the default retention policy
Opción 2: Para las tablas
MyTable1
yMyTable2
, establezca una directiva de retención de nivel de tabla y compruebe que la directiva de nivel de base de datos y de nivel de tabla paraMySpecialTable
no están establecidas..delete database MyDatabase policy retention // optional, only if the database previously had its policy set .delete table MySpecialTable policy retention // optional, only if the table previously had its policy set .alter-merge table MyTable1 policy retention softdelete = 7d .alter-merge table MyTable2 policy retention softdelete = 7d
Opción 3: Para las tablas
MyTable1
yMyTable2
, establezca una directiva de retención de nivel de tabla. Para la tablaMySpecialTable
, establezca una directiva de retención de nivel de tabla con un período de eliminación temporal de 1000 años, la directiva de retención predeterminada..alter-merge table MyTable1 policy retention softdelete = 7d .alter-merge table MyTable2 policy retention softdelete = 7d .alter table MySpecialTable policy retention "{}"