De Azure Data Explorer Kusto-emulator installeren
U kunt de Azure Data Explorer Kusto-emulator op de volgende manieren installeren:
- Op uw eigen apparaat: overweeg deze optie te gebruiken als u een lokale ontwikkelomgeving moet inrichten
- Op een VIRTUELE MACHINE (VM) van een CI/CD-agent: gebruik deze optie als u een CI/CD-pijplijn nodig hebt voor het uitvoeren van geautomatiseerde tests
De emulator is beschikbaar als een Docker-containerinstallatiekopieën voor Windows of Linux .
In dit artikel leert u het volgende:
- De Kusto-emulator installeren
- Verbinding maken met de emulator
- Een database maken
- Gegevens opnemen
- Querygegevens
Vereisten
Het hostbesturingssysteem moet een van de volgende zijn:
Windows Server 2022
Windows Server 2019 versie 10.0.17763.2928 of hoger
Windows 11
Elke Linux-distributie die Ondersteuning biedt voor Docker Client voor Linux
Belangrijk
Linux-distributies ondersteunen alleen Linux-containerinstallatiekopieën.
minimaal 2 gigabyte (GB) RAM-geheugen; we raden u aan 4 GB of meer te gebruiken
De Kusto-emulator installeren
De volgende stappen zijn voor het gebruik van PowerShell om de emulator te starten met behulp van de containerinstallatiekopieën van de Kusto-emulator. Zie Emulatoropties uitvoeren voor andere opties.
Alleen voor Windows schakelt u Docker over om te worden uitgevoerd met Windows-containers. Mogelijk moet u de functie inschakelen in de Docker-instellingen.
Voer de volgende opdracht uit om de emulator te starten.
Belangrijk
De containerinstallatiekopieën van de Kusto-emulator zijn gratis onder de licentievoorwaarden voor Microsoft-software. Omdat de emulator wordt uitgevoerd in een container, moet u de licentievoorwaarden accepteren door de
ACCEPT_EULA
omgevingsvariabele door te geven aan de container met de waarde ervan ingesteld opY
aangeven.Notitie
- De eerste keer dat deze opdracht wordt uitgevoerd, haalt Docker de containerinstallatiekopie op die meerdere GB's groot is. Het downloaden kan enkele minuten duren. Na het downloaden wordt de afbeelding in de cache opgeslagen en beschikbaar voor volgende uitvoeringen zonder dat u deze opnieuw hoeft te downloaden.
- (Alleen voor Windows-containers) De container moet worden uitgevoerd in de procesisolatiemodus. Dit is de standaardinstelling voor sommige versies van Docker. Voor andere versies kunt u de container in de hyper-V-isolatiemodus starten door toe te voegen aan
--isolation=hyperv
de opdracht uitvoeren.
Als u de Windows-container wilt starten op het Windows Server-besturingssysteem, moet u de
latest
tag ofstable
gebruiken:docker run -e ACCEPT_EULA=Y -m 4G -d -p 8080:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer:latest
Als u de Windows-container wilt starten op Windows 11, moet u de
windows11
tag gebruiken:docker run -e ACCEPT_EULA=Y -m 4G -d -p 8080:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer:windows11
De Linux-container starten:
docker run -e ACCEPT_EULA=Y -m 4G -d -p 8080:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer-linux:latest
Voer de volgende opdracht uit om te controleren of de container wordt uitgevoerd.
docker ps
De opdracht retourneert een lijst met actieve containerinstanties. Controleer of de emulatorinstallatiekopieën mcr.microsoft.com/azuredataexplorer/kustainer:latest in de lijst worden weergegeven.
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
Voer de volgende opdracht uit om te controleren of Kusto-emulator wordt uitgevoerd. Met de opdracht wordt de
.show cluster
query uitgevoerd op de beheer-API en moet een StatusCode met de waarde 200 worden geretourneerd.Invoke-WebRequest -Method post -ContentType 'application/json' -Body '{"csl":".show cluster"}' http://localhost:8080/v1/rest/mgmt
De opdracht retourneert ongeveer als volgt:
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
Emulatoropties uitvoeren
U kunt een van de volgende opties gebruiken bij het uitvoeren van de emulator:
Een lokale map koppelen aan de container: gebruik deze optie om een map in de hostomgeving aan de container te koppelen. Door een hostmap te koppelen, kunnen uw query's communiceren met lokale bestanden, wat handig is voor het maken van een permanente database tussen containeruitvoeringen en het opnemen van gegevens.
Als u bijvoorbeeld de map D:\host\local op de host wilt koppelen aan de map c:\kustodatadata in de container, gebruikt u de volgende opdracht op 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
Uitvoeren op een andere poort: de Kusto-emulator biedt toegang tot de Kusto-query-engine op poort 8080; daarom hebt u in andere voorbeelden de hostpoort 8080 toegewezen aan de emulatorpoort 8080. U kunt deze optie gebruiken om een andere host toe te wijzen aan de engine.
Als u bijvoorbeeld poort 9000 op de host wilt toewijzen aan de engine, gebruikt u de volgende opdracht op Windows Server:
docker run -e ACCEPT_EULA=Y -m 4G -d -p 9000:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer:latest
Verbinding maken met de emulator
U kunt een van de volgende hulpprogramma's gebruiken om verbinding te maken met en te communiceren met de emulator:
In de volgende secties gebruikt u Kusto.Explorer om een database te maken, gegevens op te nemen en er query's op uit te voeren. Zie Kusto.Explorer gebruiken voor meer informatie.
Belangrijk
De Kusto Emulator biedt geen ondersteuning voor HTTPS- of Microsoft Entra-verificatie.
U moet eerst onveilige verbindingen toestaan in Extra>Opties>Verbindingen>Onveilige verbindingen toestaan.
In de volgende afbeelding worden de betrokken velden in de verbindingseigenschappen toevoegen gemarkeerd.
- De clusterverbinding moet beginnen met en niet
https://
.http://
- In Beveiliging>geavanceerd: verbindingsreeks moet u het gedeelte van de
AAD Federated Security=True
verbindingsreeks verwijderen om Microsoft Entra verificatie uit te schakelen.
Een database maken
Als u gegevens wilt opslaan en query's wilt uitvoeren, maakt u een database of koppelt u de emulator aan een bestaande database.
Een database kan worden opgeslagen in een containermap of in een gekoppelde map. De levensduur van de eerste is afhankelijk van de container, dus als u de container opnieuw start, gaan eventuele wijzigingen verloren. Bovendien is de virtuele opslag van de container minder efficiënt dan de systeemeigen opslag. Met gekoppelde map kunt u de gegevens tussen de containeruitvoeringen bewaren.
In dit voorbeeld bewaren we de gegevens in de container.
Voer in de Kusto.Explorer-querymodus de volgende opdracht uit om een permanente database te maken als u een Windows-containerinstallatiekopieën gebruikt:
.create database <YourDatabaseName> persist (
@"c:\kustodata\dbs\<YourDatabaseName>\md",
@"c:\kustodata\dbs\<YourDatabaseName>\data"
)
De equivalente opdracht voor een Linux-containerinstallatiekopieën is:
.create database <YourDatabaseName> persist (
@"/kustodata/dbs/<YourDatabaseName>/md",
@"/kustodata/dbs/<YourDatabaseName>/data"
)
Voor deze opdracht is vereist dat de mappen nog niet bestaan om te voorkomen dat bestaande gegevens overschreven worden. Als u wilt koppelen aan een bestaande database, gebruikt u in plaats daarvan de volgende opdracht, waarbij u het pad opgeeft dat eindigt op md
:
.attach database <YourDatabaseName> from @"<PathToMdFolder>"
Het is ook mogelijk om de database los te koppelen van de emulator, waardoor alle metagegevens en gegevens van de database intact blijven (zodat u deze in de toekomst opnieuw kunt koppelen):
.detach database <YourDatabaseName>
Gegevens opnemen
Als u gegevens wilt opnemen, moet u eerst een externe tabel maken die is gekoppeld aan een bestand en vervolgens de gegevens opnemen in een tabel in de database.
Gebruik de stappen in het volgende voorbeeld om een externe tabel te maken en er gegevens in op te nemen. Maak bijvoorbeeld in de lokale map c:\kustodata een bestand met de naam sample.csv
met de volgende gegevens:
Alice, 1
Bob, 2
Carl, 3
Voer de volgende opdracht uit om een tabel te maken voor het ontvangen van de gegevens:
.create table MyIngestedSample(Name:string, Id:int)
Voer de volgende opdracht uit om het bestand op te nemen in de tabel:
.ingest into table MyIngestedSample(@"c:\kustodata\sample.csv")
Querygegevens
U kunt de gegevens in de tabel weergeven met behulp van de volgende query:
MyIngestedSample
| summarize sum(Id), avg(Id)
De container stoppen
U kunt de container stoppen door de volgende opdracht uit te voeren om de container-id op te halen:
docker ps
Voer de volgende opdracht uit met de container-id:
docker stop <containerID>