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 .ingest
o ) o .set-or-append
copiar 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:
- Cree el flujo de datos de asignación.
- Exporte los datos a un blob de Azure.
- 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 |
|
Límites del servidor |
Límites de consulta pueden extenderse o deshabilitarse. De forma predeterminada, las consultas de ADF contienen:
|
De forma predeterminada, extiende o deshabilita los límites de la consulta:
|
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. |
|
|
Límites del servidor |
|
|
|
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. |
|
|
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. |
|
|
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:
|
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 |
|
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:
En Azure Data Factory, seleccione la herramienta de lápiz Autor.
En Canalización, seleccione la canalización a la que desea agregar propiedades de ingesta adicionales.
En el lienzo Actividades, seleccione la actividad Copiar datos.
En los detalles de la actividad, seleccione Receptor y, después, expanda Propiedades adicionales.
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.
Una vez completada la operación, guarde y publique la canalización.