Elastik işleri keşfetme

Tamamlandı

Birçok DTA'nın Azure Otomasyonu bu kadar tanıdık olmasının nedenlerinden biri, Azure SQL Veritabanı başlangıçta zamanlanmış işler için yetenek eksikliği olmasıdır.

Elastik işler özelliği, bir sunucu veya veritabanı koleksiyonunda tek seferlik bir iş olarak veya tanımlı bir zamanlama kullanarak bir dizi T-SQL betiği çalıştırmanıza olanak tanır. Elastik işler, T-SQL yürütmeyle sınırlı olmaları dışında SQL Server Aracısı işlerine benzer şekilde çalışır. İşler Azure SQL Veritabanı tüm katmanlarında çalışır. SQL Aracısı işleri SQL Server'da görev otomasyonu için kullanılmaya devam eder ve Azure SQL Yönetilen Örneği'lere de eklenir.

Screenshot of the elastic job architecture diagram.

Elastik İşleri yapılandırmak için, işlerinizi yönetmeye ayrılmış bir İş aracısı ve veritabanı gerekir. İş veritabanı için önerilen hizmet katmanı S1 veya üzeridir ve en uygun hizmet katmanı, yürüttüğüniz iş sayısına ve bu işlerin sıklığına bağlıdır.

Şimdi elastik iş bileşenlerini gözden geçirelim:

  • Elastik İş aracısı : İşleri çalıştırmak ve yönetmek için Azure kaynağınız.
  • İş veritabanı - İşlerinizi yönetmek için ayrılmış bir veritabanı.
  • Hedef grup : bir işin çalıştırılacağı sunucuların, elastik havuzların ve tek veritabanlarının koleksiyonu.
  • İş - bir iş adımı oluşturan bir veya daha fazla T-SQL betik.

Hedef bir sunucu veya elastik havuzsa, iş aracısının içindeki veritabanlarını numaralandırabilmesi için sunucunun veya havuzun ana veritabanında bir kimlik bilgisi oluşturulmalıdır. Tek bir veritabanı için gereken tek şey veritabanı kimlik bilgileridir. Kimlik bilgileri iş adımını gerçekleştirmek için gerekli olan en düşük ayrıcalıklara sahip olmalıdır.

Screenshot of the elastic job agent creation page.

Azure portalı aracılığıyla elastik iş aracısı oluşturabilirsiniz. Elastik İş aracısı sayfasında, aracınız için bir ad sağladığınızdan emin olun ve iş veritabanınız için bir SQL veritabanı belirtin.

PowerShell veya T-SQL kullanarak bir hedef grup oluşturabilirsiniz. Aşağıdaki kod parçacığı, yürütme sırasında sunucuda bulunan tüm veritabanlarını içeren MyServerGroup hedef grubunu oluşturur. Bu kod alıntısı, değişkenin ve değişkenin $jobAgent$targetServerName daha önce sağlandığını varsayar.

# create MyServerGroup target group
$serverGroup = $jobAgent | New-AzSqlElasticJobTargetGroup -Name 'MyServerGroup'

$serverGroup | Add-AzSqlElasticJobTarget -ServerName $targetServerName -RefreshCredentialName $masterCred.CredentialName

Aşağıdaki kodda esnek bir iş oluşturulur ve PowerShell kullanarak iş adımları eklenir. Step1, varsa MyTable tablosunu oluşturmakla sorumludur.

Write-Output "Creating a new job..."
$jobName = "MyFirstElasticJob"
$job = $jobAgent | New-AzSqlElasticJob -Name $jobName -RunOnce

Write-Output "Creating job steps for $($jobName) job..."
$sqlText1 = "IF NOT EXISTS (SELECT * FROM sys.tables WHERE object_id = object_id('MyTable')) CREATE TABLE [dbo].[MyTable]([Id] [int] NOT NULL);"

$job | Add-AzSqlElasticJobStep -Name "Step1" -TargetGroupName $serverGroup.TargetGroupName -CredentialName $jobCred.CredentialName -CommandText $sqlText1

Yukarıda da görebileceğiniz gibi, elastik işler tarafından yürütülen T-SQL betikleri bir kez etkili olmalıdır, yani iş yanlışlıkla veya iş hatası nedeniyle birden çok kez çalıştırılırsa iş başarısız olmaz veya istenmeyen sonuçlar üretmez. Aynı betiği hatasız olarak birden çok kez çalıştırabilmeniz gerekir.

Son olarak, PowerShell kullanarak MyFirstElasticJob elastik işini çalıştırın.

Write-Output "Start the job..."
$jobExecution = $job | Start-AzSqlElasticJob
$jobExecution

Kullanım örneği senaryoları

Elastik işler aşağıdaki senaryolarda kullanılabilir:

  • Yönetim görevlerini belirli bir zamanlamaya göre çalışacak şekilde otomatikleştirme
  • Şema değişikliklerini dağıtma
  • Veri taşıma işlemleri
  • Raporlama veya başka amaçlarla veri toplama ve toplama
  • Azure Blob depolamadan veri yükleme
  • İşleri, yoğun olmayan saatlerde olduğu gibi yinelenen bir veritabanı koleksiyonunda yürütülecek şekilde yapılandırma
  • Telemetri koleksiyonu gibi çok sayıda veritabanı üzerinde veri işleme. Sonuçlar daha sonra daha fazla analiz için tek bir hedef tabloda derlenir.