Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Puede instalar el emulador de Kusto de Azure Data Explorer de las maneras siguientes:
- En su propio dispositivo: considere la posibilidad de usar esta opción si necesita aprovisionar un entorno de desarrollo local.
- En una máquina virtual (VM) del agente de CI/CD: use esta opción si necesita una canalización de CI/CD para ejecutar pruebas automatizadas.
El emulador está disponible como una imagen de contenedor de Linux y Windows Docker.
En este artículo, aprenderá a:
- Instalación del emulador de Kusto
- Conexión al emulador
- Creación de una base de datos
- Ingerir datos
- Consultar datos
En este artículo se centra en cómo instalar el contenedor de Docker de Linux en un cliente de Windows.
Requisitos previos
El sistema operativo host debe ser uno de los siguientes:
Windows Server 2022
Windows Server 2019, versión 10.0.17763.2928 o posterior
Windows 11
Cualquier distribución de Linux que admita el cliente de Docker para Linux
Importante
Las distribuciones de Linux solo admiten imágenes de contenedor de Linux.
2 gigabytes (GB) de RAM mínimo; se recomienda usar 4 GB o más
Instalación del emulador de Kusto
Los pasos siguientes son para usar PowerShell para iniciar el emulador mediante la imagen de contenedor del emulador de Kusto. Para ver otras opciones, consulte Ejecutar opciones del emulador.
solo para contenedores de Windows: cambie Docker para que se ejecute con contenedores de Windows. Es posible que tenga que habilitar la característica en la configuración de Docker.
Ejecute el siguiente comando para iniciar el emulador.
Importante
La imagen de contenedor del emulador de Kusto es una oferta gratuita en los Términos de licencia de software de Microsoft. Dado que el emulador se ejecuta en un contenedor, debe aceptar los términos de licencia pasando la variable de entorno
ACCEPT_EULA
al contenedor con su valor establecido enY
.Nota:
- La primera vez que se ejecuta este comando, Docker extrae la imagen de contenedor que tiene varios GB de tamaño y puede tardar varios minutos en descargarse. Una vez descargado, la imagen se almacena en caché y está disponible para las ejecuciones posteriores sin tener que volver a descargarla.
-
Solo para el contenedor de Windows: el contenedor debe ejecutarse en modo de aislamiento de proceso. Este es el valor predeterminado en algunas versiones de Docker. Para otras versiones, puede iniciar el contenedor en modo de aislamiento de Hyper-V agregando
--isolation=hyperv
al comando run.
- de contenedor de Linux
- contenedor de Windows
Para iniciar el contenedor de Linux, asegúrese de usar la etiqueta
latest
ostable
:docker run -e ACCEPT_EULA=Y -m 4G -d -p 8080:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer-linux:latest
Ejecute el comando siguiente para comprobar que el contenedor se está ejecutando.
docker ps
El comando devuelve una lista de instancias de contenedor en ejecución. Compruebe que la imagen del emulador mcr.microsoft.com/azuredataexplorer/kustainer:latest aparece en la lista.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a8b51bce21ad mcr.microsoft.com/azuredataexplorer/kustainer:latest "powershell -Command¦" 11 minutes ago Up 10 minutes 0.0.0.0:8080->8080/tcp contoso
Ejecute el siguiente comando para comprobar que el emulador de Kusto se está ejecutando. El comando ejecuta la
.show cluster
consulta en la API de administración y debe devolver un statusCode con el valor 200.Invoke-WebRequest -Method post -ContentType 'application/json' -Body '{"csl":".show cluster"}' http://localhost:8080/v1/rest/mgmt
El comando debe devolver algo parecido a:
StatusCode : 200 StatusDescription : OK Content : {"Tables":[{"TableName":"Table_0","Columns":[{"ColumnName":"NodeId","DataType":"String","ColumnType":"string"},{"ColumnName":"Address","DataType":"St ring","ColumnType":"string"},{"ColumnName":"Name","... RawContent : HTTP/1.1 200 OK Transfer-Encoding: chunked x-ms-client-request-id: unspecified;d239f3aa-7df0-4e46-af0a-edd7139d0511 x-ms-activity-id: a0ac8941-7e4c-4176-98fa-b7ebe14fae90 Content-Type: application... Forms : {} Headers : {[Transfer-Encoding, chunked], [x-ms-client-request-id, unspecified;d239f3aa-7df0-4e46-af0a-edd7139d0511], [x-ms-activity-id, a0ac8941-7e4c-4176-98fa-b7ebe14fae90], [Content-Type, application/json]...} Images : {} InputFields : {} Links : {} ParsedHtml : System.__ComObject RawContentLength : 988
Ejecutar opciones del emulador
Puede usar cualquiera de las siguientes opciones al ejecutar el emulador:
Monte una carpeta local en el contenedor: use esta opción para montar una carpeta en el entorno host en el contenedor. El montaje de una carpeta host permite que las consultas interactúen con archivos locales, lo que resulta útil para crear una base de datos persistente entre ejecuciones de contenedor e ingesta de datos.
- de contenedor de Linux
- contenedor de Windows
Por ejemplo, para montar la carpeta "D:\host\local" en el host en la carpeta "/kustodatadata" en el contenedor, use el siguiente comando en Windows Server:
docker run -v d:\host\local:/kustodata -e ACCEPT_EULA=Y -m 4G -d -p 8080:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer-linux:latest
Ejecutar en un puerto diferente: el emulador de Kusto expone el acceso al motor de consulta de Kusto en el puerto 8080; por lo tanto, en otros ejemplos ha asignado el puerto de host 8080 al puerto del emulador 8080. Puede usar esta opción para asignar un host diferente al motor.
Por ejemplo, para asignar el puerto 9000 en el host al motor, use el siguiente comando en Windows Server:
docker run -e ACCEPT_EULA=Y -m 4G -d -p 9000:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer-linux:latest
Conexión al emulador
Puede usar cualquiera de las siguientes herramientas para conectarse e interactuar con el emulador:
En las secciones siguientes, usará Kusto.Explorer para crear una base de datos, ingerir datos y consultarlos. Para más información, consulte Uso de Kusto.Explorer.
Importante
El emulador de Kusto no admite la autenticación HTTPS ni Microsoft Entra.
En primer lugar, debe permitir conexiones no seguras en > no seguras.
En la imagen siguiente se resaltan los campos afectados en las propiedades Agregar conexión .
- La conexión de clúster debe comenzar por
http://
y nohttps://
por . - En Security>Advanced: Connection String, debe quitar la sección
AAD Federated Security=True
de la cadena de conexión para deshabilitar la autenticación de Microsoft Entra.
Creación de una base de datos
Para almacenar datos y ejecutar consultas, cree una base de datos o adjunte el emulador a una base de datos existente.
Una base de datos se puede conservar en una carpeta contenedora o en una carpeta montada. La duración anterior está enlazada al contenedor, por lo que reiniciar el contenedor pierde los cambios. Además, el almacenamiento virtual del contenedor es menos eficaz que el nativo. La carpeta montada permite mantener los datos entre ejecuciones de contenedor.
En este ejemplo, se conservan los datos en el contenedor.
En el modo de consulta de Kusto.Explorer de , ejecute el siguiente comando para crear una base de datos persistente:
- de contenedor de Linux
- contenedor de Windows
.create database <YourDatabaseName> persist (
@"/kustodata/dbs/<YourDatabaseName>/md",
@"/kustodata/dbs/<YourDatabaseName>/data"
)
Este comando requiere que las carpetas aún no existan para evitar la sobreescritura de información existente. Para adjuntar a una base de datos existente, use el siguiente comando en su lugar, especificando la ruta de acceso que termina con md
:
.attach database <YourDatabaseName> from @"<PathToMdFolder>"
También es posible desasociar la base de datos del emulador, lo que mantendrá intactos todos los metadatos y datos de la base de datos para poder volver a asociarla en el futuro:
.detach database <YourDatabaseName>
Ingerir datos
Para ingerir datos, primero debe crear una tabla externa vinculada a un archivo y, a continuación, ingerir los datos en una tabla de la base de datos.
Siga los pasos descritos en el ejemplo siguiente para crear una tabla externa e ingerir datos en ella. Como parte del ejemplo, cree un archivo denominado sample.csv
en la carpeta local d:\host\local, con los datos siguientes:
Alice, 1
Bob, 2
Carl, 3
Ejecute el comando siguiente para crear una tabla para recibir los datos:
.create table MyIngestedSample(Name:string, Id:int)
Ejecute el siguiente comando para ingerir el archivo en la tabla:
.ingest into table MyIngestedSample(@"/kustodata/sample.csv")
Consultar datos
Puede ver los datos de la tabla mediante la consulta siguiente:
MyIngestedSample
| summarize sum(Id), avg(Id)
Detener el contenedor
Para detener el contenedor, ejecute el comando siguiente para obtener el identificador del contenedor:
docker ps
Ejecute el comando siguiente con el identificador de contenedor:
docker stop <containerID>