Share via


Introducción a la exportación de datos continua

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 del clúster. La exportación continua no está diseñada para datos de streaming de baja latencia fuera del clúster.

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 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 Administración 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 exporta.
  • Frecuencia:

    • La exportación continua se ejecuta según el período de tiempo configurado para él 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 actúa 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 de intervalBetweenRuns=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, vea Exportar 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.
  • Cuentas de almacenamiento de tablas externas:

    • Para obtener el mejor rendimiento, el clúster 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 del clúster se exportan simultáneamente. En clústeres grandes y, si el volumen de datos exportado es grande, esto podría provocar una limitación de 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" es solo 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 con las show exported artifacts command garantías de no duplicaciones y sin daños.

Exportación desde 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 la base de datos. La sintaxis declara explícitamente qué tablas tienen ámbito (hechos) 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 combinaciones internas o externas. 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 - Retraso máximo (en minutos) de exportaciones continuas en el clúster. Este es el tiempo entre ahora y el tiempo mínimo ExportedTo de todos los trabajos de exportación continua en el clúster. 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: tabla externa no encontrada, discrepancia 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 el clúster depende de la consulta en la que se ejecuta la exportación continua. La ejecución de la consulta consume la mayoría de los recursos, como la CPU y la memoria.
  • El número de operaciones de exportación que se pueden ejecutar simultáneamente está limitado por la capacidad de exportación de datos del clúster. Para obtener más información, consulte Limitación de comandos de administración. Si el clúster no tiene capacidad suficiente para controlar todas las exportaciones continuas, algunos 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 las consultas asociadas a la exportación continua.

Exportación de datos históricos

La exportación continua comienza a exportar datos solo desde el punto de 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, divida la consulta en varios lotes más pequeños.

Para evitar duplicados con datos exportados por exportación continua, use StartCursor 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 de seguridad de nivel de fila, debe hacer lo siguiente:

Exportación continua a tabla delta: versión preliminar

La exportación continua a una tabla delta se encuentra actualmente en versión preliminar.

Importante

La creación de particiones de tabla 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 protocolos delta es superior a 1.

Para definir la exportación continua a una tabla delta, siga estos pasos:

  1. 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 tabla delta.

  2. 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 comience a producir un error con un comportamiento inesperado.

Limitaciones

General:

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. Vea 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.

Directivas: