Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Provisi otomatis adalah proses untuk menyebarkan dan mengonfigurasi sumber daya yang Anda butuhkan untuk menjalankan kluster Azure Data Explorer Anda dengan cepat. Ini adalah bagian penting dari alur kerja DevOps atau DataOps. Proses provisi tidak mengharuskan Anda untuk mengonfigurasi kluster secara manual, tidak memerlukan intervensi manusia, dan mudah disiapkan.
Anda dapat menggunakan provisi otomatis untuk menyebarkan kluster yang telah dikonfigurasi sebelumnya dengan data, sebagai bagian dari alur integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD). Beberapa manfaat utama dari melakukannya termasuk kemampuan untuk:
- Tentukan dan pertahankan beberapa lingkungan.
- Lacak penyebaran dalam kontrol sumber.
- Lebih mudah kembali ke versi sebelumnya.
- Memfasilitasi pengujian otomatis dengan menyediakan lingkungan pengujian khusus.
Artikel ini memberikan gambaran umum tentang berbagai mekanisme untuk mengotomatiskan provisi lingkungan Azure Data Explorer, termasuk infrastruktur, entitas skema, dan penyerapan data. Ini juga memberikan referensi ke berbagai alat dan teknik yang digunakan untuk mengotomatiskan proses provisi.
Menyebarkan infrastruktur
Penyebaran infrastruktur berkaitan dengan penyebaran sumber daya Azure, termasuk kluster, database, dan koneksi data. Ada beberapa jenis penyebaran infrastruktur yang berbeda, termasuk:
Templat ARM dan skrip Terraform adalah dua cara utama dan deklaratif untuk menyebarkan infrastruktur Azure Data Explorer.
Penyebaran templat ARM
Templat ARM adalah file JSON atau Bicep yang menentukan infrastruktur dan konfigurasi penyebaran. Anda dapat menggunakan templat untuk menyebarkan kluster, database, koneksi data, dan banyak komponen infrastruktur lainnya. Untuk informasi selengkapnya, lihat Membuat kluster dan database Azure Data Explorer dengan menggunakan templat Azure Resource Manager.
Anda juga dapat menggunakan templat ARM untuk menyebarkan skrip perintah, yang membantu Anda membuat skema database dan menentukan kebijakan. Untuk informasi selengkapnya, lihat Mengonfigurasi database dengan menggunakan skrip Bahasa Kueri Kusto.
Anda dapat menemukan contoh templat lainnya di situs Templat Mulai Cepat Azure.
Penyebaran Terraform
Terraform adalah alat perangkat lunak infrastruktur sebagai kode sumber terbuka. Ini menyediakan alur kerja CLI yang konsisten untuk mengelola layanan cloud. Terraform mengkodifikasi API cloud ke dalam file konfigurasi deklaratif.
Terraform menawarkan kemampuan yang sama dengan templat ARM. Anda dapat menggunakan Terraform untuk menyebarkan kluster, database, koneksi data, dan komponen infrastruktur lainnya.
Anda juga dapat menggunakan Terraform untuk menyebarkan skrip perintah, yang membantu Anda membuat skema database dan menentukan kebijakan.
Penyebaran imperatif
Anda juga dapat menyebarkan infrastruktur secara imperatif, dengan menggunakan salah satu platform yang didukung:
Menyebarkan entitas skema
Penyediaan entitas skema berkaitan dengan penyebaran tabel, fungsi, kebijakan, dan izin. Anda dapat membuat atau memperbarui entitas dengan menjalankan skrip yang terdiri dari perintah manajemen.
Anda dapat mengotomatiskan penyebaran entitas skema dengan menggunakan metode berikut:
- Templat ARM
- Skrip terraform
- Kusto CLI
- SDK
- Alat
- Sinkronkan Kusto. Gunakan alat pengembang interaktif ini untuk mengekstrak skema database atau skrip perintah manajemen. Anda kemudian dapat menggunakan skrip perintah konten yang diekstrak untuk penyebaran otomatis.
- Delta Kusto: Panggil alat ini dalam alur CI/CD. Ini dapat membandingkan dua sumber, seperti skema database atau skrip perintah manajemen, dan menghitung skrip perintah manajemen delta. Anda kemudian dapat menggunakan skrip perintah konten yang diekstrak untuk penyebaran otomatis.
- Tugas Azure DevOps untuk Azure Data Explorer.
Menyerap data
Terkadang Anda ingin menyerap data ke dalam kluster Anda. Misalnya, Anda mungkin ingin menyerap data untuk menjalankan pengujian atau membuat ulang lingkungan. Anda dapat menggunakan metode berikut untuk menyerap data:
- SDK
- Alat LightIngest CLI
- Memicu alur Azure Data Factory
Contoh penyebaran menggunakan alur CI/CD
Dalam contoh berikut, Anda menggunakan alur CI/CD Azure DevOps yang menjalankan alat untuk mengotomatiskan penyebaran infrastruktur, entitas skema, dan data. Ini adalah salah satu contoh alur yang menggunakan sekumpulan alat tertentu, tetapi Anda dapat menggunakan alat dan langkah lain. Misalnya, di lingkungan produksi, Anda mungkin ingin membuat alur yang tidak menyerap data. Anda juga dapat menambahkan langkah-langkah lebih lanjut ke alur, seperti menjalankan pengujian otomatis pada kluster yang dibuat.
Di sini, Anda menggunakan alat berikut:
| Jenis penyebaran | Alat | Tugas |
|---|---|---|
| Infrastruktur | Templat ARM | Membuat kluster dan database |
| Entitas skema | Kusto CLI | Membuat tabel dalam database |
| Data | LightIngest | Menyerap data ke dalam satu tabel |
Gunakan langkah-langkah berikut untuk membuat alur.
Langkah 1: Membuat koneksi layanan
Tentukan koneksi layanan jenis Azure Resource Manager. Arahkan koneksi ke grup langganan dan sumber daya tempat Anda ingin menyebarkan kluster. Perwakilan layanan Azure dibuat, dan Anda menggunakannya untuk menyebarkan templat ARM. Anda dapat menggunakan prinsipal yang sama untuk menyebarkan entitas skema dan menyerap data. Anda harus secara eksplisit meneruskan kredensial ke alat Kusto CLI dan LightIngest.
Langkah 2: Membuat alur
Tentukan alur (deploy-environ) yang akan Anda gunakan untuk menyebarkan kluster, membuat entitas skema, dan menyerap data.
Sebelum dapat menggunakan alur, Anda harus membuat variabel rahasia berikut:
| Nama variabel | Deskripsi |
|---|---|
clusterName |
Nama kluster Azure Data Explorer. |
serviceConnection |
Nama koneksi Azure DevOps yang digunakan untuk menyebarkan templat ARM. |
appId |
ID klien dari perwakilan layanan yang digunakan untuk berinteraksi dengan kluster. |
appSecret |
Rahasia perwakilan layanan. |
appTenantId |
ID penyewa dari perwakilan layanan. |
location |
Wilayah Azure tempat Anda akan menyebarkan kluster. Contohnya,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
Langkah 3: Buat templat ARM untuk menyebarkan kluster
Tentukan templat ARM (deploy-infra.json) yang akan Anda gunakan untuk menyebarkan kluster ke grup langganan dan sumber daya Anda.
{
"$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
}
}
]
}
]
}
Langkah 4: Buat skrip KQL untuk membuat entitas skema
Tentukan skrip KQL (MyDatabase.kql) yang akan Anda gunakan untuk membuat tabel dalam database.
.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)
Langkah 5: Membuat skrip KQL untuk menyerap data
Buat file data CSV (customer.csv) untuk diserap.
customerName,customerAddress
Contoso Ltd,Paris
Datum Corporation,Seattle
Fabrikam,NYC
Anda membuat kluster dengan menggunakan kredensial perwakilan layanan yang Anda tentukan dalam alur. Untuk memberikan izin kepada pengguna Anda, ikuti langkah-langkah dalam Mengelola izin database Azure Data Explorer.
Anda dapat memverifikasi penyebaran dengan menjalankan kueri terhadap tabel Pelanggan . Anda akan melihat tiga rekaman yang diimpor dari file CSV.
Konten terkait
- Buat kluster dan database dengan menggunakan templat Azure Resource Manager.
- Mengonfigurasi database dengan menggunakan skrip KQL