Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile installare l'emulatore Kusto di Azure Esplora dati nei modi seguenti:
- Sul proprio dispositivo: considera di usare questa opzione se è necessario configurare un ambiente di sviluppo locale
- In una macchina virtuale (VM) dell'agente CI/CD: usare questa opzione se è necessaria una pipeline CI/CD per l'esecuzione di test automatizzati
L'emulatore è disponibile come immagine del contenitore Docker Linux .
Questo articolo illustra come:
- Installare l'emulatore Kusto
- Connettersi all'emulatore
- Creare un database
- Inserire i dati
- Interrogare i dati
Questo articolo è incentrato su come installare il contenitore Docker Linux in un client Windows.
Prerequisiti
- Il sistema operativo host deve essere uno dei seguenti:
- Windows Server 2022
- Windows Server 2019 versione 10.0.17763.2928 o successiva
- Windows 11
- Qualsiasi distribuzione Linux che supporta Il client Docker per Linux
- Processore che supporta set di istruzioni SSE4.2/AVX2
- Almeno 2 GB di RAM (4 GB o più consigliati)
- Client Docker per Linux o Client Docker per Windows
Importante
Le distribuzioni Linux supportano solo immagini di contenitori Linux. I processori ARM non sono supportati.
Installare l'emulatore Kusto
La procedura seguente prevede l'uso di una shell per avviare l'emulatore usando l'immagine del contenitore dell'emulatore Kusto. Per altre opzioni, vedere Eseguire le opzioni dell'emulatore.
Eseguire il comando seguente per avviare l'emulatore.
Importante
L'immagine del contenitore dell'emulatore Kusto è un'offerta gratuita in base alle Condizioni di licenza software Microsoft. Poiché l'emulatore viene eseguito in un contenitore, è necessario accettare le condizioni di licenza passando la variabile di ambiente
ACCEPT_EULA
al contenitore con il relativo valore impostato suY
.Nota
- La prima volta che questo comando viene eseguito, Docker scarica l'immagine del contenitore, che ha una dimensione di diversi GB e potrebbe richiedere alcuni minuti per il download. Dopo il download, l'immagine viene memorizzata nella cache e disponibile per le esecuzioni successive senza dover scaricarla di nuovo.
Per avviare il contenitore Linux, assicurarsi di usare il tag
latest
ostable
:docker run -e ACCEPT_EULA=Y -m 4G -d -p 8080:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer-linux:latest
Eseguire il comando seguente per verificare che il contenitore sia in esecuzione.
docker ps
Il comando restituisce un elenco di istanze del contenitore in esecuzione. Verificare che l'immagine dell'emulatore mcr.microsoft.com/azuredataexplorer/kustainer-linux:latest venga visualizzata nell'elenco.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a8b51bce21ad mcr.microsoft.com/azuredataexplorer/kustainer-linux:latest "powershell -Command¦" 11 minutes ago Up 10 minutes 0.0.0.0:8080->8080/tcp contoso
Eseguire il comando seguente per verificare che l'emulatore Kusto sia in esecuzione. Questo comando è per PowerShell, è possibile eseguire operazioni simili usando
curl
in un ambiente Linux. Il comando esegue la.show cluster
query sull'API di gestione e deve restituire statusCode con valore 200.Invoke-WebRequest -Method post -ContentType 'application/json' -Body '{"csl":".show cluster"}' http://localhost:8080/v1/rest/mgmt
Il comando dovrebbe restituire un risultato simile al seguente:
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
Opzioni dell'emulatore di esecuzione
Quando si esegue l'emulatore, è possibile usare una delle opzioni seguenti:
Montare una cartella locale nel contenitore: usare questa opzione per montare una cartella nell'ambiente host nel contenitore. Il montaggio di una cartella host consente alle query di interagire con i file locali, utile per creare un database permanente tra le esecuzioni del contenitore e l'inserimento di dati.
Ad esempio, per montare la cartella "D:\host\local" sull'host nella cartella "/kustodatadata" nel contenitore, utilizzare il seguente comando su 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
Esecuzione su una porta diversa: l'emulatore Kusto espone l'accesso al motore di query Kusto sulla porta 8080; di conseguenza, in altri esempi è stato eseguito il mapping della porta host 8080 alla porta dell'emulatore 8080. È possibile usare questa opzione per associare un host diverso al motore.
Ad esempio, per eseguire il mapping della porta 9000 nell'host al motore, usare il comando seguente in Windows Server:
docker run -e ACCEPT_EULA=Y -m 4G -d -p 9000:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer-linux:latest
Connettersi all'emulatore
È possibile usare uno degli strumenti seguenti per connettersi e interagire con l'emulatore:
Nelle sezioni seguenti si usa Kusto.Explorer per creare un database, inserire dati ed eseguirne una query. Per altre informazioni, vedere Uso di Kusto.Explorer.
Importante
L'emulatore Kusto non supporta l'autenticazione HTTPS o Microsoft Entra.
È necessario prima consentire le connessioni non sicure in Strumenti>Opzioni>Connessioni>Consenti connessioni non sicure.
L'immagine seguente evidenzia i campi interessati nelle proprietà Add connection.
- La connessione del cluster deve iniziare con
http://
e nonhttps://
. - In Security> (Sicurezza avanzata: stringa di connessione) è necessario rimuovere la parte della stringa di connessione per disabilitare l'autenticazione
AAD Federated Security=True
di Microsoft Entra.
Creare un database
Per archiviare i dati ed eseguire query, creare un database o collegare l'emulatore a un database esistente.
Un database può essere salvato in modo permanente in una cartella contenitore o in una cartella montata. La durata dell'elemento precedente è associata al contenitore, quindi al riavvio del contenitore, vengono perse eventuali modifiche. Inoltre, l'archiviazione virtuale del contenitore è meno efficiente di quella nativa. La cartella montata consente di mantenere i dati tra le esecuzioni del contenitore.
In questo esempio si mantengono i dati nel contenitore.
Nella modalità di query di Kusto.Explorer , eseguire il comando seguente per creare un database permanente:
.create database <YourDatabaseName> persist (
@"/kustodata/dbs/<YourDatabaseName>/md",
@"/kustodata/dbs/<YourDatabaseName>/data"
)
Questo comando richiede che le cartelle non esistano già, per evitare di sovrascrivare le informazioni esistenti. Per connettersi a un database esistente, usare invece il comando seguente, specificando il percorso che termina con md
:
.attach database <YourDatabaseName> from @"<PathToMdFolder>"
È anche possibile scollegare il database dall'emulatore, che manterrà intatti tutti i metadati e i dati del database in modo da poterlo ricollegare in futuro:
.detach database <YourDatabaseName>
Inserire i dati
Per inserire dati, è prima necessario creare una tabella esterna collegata a un file e quindi inserire i dati in una tabella nel database.
Usare la procedura descritta nell'esempio seguente per creare una tabella esterna e inserire i dati in esso. Come parte dell'esempio, creare un file denominato sample.csv
nella cartella locale d:\host\local, con i dati seguenti:
Alice, 1
Bob, 2
Carl, 3
Eseguire il comando seguente per creare una tabella per ricevere i dati:
.create table MyIngestedSample(Name:string, Id:int)
Eseguire il comando seguente per inserire il file nella tabella:
.ingest into table MyIngestedSample(@"/kustodata/sample.csv")
Eseguire query sui dati
È possibile visualizzare i dati nella tabella usando la query seguente:
MyIngestedSample
| summarize sum(Id), avg(Id)
Fermare il contenitore
È possibile arrestare il contenitore eseguendo il comando seguente per ottenere l'ID contenitore:
docker ps
Eseguire il comando seguente con l'ID contenitore:
docker stop <containerID>