Delen via


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:

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

  • Docker Client voor Windows of Linux

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.

  1. Alleen voor Windows schakelt u Docker over om te worden uitgevoerd met Windows-containers. Mogelijk moet u de functie inschakelen in de Docker-instellingen.

    Schermopname van de Docker-instellingen, met de optie Overschakelen naar Windows-containers.

  2. 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 op Y 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 of stable 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
      
  3. 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
    
  4. 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.

Schermopname van verbindingsopties voor Kusto Explorer.

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.

Schermopname van het instellen van één verbinding met Kusto Explorer.

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
  1. Voer de volgende opdracht uit om een tabel te maken voor het ontvangen van de gegevens:

    .create table MyIngestedSample(Name:string, Id:int)
    
  2. 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

  1. U kunt de container stoppen door de volgende opdracht uit te voeren om de container-id op te halen:

    docker ps
    
  2. Voer de volgende opdracht uit met de container-id:

    docker stop <containerID>