Skapa ett Azure Data Explorer kluster och en databas med hjälp av Python

I den här artikeln skapar du ett Azure Data Explorer kluster och databas med hjälp av Python. Azure Data Explorer är en snabb, fullständigt hanterad dataanalystjänst för realtidsanalys av stora mängder data som strömmar från program, webbplatser, IoT-enheter med mera. Om du Azure Data Explorer måste du först skapa ett kluster och skapa en eller flera databaser i klustret. Mata sedan in eller läs in data i en databas så att du kan köra frågor mot den.

Förutsättningar

Installera Python-paket

Om du vill installera Python-Azure Data Explorer (Kusto) öppnar du en kommandotolk med Python i sökvägen. Kör följande kommando:

pip install azure-common
pip install azure-mgmt-kusto

Autentisering

För att köra exemplen i den här artikeln behöver vi ett Azure AD-program och tjänstens huvudnamn som kan komma åt resurser. Markera skapa ett Azure AD-program för att skapa ett kostnadsfritt Azure AD-program och lägg till rolltilldelning i prenumerationsomfånget. Den visar också hur du hämtar Directory (tenant) ID , Application ID och Client Secret .

Skapa Azure Data Explorer-klustret

  1. Skapa klustret med hjälp av följande kommando:

    from azure.mgmt.kusto import KustoManagementClient
    from azure.mgmt.kusto.models import Cluster, AzureSku
    from azure.common.credentials import ServicePrincipalCredentials
    
    #Directory (tenant) ID
    tenant_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
    #Application ID
    client_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
    #Client Secret
    client_secret = "xxxxxxxxxxxxxx"
    subscription_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
    credentials = ServicePrincipalCredentials(
        client_id=client_id,
        secret=client_secret,
        tenant=tenant_id
    )
    
    location = 'Central US'
    sku_name = 'Standard_D13_v2'
    capacity = 5
    tier = "Standard"
    resource_group_name = 'testrg'
    cluster_name = 'mykustocluster'
    cluster = Cluster(location=location, sku=AzureSku(name=sku_name, capacity=capacity, tier=tier))
    
    kusto_management_client = KustoManagementClient(credentials, subscription_id)
    
    cluster_operations = kusto_management_client.clusters
    
    poller = cluster_operations.create_or_update(resource_group_name, cluster_name, cluster)
    poller.wait()
    
    Inställning Föreslaget värde Fältbeskrivning
    cluster_name mykustocluster Önskat namn på klustret.
    sku_name Standard_D13_v2 Den SKU som ska användas för klustret.
    nivå Standard SKU-nivån.
    capacity Nummer Antalet instanser av klustret.
    resource_group_name testrg Namnet på resursgruppen där klustret kommer att skapas.

    Anteckning

    Att skapa ett kluster är en långvarig åtgärd. Metod create_or_update returnerar en instans av LROPoller. Mer information finns i LROPoller-klassen.

  2. Kör följande kommando för att kontrollera om klustret har skapats:

    cluster_operations.get(resource_group_name = resource_group_name, cluster_name= cluster_name, custom_headers=None, raw=False)
    

Om resultatet innehåller provisioningState med värdet Succeeded har klustret skapats.

Skapa databasen i Azure Data Explorer-klustret

  1. Skapa databasen med hjälp av följande kommando:

    from azure.mgmt.kusto import KustoManagementClient
    from azure.common.credentials import ServicePrincipalCredentials
    from azure.mgmt.kusto.models import ReadWriteDatabase
     from datetime import timedelta
    
    #Directory (tenant) ID
    tenant_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
    #Application ID
    client_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
    #Client Secret
    client_secret = "xxxxxxxxxxxxxx"
    subscription_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
    credentials = ServicePrincipalCredentials(
        client_id=client_id,
        secret=client_secret,
        tenant=tenant_id
    )
    
    location = 'Central US'
    resource_group_name = 'testrg'
    cluster_name = 'mykustocluster'
    soft_delete_period = timedelta(days=3650)
    hot_cache_period = timedelta(days=3650)
    database_name = "mykustodatabase"
    
    kusto_management_client = KustoManagementClient(credentials, subscription_id)
    
    database_operations = kusto_management_client.databases
    database = ReadWriteDatabase(location=location,
     					soft_delete_period=soft_delete_period,
     					hot_cache_period=hot_cache_period)
    
    poller = database_operations.create_or_update(resource_group_name = resource_group_name, cluster_name = cluster_name, database_name = database_name, parameters = database)
    poller.wait()
    

    Anteckning

    Om du använder Python version 0.4.0 eller senare använder du Database i stället för ReadWriteDatabase.

    Inställning Föreslaget värde Fältbeskrivning
    cluster_name mykustocluster Namnet på det kluster där databasen ska skapas.
    database_name mykustodatabase Namn på databasen.
    resource_group_name testrg Namnet på resursgruppen där klustret kommer att skapas.
    soft_delete_period 3650 dagar, 0:00:00 Hur lång tid data ska behållas för att vara tillgängliga för frågor.
    hot_cache_period 3650 dagar, 0:00:00 Hur lång tid data ska behållas i cache.
  2. Kör följande kommando för att se den databas som du skapade:

    database_operations.get(resource_group_name = resource_group_name, cluster_name = cluster_name, database_name = database_name)
    

Nu har du ett kluster och en databas.

Rensa resurser

  • Om du planerar att följa våra andra artiklar behåller du de resurser som du har skapat.

  • Ta bort klustret om du vill rensa resurser. När du tar bort ett kluster, raderas också alla databaser i den. Använd följande kommando för att ta bort klustret:

    cluster_operations.delete(resource_group_name = resource_group_name, cluster_name = cluster_name)
    

Nästa steg