Integración de Azure Data Explorer con Azure Data Factory

Azure Data Factory (ADF) es un servicio de integración de datos basado en la nube que le permite integrar diferentes almacenes de datos y realizar actividades en los datos. ADF le permite crear flujos trabajo controlados por datos y así orquestar y automatizar el movimiento y la transformación de los datos. Azure Data Explorer es uno de los almacenes de datos admitidos en Azure Data Factory.

Actividades de Azure Data Factory para Azure Data Explorer

Varias integraciones disponibles con Azure Data Factory para los usuarios de Azure Data Explorer:

Actividad de copia

La actividad de copia de Azure Data Factory se usa para transferir datos entre almacenes de datos. Azure Data Explorer se admite como origen, donde los datos se copian desde Azure Data Explorer a cualquier almacén de datos compatible y un receptor, donde se copian los datos desde cualquier almacén de datos compatible con Azure Data Explorer. Para más información, consulte copia de datos con Azure Data Explorer como origen o destino mediante Azure Data Factory. Para ver un tutorial detallado, consulte Carga de datos de Azure Data Factory en Azure Data Explorer. Azure Data Explorer es compatible con Azure IR (Integration Runtime), se usa cuando se copian datos en Azure y se hospedan en modo IR autohospedado, que se usa cuando se copian datos desde o hacia almacenes de datos ubicados en un entorno local o en una red con control de acceso, como un Virtual Network de Azure. Para obtener más información, consulte qué IR se va a usar.

Sugerencia

Al utilizar la actividad de copia y crear un servicio vinculado o un conjunto de datos, seleccione el almacén de datos Azure Data Explorer (Kusto) y no el antiguo almacén de datos Kusto.

Actividad de búsqueda

La actividad de búsqueda se usa para ejecutar consultas en Azure Data Explorer. El resultado de la consulta se devolverá como la salida de la actividad de búsqueda y se puede usar en la siguiente actividad de canalización, tal y como se describe en la documentación de búsqueda de ADF.

Además del límite de tamaño de respuesta de 5.000 filas y 2 MB, la actividad también tiene un límite de tiempo de espera de consulta de 1 hora.

Actividad de comando

La actividad Command permite la ejecución de comandos de administración de Azure Data Explorer. A diferencia de las consultas, los comandos de administración pueden modificar datos o metadatos. Algunos de los comandos de administración están destinados a ingerir datos en Azure Data Explorer, mediante comandos como .ingesto ) o .set-or-appendcopiar datos de Azure Data Explorer en almacenes de datos externos mediante comandos como .export. Para obtener un tutorial detallado de la actividad de comandos, consulte Uso de Azure Data Factory actividad de comandos para ejecutar comandos de administración de Azure Data Explorer. El uso de un comando de administración para copiar datos puede, en ocasiones, ser una opción más rápida y económica que la actividad de copia. Para determinar cuándo se debe utilizar la actividad de comando en lugar de la actividad de copia, consulte seleccionar entre las actividades de copia y comando al copiar datos.

Copiar de forma masiva desde una plantilla de base de datos

La Copia en bloque desde una base de datos a Azure Data Explorer mediante la plantilla de Azure Data Factory es una canalización de Azure Data Factory. La plantilla se usa para crear muchas canalizaciones por base de datos o por tabla para una copia de datos más rápida.

Asignación de flujos de datos

Flujos de datos de asignación de Azure Data Factory: son transformaciones de datos diseñadas de manera visual que permiten a los ingenieros de datos desarrollar una lógica de transformación de datos gráficos sin necesidad de escribir código. Para crear un flujo de datos e ingerir datos en Azure Data Explorer, use el método siguiente:

  1. Cree el flujo de datos de asignación.
  2. Exporte los datos a un blob de Azure.
  3. Defina Event Grid o la actividad de copia de ADF para ingerir los datos en Azure Data Explorer.

Selección entre las actividades de copia y de comandos de Azure Data Explorer cuando se copian datos

Esta sección le ayuda a seleccionar la actividad correcta para sus necesidades de copia de datos.

Al copiar datos desde o a Azure Data Explorer, hay dos opciones disponibles en Azure Data Factory:

  • Actividad de copia.
  • Actividad comando de Azure Data Explorer, que ejecuta uno de los comandos de administración que transfieren datos en Azure Data Explorer.

Obtención de datos de Azure Data Explorer

Puede copiar datos desde Azure Data Explorer mediante la actividad de copia o el comando .export. El comando .export ejecuta una consulta y, a continuación, exporta los resultados de la consulta.

Vea la tabla siguiente para obtener una comparación de la actividad de copia y el comando .export para copiar datos desde Azure Data Explorer.

Actividad de copia .export (comando)
Descripción del flujo ADF ejecuta una consulta en Kusto, procesa el resultado y lo envía al almacén de datos de destino.
(Almacén de datos receptor de Azure Data Explorer > ADF>)
ADF envía un .export comando de administración a Azure Data Explorer, que ejecuta el comando y envía los datos directamente al almacén de datos de destino.
(** Almacén de datos receptor de Azure Data Explorer>**)
Almacenes de datos de destino compatibles Una amplia variedad de almacenes de datos compatibles ADLSv2, Blob de Azure, SQL Database
Rendimiento Centralizado
  • Distribuido (predeterminado), exportación de datos de varios nodos simultáneamente
  • Más rápido y eficiente desde el punto de vista del coste de bienes vendidos.
Límites del servidor Límites de consulta pueden extenderse o deshabilitarse. De forma predeterminada, las consultas de ADF contienen:
  • Límite de tamaño de 500.000 registros o 64 MB.
  • Límite de tiempo de 10 minutos.
  • noTruncation establecida en Falso.
De forma predeterminada, extiende o deshabilita los límites de la consulta:
  • Los límites de tamaño están deshabilitados.
  • El tiempo de espera del servidor se extiende a 1 hora.
  • MaxMemoryConsumptionPerIterator y MaxMemoryConsumptionPerQueryPerNode se extienden a Max (5 GB, TotalPhysicalMemory/2).

Sugerencia

Si el destino de la copia es uno de los almacenes de datos admitidos por el comando .export, y si ninguna de las características de la actividad de copia es fundamental para sus necesidades, seleccione el comando .export.

Copia de datos a Azure Data Explorer

Puede copiar datos a Azure Data Explorer mediante los comandos de actividad de copia o ingesta, como ingesta de consultas (.set-or-append, .set-or-replace, .set, .replace)y la ingesta de almacenamiento (.ingest).

Vea la tabla siguiente para obtener una comparación de la actividad de copia y los comandos de ingesta para copiar datos desde Azure Data Explorer.

Actividad de copia Ingesta desde consulta
.set-or-append / .set-or-replace / .set / .replace
Ingesta desde almacenamiento
.ingest
Descripción del flujo ADF obtiene los datos del almacén de datos de origen, los convierte en un formato tabular y realiza los cambios de asignación de esquema necesarios. Después, ADF carga los datos en blobs de Azure, los divide en fragmentos y luego descarga los blobs para ingerirlos en la tabla de Azure Data Explorer.
(Almacén de datos > de origen ADF > Azure blobs > de Azure Data Explorer)
Estos comandos pueden ejecutar una consulta o un .show comando e ingerir los resultados de la consulta en una tabla (Azure Data Explorer > Azure Data Explorer). Este comando ingiere datos en una tabla mediante la "extracción" de los datos de uno o varios artefactos de almacenamiento en la nube.
Almacenes de datos de origen admitidos variedad de opciones ADLS Gen 2, Azure Blob, SQL (mediante el complemento sql_request(), Azure Cosmos DB (mediante el complemento cosmosdb_sql_request) y cualquier otro almacén de datos que proporcione API http o Python. Filesystem, Azure Blob Storage, ADLS gen 1, ADLS Gen 2
Rendimiento Las ingestas se ponen en cola y se administran, lo que garantiza la ingesta de pequeño tamaño y garantiza una alta disponibilidad al proporcionar equilibrio de carga, reintentos y control de errores.
  • Estos comandos no se diseñaron para la importación de datos de gran volumen.
  • Funciona según lo previsto y más barato. Pero para los escenarios de producción y cuando las tasas de tráfico y los tamaños de datos son grandes, use la actividad de copia.
Límites del servidor
  • Sin límite de tamaño.
  • Límite máximo de tiempo de espera: una hora por blob ingerido.
  • Solo hay un límite de tamaño en la parte de la consulta, que se puede omitir especificando noTruncation=true.
  • Límite máximo de tiempo de espera: una hora.
  • Sin límite de tamaño.
  • Límite máximo de tiempo de espera: una hora.

Sugerencia

  • Al copiar datos desde ADF a Azure Data Explorer use los comandos ingest from query.
  • Para conjuntos de datos grandes (>1 GB), use el actividad de copia.

Permisos necesarios

En la tabla siguiente se enumeran los permisos necesarios para varios pasos de la integración con Azure Data Factory.

Paso Operación Nivel mínimo de permisos Notas
Creación de un servicio vinculado Navegación de la base de datos Visor de base de datos
El usuario que ha iniciado sesión con ADF debe estar autorizado para leer los metadatos de la base de datos.
El usuario puede proporcionar el nombre de la base de datos manualmente.
Probar la conexión Monitor de base de datos o tabla de ingesta
La entidad de servicio debe estar autorizada para ejecutar los comandos .show de nivel de base de datos o la ingesta en el nivel de tabla.
  • TestConnection comprueba la conexión al clúster y no a la base de datos. Puede realizarse incluso si la base de datos no existe.
  • Los permisos de administrador de tablas no son suficientes.
Crear un conjunto de datos Navegación por tabla Supervisor de base de datos
El usuario que ha iniciado sesión con ADF debe estar autorizado para ejecutar los comandos .show de nivel de base de datos.
El usuario puede proporcionar el nombre de la tabla manualmente.
Crear un conjunto de datos o una Actividad de copia Vista previa de los datos Visor de base de datos
La entidad de servicio debe estar autorizada para leer los metadatos de la base de datos.
Importar esquema Visor de base de datos
La entidad de servicio debe estar autorizada para leer los metadatos de la base de datos.
Cuando Azure Data Explorer es el origen de una copia tabular a tabular, ADF importa el esquema automáticamente, incluso si el usuario no importó el esquema explícitamente.
Azure Data Explorer como receptor Crear de una asignación de columna por nombre Supervisor de base de datos
La entidad de servicio debe estar autorizada para ejecutar los comandos .show nivel de base de datos.
  • Todas las operaciones obligatorias funcionan con el ingeror de tablas.
  • Se pueden producir errores en algunas operaciones opcionales.
  • Crear una asignación de CSV en la tabla
  • Quitar la asignación
ingesta de tablas o administrador de base de datos
La entidad de servicio debe estar autorizada para realizar cambios en una tabla.
Ingerir datos ingesta de tablas o administrador de base de datos
La entidad de servicio debe estar autorizada para realizar cambios en una tabla.
Azure Data Explorer como origen Ejecutar consulta Visor de base de datos
La entidad de servicio debe estar autorizada para leer los metadatos de la base de datos.
Comando Kusto Según el nivel de permisos de cada comando.

Rendimiento

Si Azure Data Explorer es el origen y usa la actividad de búsqueda, copia o comando que contiene una consulta, consulte prácticas recomendadas de consulta para obtener información sobre el rendimiento y documentación de ADF para la actividad de copia.

En esta sección se aborda el uso de la actividad de copia donde Azure Data Explorer es el receptor. El rendimiento estimado del receptor de Azure Data Explorer es de 11-13 MBps. En la tabla siguiente se detallan los parámetros que influyen en el rendimiento del receptor de Azure Data Explorer.

Parámetro Notas
Proximidad geográfica de componentes Colocar todos los componentes en la misma región:
  • almacenes de datos de origen y receptor.
  • Entorno de ejecución de integración ADF
  • El clúster de Azure Data Explorer.
Asegúrese de que al menos el entorno de ejecución de integración esté en la misma región que el clúster de Azure Data Explorer.
Número de DIU Una máquina virtual por cada cuatro DIU usadas por ADF.
Aumentar las RU solo ayuda si el origen es un almacén basado en archivos con varios archivos. Cada VM procesará un archivo diferente en paralelo. Por lo tanto, copiar un único archivo grande tiene una latencia mayor que copiar varios archivos más pequeños.
Cantidad y SKU del clúster de Azure Data Explorer Un gran número de nodos de Azure Data Explorer aumenta el tiempo de procesamiento de ingesta. El uso de las SKU de desarrollo limitará gravemente el rendimiento.
Paralelismo Para copiar una gran cantidad de datos de una base de datos, particione los datos y, a continuación, use un bucle ForEach que copie cada partición en paralelo o use la plantilla bulk Copy from Database to Azure Data Explorer Template (Copia masiva de la base de datos en Azure Data Explorer). Nota: La opción Configuración>Grado de paralelismo de la actividad de copia no es pertinente para Azure Data Explorer.
Complejidad del procesamiento de datos La latencia varía según el formato del archivo de origen, la asignación de columnas y la compresión.
La VM que ejecuta su entorno de ejecución de integración
  • En el caso de la copia de Azure, las máquinas virtuales de ADF y máquinas de SKU no se pueden cambiar.
  • En el caso de la copia local en Azure, determine que la máquina virtual que hospeda el entorno de ejecución de integración autohospedado es lo suficientemente fuerte.

Sugerencias y problemas habituales

Supervise el progreso de la actividad

  • Al supervisar el progreso de la actividad, la propiedad Datos escritos puede ser mayor que la propiedad Lectura de datos porque la lectura de datos se calcula según el tamaño del archivo binario, mientras que los datos escritos se calculan según el tamaño en memoria, después de deserializar y descomprimir los datos.

  • Al supervisar el progreso de la actividad, puede ver que los datos se escriben en el receptor de Azure Data Explorer. Al consultar la tabla de Azure Data Explorer, verá que los datos no han llegado. Esto se debe a que hay dos fases al copiar a Azure Data Explorer.

    • La primera fase lee los datos de origen, los divide en fragmentos de 900 MB y carga cada fragmento en un BLOB de Azure. La primera fase se ve en la vista progreso de la actividad de ADF.
    • La segunda fase comienza una vez que todos los datos se cargan en los blobs de Azure. Los nodos del clúster descargan los blobs e ingieren los datos en la tabla receptora. Los datos se verán en la tabla de Azure Data Explorer.

Error en la ingesta de archivos CSV debido a un escape incorrecto

Azure Data Explorer espera que los archivos CSV cumplan el estándar RFC 4180. Espera lo siguiente:

  • Los campos que contienen caracteres que requieren escape (como " y nuevas líneas) deben comenzar y terminar con un carácter " , sin espacio en blanco. Todos los caracteres " incluidos dentro del campo se deben escribir con un carácter " doble ( "" ). Por ejemplo, "Hola, ""mundo""" es un archivo CSV válido con un solo registro que incluye una única columna o campo con el contenido Hola, "mundo" .
  • Todos los registros del archivo deben tener el mismo número de columnas y campos.

Azure Data Factory permite el carácter de barra diagonal inversa (escape). Si genera un archivo CSV con un carácter de barra diagonal inversa mediante Azure Data Factory, se producirá un error en la ingesta del archivo a Azure Data Explorer.

Ejemplo

Los siguientes valores de texto: Hola, "mundo"
ABC DEF
"ABC\D"EF
"ABC DEF

Deben aparecer en un archivo CSV correcto de la siguiente manera: "Hola, ""mundo"""
"ABC DEF"
"""ABC\D""EF"
"""ABC DEF"

Al usar el carácter de escape predeterminado (barra diagonal inversa), el siguiente archivo CSV no funcionará con Azure Data Explorer: "Hola, "Mundo""
"ABC DEF"
""ABC\D"EF"
""ABC DEF"

Objetos JSON anidados

Al copiar un archivo JSON en Azure Data Explorer, tenga en cuenta lo siguiente:

  • No se admiten las matrices.
  • Si la estructura JSON contiene tipos de datos de objeto, Azure Data Factory aplanará los elementos secundarios del objeto e intentará asignar cada elemento secundario a una columna diferente de la tabla de Azure Data Explorer. Si desea que todo el elemento objeto se asigne a una sola columna en Azure Data Explorer:
    • Ingiera toda la fila JSON en una sola columna dinámica de Azure Data Explorer.
    • Edite manualmente la definición de la canalización mediante el editor JSON de Azure Data Factory. En Asignaciones:
      • Quite las asignaciones múltiples que se crearon para cada elemento secundario y agregue una única asignación que asigne el tipo de objeto a la columna de la tabla.
      • Después del corchete de cierre, agregue una coma seguida de:
        "mapComplexValuesToString": true.

Especificación de propiedades adicionales al realizar copias en Azure Data Explorer

Puede agregar propiedades de ingesta adicionales si las especifica en la actividad de copia de la canalización.

Para agregar propiedades:

  1. En Azure Data Factory, seleccione la herramienta de lápiz Autor.

  2. En Canalización, seleccione la canalización a la que desea agregar propiedades de ingesta adicionales.

  3. En el lienzo Actividades, seleccione la actividad Copiar datos.

  4. En los detalles de la actividad, seleccione Receptor y, después, expanda Propiedades adicionales.

  5. Seleccione Nuevo, seleccione Agregar nodo o Agregar matriz, lo que sea necesario y, luego, especifique el nombre y el valor de la propiedad de ingesta. Repita este paso para agregar sucesivas propiedades.

  6. Una vez completada la operación, guarde y publique la canalización.

Paso siguiente