İzleme veritabanlarını kullanma
İzleyici veritabanı özelliği, farklı bir kümede bulunan bir veritabanını Azure Veri Gezgini kümenize eklemenize olanak tanır. İzleyici veritabanısalt okuma modunda iliştirilir, bu da verileri görüntülemeyi ve öncü veritabanınaalınan verilerde sorgu çalıştırmayı mümkün hale getirir. İzleyici veritabanı, öncü veritabanlarındaki değişiklikleri eşitler. Eşitleme nedeniyle, veri kullanılabilirliğinin birkaç saniye boyunca birkaç dakika veri gecikmesi vardır. Gecikme süresinin uzunluğu, öncü veritabanı meta verilerinin genel boyutuna bağlıdır. Öncü ve izleyici veritabanları verileri getirmek için aynı depolama hesabını kullanır. Depolama, öncü veritabanına aittir. İzleyici veritabanı, verileri almak gerekmeden verileri görüntüler. Ekli veritabanı bir salt okuma veritabanı olduğundan, veritabanındaki veriler, tablolar ve ilkeler önbelleğe alma ilkesi, sorumlularve izinlerdışında değiştirilemez. Ekli veritabanları silinemez. Bunlar, öncü veya izleyici tarafından ayrılmaları gerekir ve bu öğeler silinebilir.
İzleme özelliğini kullanarak bir veritabanını farklı bir kümeye eklemek, kuruluşlar ve takımlar arasında veri paylaşmak için altyapı olarak kullanılır. Bu özellik, üretim ortamının üretim dışı kullanım çalışmalarından korunmasını sağlamak için işlem kaynaklarını ayırt etmek için yararlıdır. İzleme, Azure Veri Gezgini kümesinin maliyetini verilerde sorgular çalıştıran tarafla ilişkilendirmek için de kullanılabilir.
Hangi veritabanları izlensin?
- Bir küme bir veritabanını, birkaç veritabanını veya öncü bir kümenin tüm veritabanlarını izleyebilir.
- Tek bir küme, birden çok öncü kümeden veritabanlarını izleyebilir.
- Bir küme, hem izleyici veritabanlarını hem de öncü veritabanlarını içerebilir.
- EngineV3 kümeleri yalnızca EngineV3 kümelerini izleyebilir, benzer şekilde EngineV2 kümeleri yalnızca v2 kümelerini izleyebilir.
Önkoşullar
- Azure aboneliği. Ücretsiz bir Azure hesabıoluşturun.
- Öncü için bir küme ve veritabanı oluşturun.
- İzleyici için bir küme ve veritabanı oluşturun.
- Giriş bölümündeele alınan çeşitli yöntemlerden birini kullanarak öncü veritabanına veri alma.
Veritabanı ekleme
Bir veritabanı eklemek için kullanabileceğiniz çeşitli yöntemler vardır. Bu makalede, C#, Python, PowerShell veya Azure Resource Manager şablonu kullanarak bir veritabanı eklemeyi tartıştık. Bir veritabanı eklemek için, öncü kümede ve izleyici kümesinde en az katkıda bulunan rolüyle Kullanıcı, Grup, hizmet sorumlusu veya yönetilen Kimliğiniz olmalıdır. Azure Portal, POWERSHELL, Azure CLIve ARM şablonunukullanarak rol atamaları ekleme veya kaldırma. Azure rol tabanlı erişim denetimi (Azure RBAC) ve farklı rollerhakkında daha fazla bilgi edinin.
Tablo düzeyinde paylaşım
Veritabanı eklenirken tüm tablolar, dış tablolar ve gerçekleştirilmiş görünümler de izlenir. 'Tablelevelsharingproperties' yapılandırarak belirli tabloları/dış tabloları/gerçekleştirilmiş görünümleri paylaşabilirsiniz.
'Tablelevelsharingproperties',,,,, ve gibi altı dizi dizeyi içerir tablesToExcludeexternalTablesToIncludeexternalTablesToExcludematerializedViewsToIncludematerializedViewsToExclude . Tüm dizilerde bulunan en fazla giriş sayısı 100 ' dir.
Not
' * ' Tüm veritabanları gösterimi kullanılırken tablo düzeyinde paylaşım desteklenmez.
Not
Gerçekleştirilmiş görünümler dahil edildiğinde, bunların kaynak tabloları da dahil edilir.
Örnekler
Tüm tabloları dahil et. ' * ' Gerekli değildir, çünkü tüm tablolar varsayılan olarak izlenir:
tablesToInclude = []"Logs" ile başlayan adlara sahip tüm tabloları dahil et:
tablesToInclude = ["Logs*"]Tüm dış tabloları dışla:
externalTablesToExclude = ["*"]Gerçekleştirilmiş tüm görünümleri hariç tut:
materializedViewsToExclude=["*"]
C kullanarak veritabanı iliştirme #
Gerekli nal
- Microsoft. Azure. Management. kustouygulamasını yükler.
- Kimlik doğrulaması Için Microsoft. Rest. ClientRuntime. Azure. Authentication'ı yükler.
Örnek
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";//Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";//Application ID
var clientSecret = "xxxxxxxxxxxxxx";//Client secret
var leaderSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var followerSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var serviceCreds = await ApplicationTokenProvider.LoginSilentAsync(tenantId, clientId, clientSecret);
var resourceManagementClient = new KustoManagementClient(serviceCreds){
SubscriptionId = followerSubscriptionId
};
var followerResourceGroupName = "followerResouceGroup";
var leaderResourceGroup = "leaderResouceGroup";
var leaderClusterName = "leader";
var followerClusterName = "follower";
var attachedDatabaseConfigurationName = "uniqueNameForAttachedDatabaseConfiguration";
var databaseName = "db"; // Can be specific database name or * for all databases
var defaultPrincipalsModificationKind = "Union";
var location = "North Central US";
TableLevelSharingProperties tls;
if (databaseName == "*")
{
// Table level sharing properties are not supported when using '*' all databases notation.
tls = null;
}
else
{
// Set up the table level sharing properties - the following is just an example.
var tablesToInclude = new List<string>
{
"table1",
"table2",
"table3"
};
var externalTablesToExclude = new List<string>
{
"Logs*"
};
var tls = new TableLevelSharingProperties(tablesToInclude: tablesToInclude, externalTablesToExclude: externalTablesToExclude);
}
AttachedDatabaseConfiguration attachedDatabaseConfigurationProperties = new AttachedDatabaseConfiguration()
{
ClusterResourceId = $"/subscriptions/{leaderSubscriptionId}/resourceGroups/{leaderResourceGroup}/providers/Microsoft.Kusto/Clusters/{leaderClusterName}",
DatabaseName = databaseName,
DefaultPrincipalsModificationKind = defaultPrincipalsModificationKind,
Location = location,
TableLevelSharingProperties = tls
};
var attachedDatabaseConfigurations = resourceManagementClient.AttachedDatabaseConfigurations.CreateOrUpdate(followerResourceGroupName, followerClusterName, attachedDatabaseConfigurationName, attachedDatabaseConfigurationProperties);
Veritabanının başarıyla eklendiğinden emin olun
Veritabanının başarıyla eklendiğinden emin olmak için, Azure Portaleklenen veritabanlarınızı bulun. Veritabanlarının, izleyici veya öncü kümelerine başarıyla iliştirildiğini doğrulayabilirsiniz.
İzleyici kümenizi denetleyin
İzleyici kümesine gidin ve veritabanları ' nı seçin.
Veritabanı listesinde yeni salt okuma veritabanlarını arayın.

Öncü kümenizi denetleyin
Öncü kümesine gidin ve veritabanlarını seçin
İlgili veritabanlarının başkalarıyla paylaşılanolarak işaretlendiğinden emin olun Evet

İzleme veritabanını ayırın
Not
Bir veritabanını izleyici veya öncü taraftan ayırmak için, veritabanını ayırabilmeniz gereken kümede en az katkıda bulunan rolüyle Kullanıcı, Grup, hizmet sorumlusu veya yönetilen Kimliğiniz olmalıdır. Aşağıdaki örnekte hizmet sorumlusu kullanırız.
C kullanarak ekli izleyici veritabanını izleyici kümesinden ayır #
İzleyici kümesi, ekli herhangi bir izleyici veritabanını aşağıdaki gibi ayırabilir:
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";//Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";//Application ID
var clientSecret = "xxxxxxxxxxxxxx";//Client secret
var leaderSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var followerSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var serviceCreds = await ApplicationTokenProvider.LoginSilentAsync(tenantId, clientId, clientSecret);
var resourceManagementClient = new KustoManagementClient(serviceCreds){
SubscriptionId = followerSubscriptionId
};
var followerResourceGroupName = "testrg";
//The cluster and database that are created as part of the prerequisites
var followerClusterName = "follower";
var attachedDatabaseConfigurationsName = "uniqueName";
resourceManagementClient.AttachedDatabaseConfigurations.Delete(followerResourceGroupName, followerClusterName, attachedDatabaseConfigurationsName);
C kullanarak ekli izleyici veritabanını öncü kümeden ayır #
Öncü küme, eklenen herhangi bir veritabanını şu şekilde ayırabilir:
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";//Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";//Application ID
var clientSecret = "xxxxxxxxxxxxxx";//Client secret
var leaderSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var followerSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var serviceCreds = await ApplicationTokenProvider.LoginSilentAsync(tenantId, clientId, clientSecret);
var resourceManagementClient = new KustoManagementClient(serviceCreds){
SubscriptionId = leaderSubscriptionId
};
var leaderResourceGroupName = "testrg";
var followerResourceGroupName = "followerResouceGroup";
var leaderClusterName = "leader";
var followerClusterName = "follower";
//The cluster and database that are created as part of the Prerequisites
var followerDatabaseDefinition = new FollowerDatabaseDefinition()
{
AttachedDatabaseConfigurationName = "uniqueName",
ClusterResourceId = $"/subscriptions/{followerSubscriptionId}/resourceGroups/{followerResourceGroupName}/providers/Microsoft.Kusto/Clusters/{followerClusterName}"
};
resourceManagementClient.Clusters.DetachFollowerDatabases(leaderResourceGroupName, leaderClusterName, followerDatabaseDefinition);
Sorumluları, izinleri ve önbelleğe alma ilkesini yönetme
Sorumluları yönetme
Bir veritabanı eklenirken "varsayılan asıl adlar değiştirme türü"ni belirtin. Varsayılan değer, yetkili sorumlular için öncü veritabanı koleksiyonunu tutuyor
| Tip | Açıklama |
|---|---|
| Birleşim | Ekli veritabanı sorumluları her zaman özgün veritabanı sorumlularını ve izleme veritabanına eklenen diğer yeni sorumluları içerir. |
| Değiştir | Asıl veritabanından asıl öğeler devralınmaz. Eklenen veritabanı için yeni sorumlular oluşturulmalıdır. |
| Hiçbiri | Ekli veritabanı sorumluları yalnızca özgün veritabanının diğer sorumlularına sahip olmayan sorumlularını içerir. |
Yetkili sorumlularını yapılandırmak üzere denetim komutlarını kullanma hakkında daha fazla bilgi için bkz. bir izleyici kümesini yönetmek Için denetim komutları.
İzinleri yönetme
Salt okunurdur veritabanını yönetme izni tüm veritabanı türleriyle aynıdır. Bkz. Azure Portal izinleri yönetme.
Önbelleğe alma ilkesini yapılandırma
İzleyici veritabanı yöneticisi, bağlı veritabanının veya barındırma kümesindeki tablolarının herhangi birinin önbellek ilkesini değiştirebilir. Varsayılan değer veritabanı ve tablo düzeyinde önbelleğe alma ilkelerinin öncü veritabanı koleksiyonunu tutuyor. Örneğin, aylık raporlama çalıştırmak için öncü veritabanında 30 günlük önbelleğe alma ilkesine ve sorun giderme için yalnızca son verileri sorgulamak üzere izleyici veritabanında üç günlük önbelleğe alma ilkesine sahip olabilirsiniz. İzleyici veritabanı veya tablosunda önbelleğe alma ilkesini yapılandırmak üzere denetim komutlarını kullanma hakkında daha fazla bilgi için, bkz. bir izleyici kümesini yönetmek Için denetim komutları.
Notlar
- Öncü/izleyici kümesi veritabanları arasında çakışmalar varsa, tüm veritabanlarına izleyici kümesi geldiğinde, bunlar aşağıdaki şekilde çözümlenir:
- İzleyici kümesinde oluşturulan DB adlı bir veritabanı, öncü kümede oluşturulan aynı ada sahip bir veritabanına göre önceliklidir. Bu, izleyici kümesi için veritabanı DB 'nin öncü veritabanı veritabanını içermesi için kaldırım kümesi için kaldırılması veya yeniden adlandırılması gerekir.
- İki veya daha fazla öncü kümeden sonra gelen veritabanı adlı bir veritabanı, öncü kümelerden birinden rastgele bir şekilde seçilir ve bundan sonra bir defadan fazla olmaz.
- Bir izleyici kümesinde küme etkinlik günlüğü ve geçmiş çalışmasının gösterilmesinin komutları, izleme kümesinde etkinlik ve geçmişi gösterir ve sonuç kümeleri öncü kümenin veya kümelerin sonuçlarını içermez.
- Örneğin:
.show queriesizleyici kümesinde çalıştırılan bir komut yalnızca veritabanları üzerinde çalıştırılan sorguları ve ardından izleyici kümesini gösterir ve sorgu, öncü kümede aynı veritabanında çalışır.
- Örneğin:
Sınırlamalar
- İzleme ve öncü kümelerin aynı bölgede olması gerekir.
- Akış alımı, izlenebilecek bir veritabanında kullanılamaz.
- Müşteri tarafından yönetilen anahtarlar kullanılarak veri şifrelemesi hem öncü hem de izleme kümelerinde desteklenmez.
- Ayırmayı yapmadan önce farklı bir kümeye bağlı bir veritabanını silemezsiniz.
- Bir veritabanını kullanımdan çıkarmadan önce farklı bir kümeye eklenmiş bir kümeyi silemezsiniz.
- Tüm veritabanları takip edildiğinde tablo düzeyi paylaşım özellikleri desteklenmez.
Sonraki adımlar
- İzleme kümesi yapılandırma hakkında daha fazla bilgi için bkz. bir izleyici kümesini yönetmek Için denetim komutları.
