Použití databází pro sledování
Funkce Database by vám umožní připojit k vašemu clusteru Azure Průzkumník dat databázi umístěnou v jiném clusteru. Databáze následného zpracování je připojena v režimu jen pro čtení , což umožňuje zobrazit data a spouštět dotazy na data, která byla ingestovaná do databáze vedoucíhoprocesu. Databáze sledování synchronizuje změny v databázích vedoucích. Z důvodu synchronizace je k dispozici zpoždění dat několik sekund až na několik minut. Délka časového prodlevy závisí na celkové velikosti metadat vedoucí databáze. Databáze vedoucí a následný používá stejný účet úložiště k načtení dat. Úložiště vlastní vedoucí databáze. Databáze následného zobrazení dat, aniž by je musela ingestovat. Vzhledem k tomu, že připojená databáze je databáze jen pro čtení, není možné upravovat data, tabulky a zásady v databázi s výjimkou zásad ukládání do mezipaměti, objektů zabezpečenía oprávnění. Připojené databáze nejde odstranit. Musí být odpojeni vedoucím nebo následným a pouze potom je možné je odstranit.
Připojení databáze k jinému clusteru pomocí schopnosti sledování se používá jako infrastruktura pro sdílení dat mezi organizacemi a týmy. Tato funkce je užitečná pro oddělení výpočetních prostředků k ochraně produkčního prostředí před neprodukčními případy použití. K přidružení nákladů na cluster Azure Průzkumník dat ke straně, která spouští dotazy na data, se dá použít i následný.
Které databáze jsou následovány?
- Cluster může splňovat jednu databázi, několik databází nebo všechny databáze vedoucího clusteru.
- Jeden cluster může následovat po databázích z více vedoucích clusterů.
- Cluster může obsahovat i databáze a vedoucí databáze pro následné služby.
- Clustery EngineV3 můžou následovat jenom v clusterech EngineV3, podobně jako clustery s EngineV2 můžou sledovat jenom clustery v2.
Požadavky
- Předplatné Azure. Vytvořte si bezplatný účet Azure.
- Vytvořte cluster a databázi pro vedoucího.
- Vytvořte cluster a databázi pro následného.
- Ingestování dat do vedoucí databáze pomocí jedné z různých metod popsaných v tématu Přehledpříjmu.
Připojení databáze
Existují různé metody, které můžete použít k připojení databáze. V tomto článku se podíváme na připojení databáze pomocí C#, Pythonu, PowerShellu nebo šablony Azure Resource Manager. Aby bylo možné připojit databázi, musíte mít uživatele, skupinu, instanční objekt nebo spravovanou identitu s alespoň rolí Přispěvatel v clusteru vedoucího a clusteru následného. Přidejte nebo odeberte přiřazení rolí pomocí Azure Portal, PowerShellu, rozhraní příkazového řádku Azurea šablony ARM. Přečtěte si další informace o řízení přístupu na základě role Azure (Azure RBAC) a o různých rolích.
Sdílení na úrovni tabulky
Při připojení databáze všechny tabulky jsou následovány také externí tabulky a materializovaná zobrazení. Konfigurací 'TableLevelSharingProperties' můžete sdílet konkrétní tabulky/externí tabulky/materializovaná zobrazení.
'TableLevelSharingProperties' obsahuje šest polí řetězců: , tablesToExclude , externalTablesToInclude ,, a externalTablesToExcludematerializedViewsToIncludematerializedViewsToExclude . Maximální počet položek ve všech polích dohromady je 100.
Poznámka
Sdílení na úrovni tabulky není podporováno při použití notace * všechny databáze.
Poznámka
Při zahrnutí materializovaná zobrazení jsou zahrnuty i jejich zdrojové tabulky.
Příklady
Zahrnout všechny tabulky Není nutné zadat znak *, protože ve výchozím nastavení jsou všechny tabulky následovány:
tablesToInclude = []Zahrnout všechny tabulky s názvy, které začínají na "logs":
tablesToInclude = ["Logs*"]Vyloučit všechny externí tabulky:
externalTablesToExclude = ["*"]Vyloučit všechna materializovaná zobrazení:
materializedViewsToExclude=["*"]
Připojení databáze pomocí jazyka C #
Potřebný balíčky NuGet
- Nainstalujte Microsoft. Azure. Management. Kusto.
- Nainstalujte Microsoft. REST. ClientRuntime. Azure. Authentication pro ověřování.
Příklad
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);
Ověření úspěšného připojení databáze
Pokud chcete ověřit, že se databáze úspěšně připojila, vyhledejte připojené databáze v Azure Portal. Můžete ověřit, že databáze byly úspěšně připojeny v clusterech následovců nebo vedoucích clusterů.
Kontrola clusteru sledovačů
Přejděte do následujícího clusteru a vyberte Databáze.
V seznamu databází vyhledejte nové databáze jen pro čtení.

Kontrola clusteru vedoucích uzlů
Přejděte do clusteru s vedoucími uzly a vyberte Databáze.
Zkontrolujte, jestli jsou příslušné databáze označené jako SDÍLENÉ S OSTATNÍMiAno.

Odpojení následující databáze
Poznámka
Pokud chcete odpojit databázi od sledování nebo vedoucí strany, musíte mít uživatele, skupinu, objekt služby nebo spravovanou identitu s rolí přispěvatele alespoň v clusteru, od kterého databázi odpojíte. V následujícím příkladu používáme instanční objekt.
Odpojení připojené databáze sledovačů od následujícího clusteru pomocí jazyka C #
Následující cluster může odpojit jakoukoli připojenou databázi sledovačů následujícím způsobem:
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);
Odpojení připojené databáze sledovačů od clusteru vedoucích uzlů pomocí jazyka C #
Cluster vedoucích uzlů může odpojit jakoukoli připojenou databázi následujícím způsobem:
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);
Správa objektů zabezpečení, oprávnění a zásad ukládání do mezipaměti
Správa objektů zabezpečení
Při připojování databáze zadejte "výchozí druh změny objektů zabezpečení". Ve výchozím nastavení se uchová kolekce autorizovaných objektů zabezpečení v databázi vedoucích objektů.
| Druh | Popis |
|---|---|
| Sjednocení | Připojené objekty zabezpečení databáze budou vždy zahrnovat původní objekty zabezpečení databáze a další nové objekty zabezpečení přidané do následující databáze. |
| Nahrazení | Žádná dědičnost objektů zabezpečení z původní databáze. Pro připojenou databázi musí být vytvořeny nové objekty zabezpečení. |
| Žádný | Připojené objekty zabezpečení databáze obsahují pouze objekty zabezpečení původní databáze bez dalších objektů zabezpečení. |
Další informace o použití řídicích příkazů ke konfiguraci autorizovaných objektů zabezpečení najdete v tématu Řídicí příkazy pro správu následujícího clusteru.
Správa oprávnění
Správa oprávnění k databázi jen pro čtení je stejná jako pro všechny typy databází. Viz správa oprávnění v Azure Portal.
Konfigurace zásad ukládání do mezipaměti
Správce následující databáze může upravit zásady ukládání do mezipaměti připojené databáze nebo jakékoli její tabulky v hostitelském clusteru. Ve výchozím nastavení se uchová kolekce databází vedoucích databází a zásad ukládání do mezipaměti na úrovni tabulky. Můžete mít například 30denní zásady ukládání do mezipaměti pro databázi vedoucích výsledků pro spouštění měsíčních sestav a třídenní zásady ukládání do mezipaměti pro následující databázi, abyste se mohli dotazovat pouze na nedávná data pro účely řešení potíží. Další informace o použití řídicích příkazů ke konfiguraci zásad ukládání do mezipaměti pro následující databázi nebo tabulku najdete v tématu Řídicí příkazy pro správu následujícího clusteru.
Poznámky
- Pokud dojde ke konfliktům mezi databázemi clusterů vedoucích nebo sledovaných clusterů, vyřeší se to takto, když za všemi databázemi následuje následující cluster:
- Databáze s názvem DB vytvořená v následujícím clusteru má přednost před databází se stejným názvem, který byl vytvořen v clusteru vedoucích uzlů. To je důvod, proč je potřeba odebrat nebo přejmenovat databázi databáze v následujícím clusteru, aby následující cluster zahrnoval databázi vedoucího uzlu.
- Databáze s názvem DB následovaná dvěma nebo více clustery vedoucích uzlů bude libovolně zvolena z jednoho z clusterů vedoucích uzlů a nebude ji následovat více než jednou.
- Příkazy pro zobrazení protokolu aktivit clusteru a historie spuštění v clusteru sledování zobrazí aktivitu a historii v následujícím clusteru a jejich sady výsledků nebudou zahrnovat výsledky clusteru vedoucích uzlů nebo clusterů.
- Příklad: Příkaz spuštěný v následujícím clusteru zobrazí pouze dotazy běžící v databázích, za nímž následuje cluster, a ne dotazy běží na stejné databázi v clusteru vedoucích
.show queriesuzlů.
- Příklad: Příkaz spuštěný v následujícím clusteru zobrazí pouze dotazy běžící v databázích, za nímž následuje cluster, a ne dotazy běží na stejné databázi v clusteru vedoucích
Omezení
- Sledovaný a vedoucí cluster musí být ve stejné oblasti.
- Příjem streamování není možné použít u databáze, kterou sledujete.
- Šifrování dat pomocí klíčů spravovaných zákazníkem není podporováno na clusterech vedoucích i sledovačů.
- Databázi, která je připojená k jinému clusteru, není možné před odpojením odstranit.
- Před odpojením clusteru nemůžete odstranit cluster s databází připojenou k jinému clusteru.
- Vlastnosti sdílení na úrovni tabulky se nepodporují, pokud postupuje podle všech databází.
Další kroky
- Informace o konfiguraci sledátora clusteru najdete v tématu Řídicí příkazy pro správu následujícího clusteru.
