Introducción a la exportación de datos continua
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer
En este artículo se describe la exportación continua de datos de Kusto a una tabla externa con una consulta ejecutada periódicamente. Los resultados se almacenan en la tabla externa, que define el destino, como Azure Blob Storage, y el esquema de los datos exportados. Este proceso garantiza que todos los registros se exportan "exactamente una vez", con algunas excepciones.
De forma predeterminada, la exportación continua se ejecuta en modo distribuido, donde todos los nodos se exportan simultáneamente, por lo que el número de artefactos depende del número de nodos. La exportación continua no está diseñada para datos de streaming de baja latencia.
Para habilitar la exportación continua de datos, cree una tabla externa y, a continuación, cree una definición de exportación continua que apunte a la tabla externa.
En algunos casos, debe usar una identidad administrada para configurar correctamente un trabajo de exportación continua. Para obtener más información, consulte Uso de una identidad administrada para ejecutar un trabajo de exportación continua.
Permisos
Todos los comandos de exportación continua requieren al menos permisos de administrador de base de datos.
Directrices de exportación continua
Esquema de salida:
- El esquema de salida de la consulta de exportación debe coincidir con el esquema de la tabla externa a la que se exporta.
Frecuencia:
La exportación continua se ejecuta según el período de tiempo configurado para ella en la
intervalBetweenRuns
propiedad . El valor recomendado para este intervalo es al menos varios minutos, en función de las latencias que esté dispuesto a aceptar. El intervalo de tiempo puede ser tan bajo como un minuto, si la tasa de ingesta es alta.Nota:
intervalBetweenRuns
sirve solo como recomendación y no se garantiza que sea preciso. La exportación continua no es adecuada para exportar agregaciones periódicas. Por ejemplo, una configuración deintervalBetweenRuns
=1h
con una agregación por hora (T | summarize by bin(Timestamp, 1h)
) no funcionará según lo previsto, ya que la exportación continua no se ejecutará exactamente en la hora. Por lo tanto, cada intervalo por hora recibirá varias entradas en los datos exportados.
Número de archivos:
- El número de archivos exportados en cada iteración de exportación continua depende de cómo se particione la tabla externa. Para obtener más información, consulte exportación al comando de tabla externa. Cada iteración de exportación continua siempre escribe en nuevos archivos y nunca se anexa a las existentes. Como resultado, el número de archivos exportados también depende de la frecuencia en la que se ejecuta la exportación continua. El parámetro frequency es
intervalBetweenRuns
.
- El número de archivos exportados en cada iteración de exportación continua depende de cómo se particione la tabla externa. Para obtener más información, consulte exportación al comando de tabla externa. Cada iteración de exportación continua siempre escribe en nuevos archivos y nunca se anexa a las existentes. Como resultado, el número de archivos exportados también depende de la frecuencia en la que se ejecuta la exportación continua. El parámetro frequency es
Cuentas de almacenamiento de tablas externas:
- Para obtener el mejor rendimiento, la base de datos y las cuentas de almacenamiento deben colocarse en la misma región de Azure.
- La exportación continua funciona de forma distribuida, de modo que todos los nodos se exportan simultáneamente. En bases de datos de gran tamaño y si el volumen de datos exportado es grande, esto podría dar lugar a la limitación del almacenamiento. Se recomienda configurar varias cuentas de almacenamiento para la tabla externa. Consulte errores de almacenamiento durante los comandos de exportación para obtener más detalles.
Exportación exactamente una vez
Para garantizar la exportación "exactamente una vez", la exportación continua usa cursores de base de datos. La consulta de exportación continua no debe incluir un filtro de marca de tiempo: el mecanismo de cursores de base de datos garantiza que los registros no se procesen más de una vez. Agregar un filtro de marca de tiempo en la consulta puede provocar que falten datos en los datos exportados.
La directiva IngestionTime debe estar habilitada en todas las tablas a las que se hace referencia en la consulta que se debe procesar "exactamente una vez" en la exportación. La directiva está habilitada de forma predeterminada en todas las tablas recién creadas.
La garantía de exportación "exactamente una vez" solo es para los archivos notificados en el comando mostrar artefactos exportados. La exportación continua no garantiza que cada registro se escriba solo una vez en la tabla externa. Si se produce un error después de que se haya iniciado la exportación y algunos de los artefactos ya se hayan escrito en la tabla externa, la tabla externa podría contener duplicados. Si se anuló una operación de escritura antes de la finalización, la tabla externa podría contener archivos dañados. En tales casos, los artefactos no se eliminan de la tabla externa, pero no se notificarán en el comando mostrar artefactos exportados. Consumir los archivos exportados mediante las show exported artifacts command
garantías no duplicaciones ni daños.
Exportación de tablas de hechos y dimensiones
De forma predeterminada, se supone que todas las tablas a las que se hace referencia en la consulta de exportación son tablas de hechos. Por lo tanto, se limitan al cursor de base de datos. La sintaxis declara explícitamente qué tablas tienen ámbito (hecho) y cuáles no tienen ámbito (dimensión). Consulte el over
parámetro en el comando create para obtener más información.
La consulta de exportación incluye solo los registros que se han unido desde la ejecución de exportación anterior. La consulta de exportación puede contener tablas de dimensiones en las que todos los registros de la tabla de dimensiones se incluyen en todas las consultas de exportación. Al usar combinaciones entre tablas de hechos y dimensiones en la exportación continua, tenga en cuenta que los registros de la tabla de hechos solo se procesan una vez. Si la exportación se ejecuta mientras faltan registros en las tablas de dimensiones para algunas claves, los registros de las claves respectivas se perderán o incluirán valores NULL para las columnas de dimensión de los archivos exportados. La devolución de registros que faltan o null depende de si la consulta usa combinación interna o externa. La forcedLatency
propiedad de la definición de exportación continua puede ser útil en tales casos, donde las tablas de hechos y dimensiones se ingieren durante el mismo tiempo para los registros coincidentes.
Nota:
No se admite la exportación continua de solo tablas de dimensiones. La consulta de exportación debe incluir al menos una sola tabla de hechos.
Supervisión de la exportación continua
Supervise el estado de los trabajos de exportación continua mediante las siguientes métricas de exportación:
Continuous export max lateness
- Latencia máxima (en minutos) de exportaciones continuas en databsae. Este es el tiempo entre ahora y el tiempo mínimoExportedTo
de todos los trabajos de exportación continua en la base de datos. Para obtener más información, consulte.show continuous export
el comando .Continuous export result
- Resultado correcto o erróneo de cada ejecución de exportación continua. Esta métrica se puede dividir por el nombre de exportación continua.
Use el .show continuous export failures
comando para ver los errores específicos de un trabajo de exportación continua.
Advertencia
Si se produce un error en una exportación continua durante más de 7 días debido a un error permanente, el sistema deshabilitará automáticamente la exportación.
Entre los errores permanentes se incluyen: no se encuentra la tabla externa, la falta de coincidencia entre el esquema de consulta de exportación continua y el esquema de tabla externo, no se puede acceder a la cuenta de almacenamiento.
Una vez corregido el error, puede volver a habilitar la exportación continua mediante el .enable continuous export
comando .
Consumo de recursos
- El impacto de la exportación continua en la base de datos depende de la consulta en la que se ejecuta la exportación continua. La mayoría de los recursos, como la CPU y la memoria, se consumen en la ejecución de la consulta.
- El número de operaciones de exportación que se pueden ejecutar simultáneamente está limitado por la capacidad de exportación de datos de la base de datos. Para obtener más información, consulte Limitación de comandos de administración. Si la base de datos no tiene capacidad suficiente para controlar todas las exportaciones continuas, algunas comenzarán a estar retrasadas.
- El comando show commands-and-queries se puede usar para calcular el consumo de recursos.
- Filtre por
| where ClientActivityId startswith "RunContinuousExports"
para ver los comandos y consultas asociados a la exportación continua.
- Filtre por
Exportación de datos históricos
La exportación continua comienza a exportar datos solo desde el punto de su creación. Los registros ingeridos antes de ese tiempo se deben exportar por separado mediante el comando de exportación no continua. Los datos históricos pueden ser demasiado grandes para exportarse en un único comando de exportación. Si es necesario, particione la consulta en varios lotes más pequeños.
Para evitar duplicados con datos exportados por exportación continua, use StartCursor
devuelto por el comando show continuous export y exporte solo registra where cursor_before_or_at
el valor del cursor. Por ejemplo:
.show continuous-export MyExport | project StartCursor
StartCursor |
---|
636751928823156645 |
Seguido de:
.export async to table ExternalBlob
<| T | where cursor_before_or_at("636751928823156645")
Exportación continua desde una tabla con seguridad de nivel de fila
Para crear un trabajo de exportación continua con una consulta que haga referencia a una tabla con la directiva seguridad de nivel de fila, debe:
- Proporcione una identidad administrada como parte de la configuración de exportación continua. Para obtener más información, consulte Uso de una identidad administrada para ejecutar un trabajo de exportación continua.
- Use la autenticación de suplantación para la tabla externa a la que se exportan los datos.
Exportación continua a tabla delta: versión preliminar
La exportación continua a una tabla delta está actualmente en versión preliminar.
Importante
La creación de particiones de tablas delta no se admite en la exportación continua de datos.
Kusto no escribirá en tablas delta existentes si la versión del escritor de protocolo delta es superior a 1.
Para definir la exportación continua a una tabla delta, siga estos pasos:
Cree una tabla delta externa, como se describe en Creación y modificación de tablas externas delta en Azure Storage.
Nota:
Si no se proporciona el esquema, Kusto intentará deducirlo automáticamente si ya hay una tabla delta definida en el contenedor de almacenamiento de destino.
No se admite la creación de particiones de tablas delta.Defina la exportación continua a esta tabla mediante los comandos descritos en Crear o modificar la exportación continua.
Importante
El esquema de la tabla delta debe estar sincronizado con la consulta de exportación continua. Si cambia la tabla delta subyacente, es posible que la exportación empiece a producir un error con un comportamiento inesperado.
Limitaciones
General:
- Se permiten los siguientes formatos en las tablas de destino:
CSV
,TSV
,JSON
yParquet
. - La exportación continua no está diseñada para funcionar con vistas materializadas, ya que se puede actualizar una vista materializada, mientras que los datos exportados al almacenamiento siempre se anexan y nunca se actualizan.
- La exportación continua no se puede crear en bases de datos de seguidor, ya que las bases de datos de seguidor son de solo lectura y la exportación continua requiere operaciones de escritura.
- Los registros de la tabla de origen deben ingerirse directamente en la tabla, mediante una directiva de actualización o la ingesta de comandos de consulta. Si los registros se mueven a la tabla mediante extensiones .move o mediante .rename table, es posible que la exportación continua no procese estos registros. Consulte las limitaciones descritas en la página Cursores de base de datos.
- Si los artefactos usados por la exportación continua están diseñados para desencadenar notificaciones de Event Grid, consulte la sección problemas conocidos de la documentación de Event Grid.
Entre bases de datos y entre clústeres:
- La exportación continua no admite llamadas entre clústeres.
- La exportación continua solo admite llamadas entre bases de datos para tablas de dimensiones. Todas las tablas de hechos deben residir en la base de datos local. Consulte más detalles en Exportación de tablas de hechos y dimensiones.
- Si la exportación continua incluye llamadas entre bases de datos, debe configurarse con una identidad administrada.
Entre bases de datos y cross-Eventhouse:
- La exportación continua no admite llamadas entre centros de eventos.
- La exportación continua solo admite llamadas entre bases de datos para tablas de dimensiones. Todas las tablas de hechos deben residir en la base de datos local. Consulte más detalles en Exportación de tablas de hechos y dimensiones.
Directivas:
- La exportación continua no se puede habilitar en una tabla con la directiva seguridad de nivel de fila a menos que se cumplan condiciones específicas. Para obtener más información, consulte Exportación continua desde una tabla con seguridad de nivel de fila.
- La exportación continua no se puede configurar en una tabla con una directiva de acceso a vistas restringidas.
Contenido relacionado
- Crear o modificar la exportación continua :::moniker-range="azure-data-explorer"
- Uso de una identidad administrada para ejecutar un trabajo de exportación continua :::monker-end