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.
Bu başvuru mimarisi uçtan uca akış işleme işlem hattını gösterir. Bu işlem hattının dört aşaması alma, işleme, depolama ve analiz etme ve raporlama aşamalarını içerir. Bu başvuru mimarisi için işlem hattı iki kaynaktan veri alır, her akıştan ilgili kayıtlarda birleştirme gerçekleştirir, sonucu zenginleştirir ve gerçek zamanlı olarak bir ortalama hesaplar. Sonuçlar daha sonra daha fazla analiz için depolanır.
Mimari
Bu mimarinin Visio dosyasını indirin.
Veri akışı
Aşağıdaki veri akışı önceki diyagrama karşılık gelir:
Ingest
İki gerçek zamanlı operasyonel veri akışı sistemi besler: ücret verileri ve seyahat verileri. Taksilere yüklenen cihazlar veri kaynakları görevi görür ve olayları Azure Event Hubs'a yayımlar. Her bir veri akışı, bağımsız veri alım yolları sağlayan kendi olay hub'ı örneğine gider.
İşlem
Azure Databricks hem Event Hubs akışlarını kullanır hem de aşağıdaki işlemleri çalıştırır:
- Seyahat kayıtlarıyla ücret kayıtlarını ilişkilendirir
- Azure Databricks Dosya Sistemi'nde depolanan mahalle arama verilerini içeren üçüncü bir veri kümesini kullanarak verileri zenginleştirir
Bu işlem, aşağı akış analizi ve depolama için uygun birleşik, zenginleştirilmiş bir veri kümesi oluşturur.
Mağaza
Azure Databricks işlerinin çıktısı bir dizi kayıttır. İşlenen kayıtlar NoSQL için Azure Cosmos DB'ye yazılır.
Analiz/rapor
Doku, işlem performansını etkilemeden analiz sorgularını etkinleştirmek için NoSQL için Azure Cosmos DB'den işletimsel verileri yansıtır . Bu yaklaşım analiz için ETL olmayan bir yol sağlar. Bu mimaride yansıtmayı aşağıdaki amaçlarla kullanabilirsiniz:
- Azure Cosmos DB verilerini (veya Delta biçimli verileri) Doku'ya yansıtma
- Veri kümelerini işletim sistemiyle eşitlenmiş durumda tutma
- Aşağıdaki araçlar aracılığıyla analizi etkinleştirin:
- Göl evleri ve ambarlar için Doku SQL analizi uç noktaları
- Apache Spark defterleri
- Zaman serisi ve günlük stili araştırma için Kusto Sorgu Dili(KQL) kullanarak gerçek zamanlı analiz
Monitör
Azure İzleyici, Azure Databricks işlem hattından telemetri toplar. Log Analytics çalışma alanı, uygulama günlüklerini ve ölçümlerini depolar. Aşağıdaki eylemleri gerçekleştirebilirsiniz:
- İşlem günlüklerini sorgulama
- Ölçümleri görselleştirme
- Hataları, anomalileri ve performans sorunlarını inceleme
- Gösterge panelleri oluşturma
Components
Azure Databricks, Azure platformu için iyileştirilmiş Spark tabanlı bir analiz platformudur. Bu mimaride Azure Databricks işleri taksi yolculuğu ve ücret verilerini zenginleştirir ve sonuçları Azure Cosmos DB'de depolar.
Event Hubs, büyük miktarlardaki olayları işlemek için ölçeklenebilen yönetilen, dağıtılmış bir toplama hizmetidir. Bu mimaride taksilerden veri almak için iki olay hub'ı örneği kullanılır.
NoSQL için Azure Cosmos DB , yönetilen, çok modelli bir veritabanı hizmetidir. Bu mimaride, sistem Azure Databricks zenginleştirme işlemlerinin çıktılarını depolar. Doku, analiz sorgularını etkinleştirmek için Azure Cosmos DB işletimsel verilerini yansıtır .
Log Analytics , Azure İzleyici'de çeşitli kaynaklardan günlük verilerini sorgulamanıza ve çözümlemenize yardımcı olan bir araçtır. Bu mimaride tüm kaynaklar Azure Tanılama'yı platform günlüklerini bu çalışma alanında depolamak için yapılandırıyor. Çalışma alanı ayrıca Azure Databricks işleme işlem hatlarından yayılan Spark iş ölçümleri için veri havuzu görevi görür.
Senaryo ayrıntıları
Bir taksi şirketi her taksi yolculuğu hakkında veri toplar. Bu senaryo için iki ayrı cihazın veri gönderdiğini varsayıyoruz. Takside süre, mesafe, teslim alma ve bırakma konumları dahil olmak üzere her bir yolculuk hakkında bilgi gönderen bir ölçüm vardır. Ayrı bir cihaz müşterilerden gelen ödemeleri kabul eder ve ücretler hakkında veri gönderir. Binicilik eğilimlerini tespit etmek için taksi şirketi, her mahalle için kilometre başına ortalama ipucunu gerçek zamanlı olarak hesaplamak istiyor.
Veri alımı
Bir veri kaynağının benzetimini yapmak için bu başvuru mimarisi New York City taksi veri kümesini kullanır. Bu veri kümesi, 2010'dan 2013'e kadar New York'taki taksi yolculukları hakkındaki verileri içerir. Hem yolculuk hem de ücret verisi kayıtlarını içerir. Yolculuk verileri seyahat süresini, seyahat mesafesini ve teslim alma ve bırakma konumlarını içerir. Ücret verileri, ücret, vergi ve ipucu tutarlarını içerir. Her iki kayıt türündeki alanlar arasında madalyon numarası, hack lisansı ve satıcı kimliği yer alır. Bu üç alanın birleşimi, bir taksi ve bir sürücüyü benzersiz olarak tanımlar. Veriler CSV biçiminde depolanır.
Veri oluşturucu, kayıtları okuyan ve Event Hubs'a gönderen bir .NET Core uygulamasıdır. Oluşturucu, sürüş verilerini JSON biçiminde ve ücret verilerini CSV biçiminde gönderir.
Event Hubs, verileri segmentlere ayırmak için bölümleri kullanır. Bölümler, tüketicinin her okuma verilerini paralel olarak okumasına olanak sağlar. Event Hubs'a veri gönderirken bölüm anahtarını doğrudan belirtebilirsiniz. Aksi takdirde, kayıtlar bölümlere hepsini bir kez deneme biçiminde atanır.
Bu senaryoda, sürüş verileri ve ücret verilerine belirli bir taksi için aynı bölüm kimliği atanmalıdır. Bu atama, Databricks'in iki akışla bağıntılı olduğunda bir paralellik derecesi uygulamasına olanak tanır. Örneğin, sürüş verilerinin n bölümündeki bir kayıt, ücret verilerinin n bölümündeki bir kayıtla eşleşir.
Bu mimarinin Visio dosyasını indirin.
Veri oluşturucuda, her iki kayıt türünün ortak veri modelinin , ve birleştirmesi PartitionKeyolan bir Medallion özelliği HackLicensevardır. VendorId
public abstract class TaxiData
{
public TaxiData()
{
}
[JsonProperty]
public long Medallion { get; set; }
[JsonProperty]
public long HackLicense { get; set; }
[JsonProperty]
public string VendorId { get; set; }
[JsonProperty]
public DateTimeOffset PickupTime { get; set; }
[JsonIgnore]
public string PartitionKey
{
get => $"{Medallion}_{HackLicense}_{VendorId}";
}
Bu özellik, Event Hubs'a veri gönderdiğinde açık bir bölüm anahtarı sağlar.
using (var client = pool.GetObject())
{
return client.Value.SendAsync(new EventData(Encoding.UTF8.GetBytes(
t.GetData(dataFormat))), t.PartitionKey);
}
Event Hubs
Event Hubs'ın aktarım hızı kapasitesi aktarım hızı birimleriyle ölçülür. Otomatik şişirme özelliğini etkinleştirerek bir olay hub'ına otomatik olarak ölçeklendirme yapabilirsiniz. Bu özellik, aktarım hızı birimlerini trafiğe göre otomatik olarak yapılandırılan maksimum değere kadar ölçeklendirir.
Akış işleme
Azure Databricks'te bir iş veri işleme gerçekleştirir. İş bir kümeye atanır ve üzerinde çalışır. İş Java veya Spark not defteriyle yazılmış özel kod olabilir.
Bu başvuru mimarisinde iş, Java ve Scala ile yazılmış sınıfları olan bir Java arşividir. Azure Databricks işi için Java arşivini belirttiğinizde, Azure Databricks kümesi işlem sınıfını belirtir. Burada sınıfının main yöntemi com.microsoft.pnp.TaxiCabReader veri işleme mantığını içerir.
İki olay hub'ı örneğinden akışı okuma
Veri işleme mantığı, iki Azure olay hub'ı örneğinden okumak için Spark yapılandırılmış akışı kullanır:
// Create a token credential using Managed Identity
val credential = new DefaultAzureCredentialBuilder().build()
val rideEventHubOptions = EventHubsConf(rideEventHubEntraIdAuthConnectionString)
.setTokenProvider(EventHubsUtils.buildTokenProvider(..., credential))
.setConsumerGroup(conf.taxiRideConsumerGroup())
.setStartingPosition(EventPosition.fromStartOfStream)
val rideEvents = spark.readStream
.format("eventhubs")
.options(rideEventHubOptions.toMap)
.load
val fareEventHubOptions = EventHubsConf(fareEventHubEntraIdAuthConnectionString)
.setTokenProvider(EventHubsUtils.buildTokenProvider(..., credential))
.setConsumerGroup(conf.taxiFareConsumerGroup())
.setStartingPosition(EventPosition.fromStartOfStream)
val fareEvents = spark.readStream
.format("eventhubs")
.options(fareEventHubOptions.toMap)
.load
Verileri mahalle bilgileriyle zenginleştirme
Sürüş verileri, teslim alma ve bırakma konumlarının enlem ve boylam koordinatlarını içerir. Bu koordinatlar kullanışlıdır ancak analiz için kolayca kullanılamaz. İşlem hattı bu verileri bir şekil dosyasından okunan mahalle verileriyle zenginleştirir.
Şekil dosyası biçimi ikilidir ve kolayca ayrıştırılmaz. Ancak GeoTools kitaplığı, şekil dosyası biçimini kullanan jeo-uzamsal veriler için araçlar sağlar. Bu kitaplık sınıfında, teslim alma ve bırakma konumlarının koordinatlarına göre mahalle adını belirlemek için kullanılır com.microsoft.pnp.GeoFinder .
val neighborhoodFinder = (lon: Double, lat: Double) => {
NeighborhoodFinder.getNeighborhood(lon, lat).get()
}
Yolculuk ve ücret verilerine katılın
İlk olarak yolculuk ve ücret verileri dönüştürülür:
val rides = transformedRides
.filter(r => {
if (r.isNullAt(r.fieldIndex("errorMessage"))) {
true
}
else {
malformedRides.add(1)
false
}
})
.select(
$"ride.*",
to_neighborhood($"ride.pickupLon", $"ride.pickupLat")
.as("pickupNeighborhood"),
to_neighborhood($"ride.dropoffLon", $"ride.dropoffLat")
.as("dropoffNeighborhood")
)
.withWatermark("pickupTime", conf.taxiRideWatermarkInterval())
val fares = transformedFares
.filter(r => {
if (r.isNullAt(r.fieldIndex("errorMessage"))) {
true
}
else {
malformedFares.add(1)
false
}
})
.select(
$"fare.*",
$"pickupTime"
)
.withWatermark("pickupTime", conf.taxiFareWatermarkInterval())
Ardından yolculuk verileri, ücret verileriyle birleştirilir:
val mergedTaxiTrip = rides.join(fares, Seq("medallion", "hackLicense", "vendorId", "pickupTime"))
Verileri işleme ve Azure Cosmos DB'ye ekleme
Her mahalle için ortalama ücret tutarı belirli bir zaman aralığı için hesaplanır:
val maxAvgFarePerNeighborhood = mergedTaxiTrip.selectExpr("medallion", "hackLicense", "vendorId", "pickupTime", "rateCode", "storeAndForwardFlag", "dropoffTime", "passengerCount", "tripTimeInSeconds", "tripDistanceInMiles", "pickupLon", "pickupLat", "dropoffLon", "dropoffLat", "paymentType", "fareAmount", "surcharge", "mtaTax", "tipAmount", "tollsAmount", "totalAmount", "pickupNeighborhood", "dropoffNeighborhood")
.groupBy(window($"pickupTime", conf.windowInterval()), $"pickupNeighborhood")
.agg(
count("*").as("rideCount"),
sum($"fareAmount").as("totalFareAmount"),
sum($"tipAmount").as("totalTipAmount"),
(sum($"fareAmount")/count("*")).as("averageFareAmount"),
(sum($"tipAmount")/count("*")).as("averageTipAmount")
)
.select($"window.start", $"window.end", $"pickupNeighborhood", $"rideCount", $"totalFareAmount", $"totalTipAmount", $"averageFareAmount", $"averageTipAmount")
Ardından azure cosmos DB'ye ortalama ücret miktarı eklenir:
maxAvgFarePerNeighborhood
.writeStream
.format("cosmos.oltp")
.option("spark.cosmos.accountEndpoint", "<your-cosmos-endpoint>")
.option("spark.cosmos.accountKey", "<your-cosmos-key>")
.option("spark.cosmos.database", "<your-database-name>")
.option("spark.cosmos.container", "<your-container-name>")
.option("checkpointLocation", "/mnt/checkpoints/maxAvgFarePerNeighborhood")
.outputMode("append")
.start()
.awaitTermination()
Dikkat edilmesi gereken noktalar
Bu önemli noktalar, iş yükünün kalitesini artırmak için kullanabileceğiniz bir dizi yol gösteren ilke olan Azure Well-Architected Framework'ün yapı taşlarını uygular. Daha fazla bilgi için bkz. Well-Architected Framework.
Güvenlik
Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanımına karşı güvence sağlar. Daha fazla bilgi için bkz. Güvenlikiçin tasarım gözden geçirme denetim listesi
Azure Databricks çalışma alanına erişim , yönetici konsolu kullanılarak denetlenmektedir. Yönetici konsolu, kullanıcı ekleme, kullanıcı izinlerini yönetme ve çoklu oturum açma ayarlama işlevleri içerir. Çalışma alanları, kümeler, işler ve tablolar için erişim denetimi de yönetici konsolu aracılığıyla ayarlanabilir.
Gizli bilgileri yönet
Azure Databricks, kimlik bilgilerini depolamak ve bunlara not defterlerinde ve işlerde başvurmak için kullanılan bir gizli dizi deposu içerir. Azure Databricks gizli dizi deposu içindeki kapsamlar bölüm gizli dizileri:
databricks secrets create-scope --scope "azure-databricks-job"
Gizli diziler kapsam düzeyinde eklenir:
databricks secrets put --scope "azure-databricks-job" --key "taxi-ride"
Not
Yerel Azure Databricks kapsamı yerine Azure Key Vault destekli bir kapsam kullanın.
Kod, Azure Databricks gizli yardımcı programları aracılığıyla sırları erişir.
Maliyet İyileştirme
Maliyet İyileştirme, gereksiz giderleri azaltmanın ve operasyonel verimlilikleri iyileştirmenin yollarına odaklanır. Daha fazla bilgi için bkz. Maliyet İyileştirmeiçin tasarım gözden geçirme denetim listesi.
Maliyetleri tahmin etmek için Azure fiyatlandırma hesaplayıcısını kullanın. Bu başvuru mimarisinde kullanılan aşağıdaki hizmetleri göz önünde bulundurun.
Event Hubs maliyetle ilgili dikkat edilmesi gerekenler
Bu başvuru mimarisi, Event Hubs'ı Standart katmanda dağıtır. Fiyatlandırma modeli aktarım hızı birimlerini, giriş olaylarını ve yakalama olaylarını temel alır. Giriş olayı, 64 KB veya daha az olan bir veri birimidir. Daha büyük iletiler 64 KB'ın katları şeklinde faturalandırılır. Aktarım hızı birimlerini Azure portalı veya Event Hubs yönetim API'leri aracılığıyla belirtirsiniz.
Daha fazla bekletme gününe ihtiyacınız varsa Ayrılmış katmanı göz önünde bulundurun. Bu katman, katı gereksinimleri olan tek kiracılı dağıtımlar sağlar. Bu teklif, kapasite birimlerini temel alan bir küme oluşturur ve aktarım hızı birimlerine bağımlı değildir. Standart katman, giriş olayları ve aktarım hızı birimlerine göre de faturalandırılır.
Daha fazla bilgi için bkz. Event Hubs fiyatlandırması.
Azure Databricks maliyetle ilgili dikkat edilmesi gerekenler
Azure Databricks, her ikisi de üç iş yükünü destekleyen Standart katmanı ve Premium katmanını sağlar. Bu başvuru mimarisi, Premium katmanında bir Azure Databricks çalışma alanı dağıtır.
Veri mühendisliği iş yükleri bir iş kümesinde çalıştırılmalıdır. Veri mühendisleri, işleri oluşturmak ve gerçekleştirmek için kümeleri kullanır. Veri analizi iş yükleri çok amaçlı bir kümede çalıştırılmalıdır ve veri bilimcilerinin verileri ve içgörüleri etkileşimli olarak keşfetmesine, görselleştirmesine, işlemesine ve paylaşmasına yöneliktir.
Azure Databricks birden çok fiyatlandırma modeli sağlar.
Kullandıkça öde planı
Seçilen VM örneğine göre kümelerde ve Azure Databricks birimlerinde (DBU) sağlanan sanal makineler (VM) için faturalandırılırsınız. DBU, Azure'ın saniye başına kullanıma göre faturaladığı bir işlem birimidir. DBU tüketimi, Azure Databricks'te çalışan örneğin boyutuna ve türüne bağlıdır. Fiyatlandırma, seçilen iş yüküne ve katmana bağlıdır.
Ön satın alma planı
Kullandıkça öde modeliyle karşılaştırıldığında bu süre boyunca toplam sahip olma maliyetini azaltmak için DBU'ları bir veya üç yıl boyunca Azure Databricks işleme birimi olarak taahhüt edersiniz.
Daha fazla bilgi için bkz. Azure Databricks fiyatlandırması.
Azure Cosmos DB maliyetle ilgili dikkat edilmesi gerekenler
Bu mimaride, Azure Databricks işi Azure Cosmos DB'ye bir dizi kayıt yazar. Saniye başına İstek Birimleri (RU/sn) cinsinden ölçülen, ayırdığınız kapasite için ücretlendirilirsiniz. Bu kapasite ekleme işlemlerini gerçekleştirmek için kullanılır. Faturalama birimi saatte 100 RU/sn'dir. Örneğin, 100 KB öğe yazmanın maliyeti 50 RU/sn'dir.
Yazma işlemleri için saniye başına gereken yazma sayısını desteklemek için yeterli kapasite ayarlayın. Yazma işlemlerini gerçekleştirmeden önce portalı veya Azure CLI'yı kullanarak sağlanan aktarım hızını artırabilir ve ardından bu işlemler tamamlandıktan sonra aktarım hızını azaltabilirsiniz. Yazma dönemi için aktarım hızınız, belirli veriler için gereken en düşük aktarım hızının ve ekleme işlemi için gereken aktarım hızının toplamıdır. Bu hesaplama, çalışan başka bir iş yükü olmadığını varsayar.
Örnek maliyet analizi
Bir kapsayıcıda 1.000 RU/sn aktarım hızı değeri yapılandırıp 30 gün boyunca sürekli olarak çalıştırdığınızı ve bu değerin 720 saate eşit olduğunu varsayalım.
Kapsayıcı, her saat için saatte 100 RU/sn'lik 10 birim olarak faturalandırılır. Saat başına 0,008 ABD doları (saatte 100 RU/sn başına) olan on birim 0,08 ABD doları ücretlendirilir.
720 saat veya 7.200 birim (100 RU)için aylık 57,60 ABD doları faturalandırılırsınız.
Depolama, depolanan verileriniz ve dizininiz için kullanılan her GB için de faturalandırılır. Daha fazla bilgi için bkz . Azure Cosmos DB fiyatlandırma modeli.
İş yükü maliyetinin hızlı bir tahmini için Azure Cosmos DB kapasite hesaplayıcısını kullanın.
Operasyonel Mükemmellik
Operasyonel Mükemmellik, bir uygulamayı dağıtan ve üretimde çalışır durumda tutan operasyon süreçlerini kapsar. Daha fazla bilgi için bkz. operasyonel mükemmellikiçin tasarım gözden geçirme denetim listesi
İzleme
Azure Databricks, Apache Spark'ı temel alır. Hem Azure Databricks hem de Apache Spark, günlüğe kaydetme için standart kitaplık olarak Apache Log4j kullanır. Apache Spark'ın sağladığı varsayılan günlüğe kaydetmeye ek olarak Log Analytics'te günlük kaydı uygulayabilirsiniz. Daha fazla bilgi için bkz . Azure Databricks'i izleme.
com.microsoft.pnp.TaxiCabReader Sınıf, yolculuk ve ücret iletilerini işlerken, ileti hatalı biçimlendirilmiş olabilir ve bu nedenle geçerli olmayabilir. Üretim ortamında, veri kaybını önlemek için hızlı bir şekilde düzeltilmesi için veri kaynaklarıyla ilgili bir sorunu belirlemek için bu hatalı biçimlendirilmiş iletileri analiz etmek önemlidir. sınıfı, com.microsoft.pnp.TaxiCabReader hatalı biçimlendirilmiş ücret kayıtlarının ve sürüş kayıtlarının sayısını izleyen bir Apache Spark Akümülatör kaydeder:
@transient val appMetrics = new AppMetrics(spark.sparkContext)
appMetrics.registerGauge("metrics.malformedrides", AppAccumulators.getRideInstance(spark.sparkContext))
appMetrics.registerGauge("metrics.malformedfares", AppAccumulators.getFareInstance(spark.sparkContext))
SparkEnv.get.metricsSystem.registerSource(appMetrics)
Apache Spark ölçümleri göndermek için Dropwizard kitaplığını kullanır. Yerel Dropwizard ölçüm alanlarından bazıları Log Analytics ile uyumsuzdur ve bu nedenle bu başvuru mimarisi özel bir Dropwizard havuzu ve muhabiri içerir. Ölçümleri Log Analytics'in beklediği biçimde biçimlendirmektedir. Apache Spark ölçümleri raporladığında, hatalı biçimlendirilmiş yolculuk ve ücret verileri için özel ölçümler de gönderilir.
Akış işinin çalışmasını izlemek için Log Analytics çalışma alanınızda aşağıdaki örnek sorguları kullanabilirsiniz. Her sorgudaki bağımsız değişken ago(1d) , son gün içinde oluşturulan tüm kayıtları döndürür. Bu parametreyi farklı bir zaman aralığını görüntülemek için ayarlayabilirsiniz.
Akış sorgusu işlemi sırasında günlüğe kaydedilen özel durumlar
SparkLoggingEvent_CL
| where TimeGenerated > ago(1d)
| where Level == "ERROR"
Hatalı biçimlendirilmiş ücret ve sürüş verilerinin birikmesi
SparkMetric_CL
| where TimeGenerated > ago(1d)
| where name_s contains "metrics.malformedrides"
| project value_d, TimeGenerated, applicationId_s
| render timechart
SparkMetric_CL
| where TimeGenerated > ago(1d)
| where name_s contains "metrics.malformedfares"
| project value_d, TimeGenerated, applicationId_s
| render timechart
Zaman içinde iş işlemi
SparkMetric_CL
| where TimeGenerated > ago(1d)
| where name_s contains "driver.DAGScheduler.job.allJobs"
| project value_d, TimeGenerated, applicationId_s
| render timechart
Kaynak düzenlemesi ve dağıtımları
Üretim, geliştirme ve test ortamları için ayrı kaynak grupları oluşturun. Ayrı kaynak grupları dağıtımları yönetmeyi, test dağıtımlarını silmeyi ve erişim haklarını atamayı kolaylaştırır.
Azure kaynaklarını kod olarak altyapı işlemine göre dağıtmak için Azure Resource Manager şablonunu kullanın. Şablonları kullanarak Azure DevOps hizmetleri veya diğer sürekli tümleştirme ve sürekli teslim (CI/CD) çözümleriyle dağıtımları otomatikleştirebilirsiniz.
Her iş yükünü ayrı bir dağıtım şablonuna yerleştirin ve kaynakları kaynak denetim sistemlerinde depolayın. Şablonları bir CI/CD işleminin parçası olarak birlikte veya tek tek dağıtabilirsiniz. Bu yaklaşım otomasyon sürecini basitleştirir.
Bu mimaride Event Hubs, Log Analytics ve Azure Cosmos DB tek bir iş yükü olarak tanımlanır. Bu kaynaklar tek bir Azure Resource Manager şablonuna eklenir.
İş yüklerinizi hazırlamayı göz önünde bulundurun. Bir sonraki aşamaya geçmeden önce çeşitli aşamalara dağıtın ve her aşamada doğrulama denetimleri çalıştırın. Bu şekilde, güncelleştirmeleri üretim ortamlarınıza nasıl gönderebileceğinizi denetleyebilir ve tahmin edilmeyen dağıtım sorunlarını en aza indirebilirsiniz.
Bu mimaride birden çok dağıtım aşaması vardır. Azure DevOps işlem hattı oluşturmayı ve bu aşamaları eklemeyi göz önünde bulundurun. Aşağıdaki aşamaları otomatikleştirebilirsiniz:
- Bir Azure Databricks kümesi başlatın.
- Azure Databricks CLI'yi yapılandırın.
- Scala araçlarını yükleyin.
- Azure Databricks sırlarını ekleyin.
Azure Databricks kodunun kalitesini ve güvenilirliğini ve yaşam döngüsünü geliştirmek için otomatik tümleştirme testleri yazmayı göz önünde bulundurun.