Instalar o emulador kusto do Azure Data Explorer
Pode instalar o emulador do Kusto Data Explorer do Azure das seguintes formas:
- No seu próprio dispositivo: considere utilizar esta opção se precisar de aprovisionar um ambiente de desenvolvimento local
- Numa máquina virtual (VM) de agente CI/CD: utilize esta opção se precisar de um pipeline CI/CD para executar testes automatizados
O emulador está disponível como uma imagem de contentor do Docker do Windows ou do Linux .
Neste artigo, vai aprender a:
- Instalar o emulador kusto
- Ligar-se ao emulador
- Criar uma base de dados
- Ingerir dados
- Consultar dados
Pré-requisitos
O sistema operativo anfitrião tem de ser um dos seguintes:
Windows Server 2022
Windows Server 2019 Versão 10.0.17763.2928 ou mais recente
Windows 11
Qualquer distribuição do Linux que suporte o Cliente do Docker para Linux
Importante
As distribuições do Linux só suportam imagens de contentor do Linux.
2 gigabytes (GB) de RAM mínimo; recomendamos que utilize 4 GB ou mais
Instalar o emulador kusto
Os passos seguintes destinam-se à utilização do PowerShell para iniciar o emulador com a imagem de contentor do emulador Kusto. Para obter outras opções, veja Executar opções de emulador.
Apenas para Windows, mude o Docker para ser executado com contentores do Windows. Poderá ter de ativar a funcionalidade nas definições do Docker.
Execute o seguinte comando para iniciar o emulador.
Importante
A imagem de contentor do emulador Kusto é uma oferta gratuita ao abrigo dos Termos de Licenciamento para Software Microsoft. Uma vez que o emulador é executado num contentor, tem de aceitar os termos de licenciamento ao transmitir a variável de
ACCEPT_EULA
ambiente para o contentor com o respetivo valor definido comoY
indicativo.Nota
- Na primeira vez que este comando é executado, o Docker extrai a imagem de contentor que tem vários GBs de tamanho e pode demorar vários minutos a transferir. Depois de transferida, a imagem é colocada em cache e disponível para execuções subsequentes sem ter de a transferir novamente.
- (Apenas para contentores do Windows) O contentor tem de ser executado no modo de isolamento de processos. Esta é a predefinição em algumas versões do Docker. Para outras versões, pode iniciar o contentor no modo de isolamento do Hyper-V ao adicionar
--isolation=hyperv
ao comando executar.
Para iniciar o contentor do Windows no sistema operativo Windows Server, certifique-se de que utiliza a
latest
etiqueta oustable
:docker run -e ACCEPT_EULA=Y -m 4G -d -p 8080:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer:latest
Para iniciar o contentor do Windows no Windows 11, certifique-se de que utiliza a
windows11
etiqueta:docker run -e ACCEPT_EULA=Y -m 4G -d -p 8080:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer:windows11
Para iniciar o contentor do Linux:
docker run -e ACCEPT_EULA=Y -m 4G -d -p 8080:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer-linux:latest
Execute o seguinte comando para verificar se o contentor está em execução.
docker ps
O comando devolve uma lista de instâncias de contentor em execução. Verifique se a imagem do emulador mcr.microsoft.com/azuredataexplorer/kustainer:latest aparece na 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
Execute o seguinte comando para verificar se o emulador kusto está em execução. O comando executa a consulta na API de gestão e deverá devolver um StatusCode com o
.show cluster
valor 200.Invoke-WebRequest -Method post -ContentType 'application/json' -Body '{"csl":".show cluster"}' http://localhost:8080/v1/rest/mgmt
O comando deve devolver algo como:
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
Executar opções de emulador
Pode utilizar qualquer uma das seguintes opções ao executar o emulador:
Montar uma pasta local no contentor: utilize esta opção para montar uma pasta no ambiente anfitrião no contentor. Montar uma pasta de anfitrião permite que as consultas interajam com ficheiros locais, o que é útil para criar uma base de dados persistente entre execuções de contentores e ingestão de dados.
Por exemplo, para montar a pasta "D:\host\local" no anfitrião para a pasta "c:\kustodatadata" no contentor, utilize o comando seguinte no Windows Server:
docker run -v d:\host\local:c:\kustodata -e ACCEPT_EULA=Y -m 4G -d -p 8080:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer:latest
Executar numa porta diferente: o emulador kusto expõe o acesso ao Motor de Consulta Kusto na porta 8080; por conseguinte, noutros exemplos, mapeou a porta de anfitrião 8080 para a porta do emulador 8080. Pode utilizar esta opção para mapear um anfitrião diferente para o motor.
Por exemplo, para mapear a porta 9000 no anfitrião para o motor, utilize o seguinte comando no Windows Server:
docker run -e ACCEPT_EULA=Y -m 4G -d -p 9000:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer:latest
Ligar-se ao emulador
Pode utilizar qualquer uma das seguintes ferramentas para ligar e interagir com o emulador:
Nas secções seguintes, irá utilizar o Kusto.Explorer para criar uma base de dados, ingerir dados e consulta-la. Para saber mais, consulte Utilizar o Kusto.Explorer.
Importante
O Emulador kusto não suporta HTTPS nem autenticação Microsoft Entra.
Primeiro, tem de permitir ligações não seguras nasOpções> de Ferramentas>Ligações>Permitir ligações não seguras.
A imagem seguinte realça os campos afetados nas propriedades Adicionar ligação .
- A ligação do Cluster tem de começar com
http://
e nãohttps://
com . - Em Avançadas de Segurança>: Cadeia de Ligação, terá de remover a
AAD Federated Security=True
parte do cadeia de ligação para desativar Microsoft Entra autenticação.
Criar uma base de dados
Para armazenar dados e executar consultas, crie uma base de dados ou anexe o emulador a uma base de dados existente.
Uma base de dados pode ser mantida numa pasta de contentor ou numa pasta montada. A duração do primeiro está vinculada ao contentor, pelo que reiniciar o contentor perde quaisquer alterações. Além disso, o armazenamento virtual do contentor é menos eficiente do que o nativo. A pasta montada permite-lhe manter os dados entre execuções de contentores.
Neste exemplo, mantemos os dados no contentor.
No modo de Consulta Kusto.Explorer, execute o seguinte comando para criar uma base de dados persistente se utilizar uma imagem de contentor do Windows:
.create database <YourDatabaseName> persist (
@"c:\kustodata\dbs\<YourDatabaseName>\md",
@"c:\kustodata\dbs\<YourDatabaseName>\data"
)
O comando equivalente para uma imagem de contentor do Linux é:
.create database <YourDatabaseName> persist (
@"/kustodata/dbs/<YourDatabaseName>/md",
@"/kustodata/dbs/<YourDatabaseName>/data"
)
Este comando requer que as pastas ainda não existam, para impedir a escrita excessiva de informações existentes. Para anexar a uma base de dados existente, utilize o seguinte comando, especificando o caminho que termina com md
:
.attach database <YourDatabaseName> from @"<PathToMdFolder>"
Também é possível desanexar a base de dados do emulador, o que manterá intactos todos os metadados e dados da base de dados (para que possa voltar a ligá-la no futuro):
.detach database <YourDatabaseName>
Ingerir dados
Para ingerir dados, primeiro tem de criar uma tabela externa ligada a um ficheiro e, em seguida, ingerir os dados numa tabela na base de dados.
Utilize os passos no exemplo seguinte para criar uma tabela externa e ingerir dados na mesma. Por exemplo, na pasta local c:\kustodata, crie um ficheiro chamado sample.csv
com os seguintes dados:
Alice, 1
Bob, 2
Carl, 3
Execute o seguinte comando para criar uma tabela para receber os dados:
.create table MyIngestedSample(Name:string, Id:int)
Execute o seguinte comando para ingerir o ficheiro na tabela:
.ingest into table MyIngestedSample(@"c:\kustodata\sample.csv")
Consultar dados
Pode ver os dados na tabela com a seguinte consulta:
MyIngestedSample
| summarize sum(Id), avg(Id)
Parar o contentor
Pode parar o contentor ao executar o seguinte comando para obter o ID de contentor:
docker ps
Execute o seguinte comando com o ID de contentor:
docker stop <containerID>
Conteúdo relacionado
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários