Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Otomatik sağlama, Azure Veri Gezgini kümenizi çalıştırmak için ihtiyacınız olan kaynakları hızla dağıtmaya ve yapılandırmaya yönelik bir işlemdir. DevOps veya DataOps iş akışının kritik bir parçasıdır. Sağlama işlemi, kümeyi el ile yapılandırmanızı gerektirmez, insan müdahalesi gerektirmez ve kurulumu kolaydır.
Sürekli tümleştirme ve sürekli teslim (CI/CD) işlem hattının bir parçası olarak verilerle önceden yapılandırılmış bir küme dağıtmak için otomatik sağlamayı kullanabilirsiniz. Bunu yapmanın temel avantajlarından bazıları şunlardır:
- Birden çok ortam tanımlayın ve koruyun.
- Dağıtımları kaynak denetiminde takip edin.
- Önceki sürümlere daha kolay geri dönün.
- Ayrılmış test ortamları sağlayarak otomatik testi kolaylaştırma.
Bu makalede altyapı, şema varlıkları ve veri alımı gibi Azure Veri Gezgini ortamlarının sağlanmasını otomatikleştirmeye yönelik farklı mekanizmalara genel bir bakış sağlanmaktadır. Ayrıca, sağlama sürecini otomatikleştirmek için kullanılan farklı araçlara ve tekniklere başvurular sağlar.
Altyapı dağıtımı
Altyapı dağıtımı, kümeler, veritabanları ve veri bağlantıları gibi Azure kaynaklarının dağıtımıyla ilgilidir. Aşağıdakiler de dahil olmak üzere birkaç farklı altyapı dağıtımı türü vardır:
ARM şablonları ve Terraform betikleri, Azure Veri Gezgini altyapısını dağıtmanın iki ana, bildirim temelli yoludır.
ARM şablonu dağıtımı
ARM şablonları, bir dağıtımın altyapısını ve yapılandırmasını tanımlayan JSON veya Bicep dosyalarıdır. Kümeleri, veritabanlarını, veri bağlantılarını ve diğer birçok altyapı bileşenini dağıtmak için şablonları kullanabilirsiniz. Daha fazla bilgi için bkz. Azure Resource Manager şablonu kullanarak Azure Veri Gezgini kümesi ve veritabanı oluşturma.
Veritabanı şeması oluşturmanıza ve ilkeleri tanımlamanıza yardımcı olan komut betiklerini dağıtmak için ARM şablonlarını da kullanabilirsiniz. Daha fazla bilgi için bkz. Kusto Sorgu Dili betiği kullanarak veritabanı yapılandırma.
Azure Hızlı Başlangıç Şablonları sitesinde daha fazla örnek şablon bulabilirsiniz.
Terraform dağıtımı
Terraform, açık kaynak kod olarak altyapı yazılım aracıdır. Bulut hizmetlerini yönetmek için tutarlı bir CLI iş akışı sağlar. Terraform, bulut API'lerini bildirim temelli yapılandırma dosyaları olarak birleştirir.
Terraform, ARM şablonlarıyla aynı özellikleri sunar. Terraform'ı kullanarak kümeleri, veritabanlarını, veri bağlantılarını ve diğer altyapı bileşenlerini dağıtabilirsiniz.
Terraform'u, veritabanı şeması oluşturmanıza ve ilkeleri tanımlamanıza yardımcı olan komut betiklerini dağıtmak için de kullanabilirsiniz.
Kesinlik temelli dağıtım
Desteklenen platformlardan herhangi birini kullanarak altyapıyı kesin olarak dağıtabilirsiniz:
Şema varlıklarını dağıtma
Şema varlıkları sağlama, tabloları, işlevleri, ilkeleri ve izinleri dağıtmayla ilgili. Yönetim komutlarından oluşan betikleri çalıştırarak varlık oluşturabilir veya güncelleştirebilirsiniz.
Aşağıdaki yöntemleri kullanarak şema varlıkları dağıtımını otomatikleştirebilirsiniz:
- ARM şablonları
- Terraform betikleri
- Kusto CLI
- SDK'lar
- Araçları
- Kusto'yi eşitleyin. Veritabanı şemasını veya yönetim komut betiğini ayıklamak için bu etkileşimli geliştirici aracını kullanın. Ardından, otomatik dağıtım için ayıklanan içerik komut betiğini kullanabilirsiniz.
- Delta Kusto: Ci/CD işlem hattında bu aracı çağır. Veritabanı şeması veya yönetim komut betiği gibi iki kaynağı karşılaştırabilir ve delta yönetimi komut betiğini hesaplayabilir. Ardından, otomatik dağıtım için ayıklanan içerik komut betiğini kullanabilirsiniz.
- Azure Veri Gezgini için Azure DevOps görevi.
Verileri alma
Bazen verileri kümenize almak istersiniz. Örneğin, testleri çalıştırmak veya bir ortamı yeniden oluşturmak için verileri almak isteyebilirsiniz. Verileri almak için aşağıdaki yöntemleri kullanabilirsiniz:
- SDK'lar
- En Açık CLI aracı
- Azure Data Factory işlem hattını tetikleme
CI/CD işlem hattı kullanan örnek dağıtım
Aşağıdaki örnekte altyapı, şema varlıkları ve verilerin dağıtımını otomatikleştirmek için araçlar çalıştıran bir Azure DevOps CI/CD işlem hattı kullanırsınız. Bu, belirli bir araç kümesini kullanan bir işlem hattı örneğidir, ancak diğer araçları ve adımları kullanabilirsiniz. Örneğin, bir üretim ortamında veri almayan bir işlem hattı oluşturmak isteyebilirsiniz. Oluşturulan kümede otomatikleştirilmiş testler çalıştırma gibi işlem hattına başka adımlar da ekleyebilirsiniz.
Burada aşağıdaki araçları kullanırsınız:
| Dağıtım türü | Araç | Görev |
|---|---|---|
| Altyapı | ARM şablonları | Küme ve veritabanı oluşturma |
| Şema varlıkları | Kusto CLI | Veritabanında tablo oluşturma |
| Veri | LightIngest | Verileri tek bir tabloya alma |
İşlem hattı oluşturmak için aşağıdaki adımları kullanın.
1. Adım: Hizmet bağlantısı oluşturma
Azure Resource Manager türünde bir hizmet bağlantısı tanımlayın. Kümenizi dağıtmak istediğiniz aboneliğe ve kaynak grubuna bağlantıyı işaret edin. Bir Azure hizmet sorumlusu oluşturulur ve ARM şablonunu dağıtmak için bunu kullanırsınız. Şema varlıklarını dağıtmak ve verileri almak için aynı sorumluyu kullanabilirsiniz. Kimlik bilgilerini Kusto CLI ve LightIngest araçlarına açıkça geçirmeniz gerekir.
2. Adım: İşlem hattı oluşturma
Kümeyi dağıtmak, şema varlıkları oluşturmak ve verileri almak için kullanacağınız işlem hattını (deploy-environ) tanımlayın.
İşlem hattını kullanabilmeniz için önce aşağıdaki gizli dizi değişkenlerini oluşturmanız gerekir:
| Değişken adı | Açıklama |
|---|---|
clusterName |
Azure Veri Gezgini kümesinin adı. |
serviceConnection |
ARM şablonunu dağıtmak için kullanılan Azure DevOps bağlantısının adı. |
appId |
Kümeyle etkileşime geçmek için kullanılan hizmet sorumlusunun istemci kimliği. |
appSecret |
Hizmet sorumlusunun gizli dizisi. |
appTenantId |
Hizmet sorumlusunun kiracı kimliği. |
location |
Kümeyi dağıtabileceğiniz Azure bölgesi. Örneğin, 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
3. Adım: Kümeyi dağıtmak için ARM şablonu oluşturma
Kümeyi aboneliğinize ve kaynak grubunuz için dağıtmak için kullanacağınız ARM şablonunu (deploy-infra.json) tanımlayın.
{
"$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
}
}
]
}
]
}
4. Adım: Şema varlıklarını oluşturmak için KQL betiği oluşturma
Veritabanlarında tablo oluşturmak için kullanacağınız KQL betiğini (MyDatabase.kql) tanımlayın.
.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)
5. Adım: Verileri almak için KQL betiği oluşturma
Almak için CSV veri dosyasını (customer.csv) oluşturun.
customerName,customerAddress
Contoso Ltd,Paris
Datum Corporation,Seattle
Fabrikam,NYC
kümeyi, işlem hattında belirttiğiniz hizmet sorumlusu kimlik bilgilerini kullanarak oluşturursunuz. Kullanıcılarınıza izin vermek için Azure Veri Gezgini veritabanı izinlerini yönetme makalesindeki adımları izleyin.
Customer tablosunda bir sorgu çalıştırarak dağıtımı doğrulayabilirsiniz. CSV dosyasından içeri aktarılan üç kaydı görmeniz gerekir.
İlgili içerik
- Azure Resource Manager şablonu kullanarak küme ve veritabanı oluşturun.
- KQL betiği kullanarak veritabanı yapılandırma