Créer un cluster et une base de données Azure Data Explorer en utilisant Python
Dans cet article, vous allez créer un cluster et une base de données Azure Data Explorer en utilisant Python. Azure Data Explorer est un service d’analytique données rapide et complètement managé pour l’analyse en temps réel de gros volumes de données diffusées en continu par des applications, des sites web, des appareils IoT, etc. Pour utiliser Azure Data Explorer, créez tout d’abord un cluster, puis une ou plusieurs bases de données dans celui-ci. Ensuite, ingérez (chargez) des données dans une base de données pour pouvoir envoyer des requêtes à celle-ci.
Conditions préalables requises
- Un abonnement Azure. Créez un compte Azure gratuit.
- Python 3.4+.
- Une application Azure AD et un principal de service ayant accès aux ressources. Obtenez les valeurs de
Directory (tenant) ID
,Application ID
etClient Secret
.
Installer le package Python
Pour installer le package Python pour Azure Data Explorer (Kusto), ouvrez une invite de commandes dont le chemin contient Python. Exécutez cette commande :
pip install azure-common
pip install azure-mgmt-kusto
Authentication
Pour exécuter les exemples de cet article, nous avons besoin d’une application Azure AD et d’un principal de service pouvant accéder aux ressources. Consultez Créer une application Azure AD pour créer une application Azure AD gratuite et ajouter une attribution de rôle à l’étendue de l’abonnement. Cela montre également comment obtenir Directory (tenant) ID
, Application ID
et Client Secret
.
Créer le cluster Azure Data Explorer
Créez votre cluster avec la commande suivante :
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.begin_create_or_update(resource_group_name, cluster_name, cluster) poller.wait()
Paramètre Valeur suggérée Description du champ nom_cluster mykustocluster Nom souhaité de votre cluster. sku_name Standard_D13_v2 Référence SKU utilisée pour votre cluster. Niveau Standard Niveau de référence SKU. capacité number Nombre d’instances du cluster. resource_group_name testrg Nom du groupe de ressources dans lequel sera créé le cluster. Notes
Créer un cluster est une opération de longue durée. La méthode begin_create_or_update retourne une instance de LROPoller. Consultez Classe LROPoller pour obtenir plus d’informations.
Exécutez la commande suivante pour vérifier si votre cluster a bien été créé :
cluster_operations.get(resource_group_name = resource_group_name, cluster_name= cluster_name, custom_headers=None, raw=False)
Si le résultat contient provisioningState
avec la valeur Succeeded
, alors le cluster a correctement été créé.
Créer la base de données dans le cluster Azure Data Explorer
Créez votre base de données avec la commande suivante :
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.begin_create_or_update(resource_group_name = resource_group_name, cluster_name = cluster_name, database_name = database_name, parameters = database) poller.wait()
Notes
Si vous utilisez Python version 0.4.0 ou antérieure, utilisez Database au lieu de ReadWriteDatabase.
Paramètre Valeur suggérée Description du champ nom_cluster mykustocluster Nom du cluster dans lequel la base de données est créée. database_name mykustodatabase Nom de votre base de données. resource_group_name testrg Nom du groupe de ressources dans lequel sera créé le cluster. soft_delete_period 3650 days, 0:00:00 Durée pendant laquelle les données restent disponibles pour les requêtes. hot_cache_period 3650 days, 0:00:00 Durée pendant laquelle les données sont conservées dans le cache. Exécutez la commande suivante pour voir la base de données que vous avez créée :
database_operations.get(resource_group_name = resource_group_name, cluster_name = cluster_name, database_name = database_name)
Vous disposez maintenant d’un cluster et d’une base de données.
Nettoyer les ressources
Si vous envisagez de suivre nos autres articles, conservez les ressources que vous avez créées.
Pour nettoyer les ressources, supprimez le cluster. Lorsque vous supprimez un cluster, cela supprime également toutes les bases de données qu’il contient. Utilisez la commande suivante pour supprimer votre cluster :
cluster_operations.delete(resource_group_name = resource_group_name, cluster_name = cluster_name)