Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Automatizované zřizování je proces pro rychlé nasazení a konfiguraci prostředků, které potřebujete ke spuštění clusteru Azure Data Exploreru. Je to důležitá součást pracovního postupu DevOps nebo DataOps. Proces zřizování nevyžaduje ruční konfiguraci clusteru, nevyžaduje zásah člověka a je snadné ho nastavit.
Automatizované zřizování můžete použít k nasazení předkonfigurovaného clusteru s daty v rámci kanálu kontinuální integrace a průběžného doručování (CI/CD). Mezi klíčové výhody, které je potřeba udělat, patří:
- Definujte a udržujte více prostředí.
- Sledujte nasazení ve správě zdrojového kódu.
- Snadněji se vraťte k předchozím verzím.
- Usnadnění automatizovaného testování zřízením vyhrazených testovacích prostředí
Tento článek obsahuje přehled různých mechanismů pro automatizaci zřizování prostředí Azure Data Exploreru, včetně infrastruktury, entit schémat a příjmu dat. Poskytuje také odkazy na různé nástroje a techniky používané k automatizaci procesu zřizování.
Nasazení infrastruktury
Nasazení infrastruktury se týká nasazení prostředků Azure, včetně clusterů, databází a datových připojení. Existuje několik různých typů nasazení infrastruktury, mezi které patří:
Šablony ARM a skripty Terraformu jsou dva hlavní a deklarativní způsoby nasazení infrastruktury Azure Data Exploreru.
Nasazení šablony ARM
Šablony ARM jsou soubory JSON nebo Bicep , které definují infrastrukturu a konfiguraci nasazení. Šablony můžete použít k nasazení clusterů, databází, datových připojení a mnoha dalších komponent infrastruktury. Další informace najdete v tématu Vytvoření clusteru a databáze Azure Data Exploreru pomocí šablony Azure Resource Manageru.
Šablony ARM můžete použít také k nasazení skriptů příkazů, které vám pomůžou vytvořit schéma databáze a definovat zásady. Další informace naleznete v tématu Konfigurace databáze pomocí dotazovací jazyk Kusto skriptu.
Další ukázkové šablony najdete na webu Šablony pro rychlý start Azure.
Nasazení Terraformu
Terraform je opensourcový softwarový nástroj typu infrastruktura jako kód. Poskytuje konzistentní pracovní postup rozhraní příkazového řádku pro správu cloudových služeb. Terraform kodifikuje cloudová rozhraní API do deklarativních konfiguračních souborů.
Terraform nabízí stejné funkce jako šablony ARM. Terraform můžete použít k nasazení clusterů, databází, datových připojení a dalších komponent infrastruktury.
Terraform můžete použít také k nasazení skriptů příkazů, které vám pomůžou vytvořit schéma databáze a definovat zásady.
Imperativní nasazení
Infrastrukturu můžete nasadit imperativním způsobem pomocí kterékoli z podporovaných platforem:
- Azure CLI
- PowerShell
- Sady SDK
Nasazení entit schématu
Zřizování entit schématu se týká nasazení tabulek, funkcí, zásad a oprávnění. Entity můžete vytvářet nebo aktualizovat spuštěním skriptů, které se skládají z příkazů pro správu.
Nasazení entit schématu můžete automatizovat pomocí následujících metod:
- Šablony ARM
- Skripty Terraformu
- Rozhraní příkazového řádku Kusto
- Sady SDK
- Nářadí
- Synchronizovat Kusto. Pomocí tohoto interaktivního vývojářského nástroje extrahujte schéma databáze nebo skript příkazu pro správu. Pak můžete použít skript příkazu extrahovaného obsahu pro automatické nasazení.
- Delta Kusto: Vyvolání tohoto nástroje v kanálu CI/CD Může porovnat dva zdroje, například schéma databáze nebo skript příkazu pro správu, a vypočítat rozdílový skript příkazu pro správu. Pak můžete použít skript příkazu extrahovaného obsahu pro automatické nasazení.
- Úloha Azure DevOps pro Azure Data Explorer
Ingestace dat
Někdy chcete ingestovat data do clusteru. Můžete například chtít ingestovat data ke spuštění testů nebo opětovnému vytvoření prostředí. K ingestování dat můžete použít následující metody:
- Sady SDK
- LightIngest CLI tool
- Aktivace kanálu Azure Data Factory
Příklad nasazení s využitím kanálu CI/CD
V následujícím příkladu použijete kanál CI/CD Azure DevOps, který spouští nástroje pro automatizaci nasazení infrastruktury, entit schématu a dat. Toto je jeden z příkladů kanálu, který používá určitou sadu nástrojů, ale můžete použít jiné nástroje a kroky. V produkčním prostředí můžete například chtít vytvořit kanál, který neingestuje data. Do kanálu můžete také přidat další kroky, například spuštění automatizovaných testů na vytvořeném clusteru.
Tady použijete následující nástroje:
| Typ nasazení | Nástroj | Úloha |
|---|---|---|
| Infrastruktura | Šablony ARM | Vytvoření clusteru a databáze |
| Entity schématu | Rozhraní příkazového řádku Kusto | Vytvoření tabulek v databázi |
| Data | LightIngest | Ingestování dat do jedné tabulky |
Pomocí následujícího postupu vytvořte kanál.
Krok 1: Vytvoření připojení služby
Definujte připojení služby typu Azure Resource Manager. Nasměrujte připojení k předplatnému a skupině prostředků, do které chcete cluster nasadit. Vytvoří se instanční objekt Azure a použijete ho k nasazení šablony ARM. Stejný objekt zabezpečení můžete použít k nasazení entit schématu a ingestování dat. Přihlašovací údaje musíte explicitně předat nástroji Kusto CLI a LightIngest.
Krok 2: Vytvoření kanálu
Definujte kanál (deploy-environ), který použijete k nasazení clusteru, vytvoření entit schématu a ingestování dat.
Než budete moct kanál použít, musíte vytvořit následující tajné proměnné:
| Název proměnné | Popis |
|---|---|
clusterName |
Název clusteru Azure Data Exploreru |
serviceConnection |
Název připojení Azure DevOps, které se používá k nasazení šablony ARM. |
appId |
ID klienta instančního objektu použitého k interakci s clusterem. |
appSecret |
Tajný kód instančního objektu. |
appTenantId |
ID tenanta instančního objektu. |
location |
Oblast Azure, do které nasadíte cluster. Například eastus. |
resources:
- repo: self
stages:
- stage: deploy_cluster
displayName: Deploy cluster
variables: []
clusterName: specifyClusterName
serviceConnection: specifyServiceConnection
appId: specifyAppId
appSecret: specifyAppSecret
appTenantId: specifyAppTenantId
location: specifyLocation
jobs:
- job: e2e_deploy
pool:
vmImage: windows-latest
variables: []
steps:
- bash: |
nuget install Microsoft.Azure.Kusto.Tools -Version 5.3.1
# Rename the folder (including the most recent version)
mv Microsoft.Azure.Kusto.Tools.* kusto.tools
displayName: Download required Kusto.Tools Nuget package
- task: AzureResourceManagerTemplateDeployment@3
displayName: Deploy Infrastructure
inputs:
deploymentScope: 'Resource Group'
# subscriptionId and resourceGroupName are specified in the serviceConnection
azureResourceManagerConnection: $(serviceConnection)
action: 'Create Or Update Resource Group'
location: $(location)
templateLocation: 'Linked artifact'
csmFile: deploy-infra.json
overrideParameters: "-clusterName $(clusterName)"
deploymentMode: 'Incremental'
- bash: |
# Define connection string to cluster's database, including service principal's credentials
connectionString="https://$(clusterName).$(location).kusto.windows.net/myDatabase;Fed=true;AppClientId=$(appId);AppKey=$(appSecret);TenantId=$(appTenantId)"
# Execute a KQL script against the database
kusto.tools/tools/Kusto.Cli $connectionString -script:MyDatabase.kql
displayName: Create Schema Entities
- bash: |
connectionString="https://ingest-$(CLUSTERNAME).$(location).kusto.windows.net/;Fed=true;AppClientId=$(appId);AppKey=$(appSecret);TenantId=$(appTenantId)"
kusto.tools/tools/LightIngest $connectionString -table:Customer -sourcePath:customers.csv -db:myDatabase -format:csv -ignoreFirst:true
displayName: Ingest Data
Krok 3: Vytvoření šablony ARM pro nasazení clusteru
Definujte šablonu ARM (deploy-infra.json), kterou použijete k nasazení clusteru do vašeho předplatného a skupiny prostředků.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"clusterName": {
"type": "string",
"minLength": 5
}
},
"variables": {
},
"resources": [
{
"name": "[parameters('clusterName')]",
"type": "Microsoft.Kusto/clusters",
"apiVersion": "2021-01-01",
"location": "[resourceGroup().location]",
"sku": {
"name": "Dev(No SLA)_Standard_E2a_v4",
"tier": "Basic",
"capacity": 1
},
"resources": [
{
"name": "myDatabase",
"type": "databases",
"apiVersion": "2021-01-01",
"location": "[resourceGroup().location]",
"dependsOn": [
"[resourceId('Microsoft.Kusto/clusters', parameters('clusterName'))]"
],
"kind": "ReadWrite",
"properties": {
"softDeletePeriodInDays": 365,
"hotCachePeriodInDays": 31
}
}
]
}
]
}
Krok 4: Vytvoření skriptu KQL pro vytvoření entit schématu
Definujte skript KQL (MyDatabase.kql), který použijete k vytvoření tabulek v databázích.
.create table Customer(CustomerName:string, CustomerAddress:string)
// Set the ingestion batching policy to trigger ingestion quickly
// This is to speedup reaction time for the sample
// Do not do this in production
.alter table Customer policy ingestionbatching @'{"MaximumBatchingTimeSpan":"00:00:10", "MaximumNumberOfItems": 500, "MaximumRawDataSizeMB": 1024}'
.create table CustomerLogs(CustomerName:string, Log:string)
Krok 5: Vytvoření skriptu KQL pro příjem dat
Vytvořte datový soubor CSV (customer.csv) pro příjem.
customerName,customerAddress
Contoso Ltd,Paris
Datum Corporation,Seattle
Fabrikam,NYC
Cluster vytvoříte pomocí přihlašovacích údajů instančního objektu, které jste zadali v kanálu. Pokud chcete uživatelům udělit oprávnění, postupujte podle pokynů v tématu Správa oprávnění databáze Azure Data Exploreru.
Nasazení můžete ověřit spuštěním dotazu na tabulku Zákazník . Měly by se zobrazit tři záznamy importované ze souboru CSV.
Související obsah
- Vytvořte cluster a databázi pomocí šablony Azure Resource Manageru.
- Konfigurace databáze pomocí skriptu KQL