Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Funkcja bazy danych typu follower umożliwia dołączenie bazy danych znajdującej się w innym klastrze do klastra usługi Azure Data Explorer. Baza danych podrzędna jest dołączona w trybie tylko do odczytu, co umożliwia wyświetlanie danych i uruchamianie zapytań dotyczących danych pozyskanych do bazy danych głównej. Baza danych podrzędnych synchronizuje zmiany w bazach danych nadrzędnych. Ze względu na synchronizację dostępność danych może być opóźniona od kilku sekund do kilku minut. Długość opóźnienia zależy od ogólnego rozmiaru metadanych bazy danych lidera. Bazy danych lidera i obserwujących używają tego samego konta przechowywania do pobierania danych. Przechowywanie jest własnością wiodącej bazy danych. Baza danych śledząca wyświetla dane bez konieczności ich wczytywania. Ponieważ dołączona baza danych jest bazą tylko do odczytu, nie można modyfikować w niej danych, tabel i zasad, z wyjątkiem zasad buforowania , podmiotów oraz uprawnień . Nie można usunąć dołączonych baz danych. Muszą być odłączone przez lidera lub zwolennika, a dopiero wtedy można je usunąć.
Dołączanie bazy danych do innego klastra przy użyciu funkcji śledzenia służy jako infrastruktura do udostępniania danych między organizacjami i zespołami. Funkcja jest przydatna do segregowania zasobów obliczeniowych w celu ochrony środowiska produkcyjnego przed przypadkami użycia nieprodukcyjnymi. Narzędzie Follower można również wykorzystać do powiązania kosztów klastra Azure Data Explorer z stroną, która uruchamia zapytania dotyczące danych.
Które bazy danych są obserwowane?
- Klaster może podążać za jedną bazą danych, kilkoma bazami danych lub wszystkimi bazami danych klastra lidera.
- Pojedynczy klaster może podążać za bazami danych z wielu klastrów liderów.
- Klaster może zawierać zarówno bazy danych obserwowanych, jak i wiodące bazy danych.
- Klastry EngineV3 mogą być zgodne tylko z klastrami EngineV3, analogicznie klastry EngineV2 mogą być zgodne tylko z klastrami V2.
Wymagania wstępne
- Subskrypcja platformy Azure. Utwórz bezpłatne konto platformy Azure.
- Klaster i baza danych Azure Data Explorer dla lidera i podążającego. Utwórz klaster i bazę danych.
- Baza danych lidera powinna zawierać dane. Możesz pobierać dane przy użyciu jednej z metod omówionych w przegląd pozyskiwania.
Dołączanie bazy danych
Istnieją różne metody, których można użyć do dołączania bazy danych. W tym artykule omówiono dołączanie bazy danych przy użyciu języka C#, Python, programu PowerShell lub szablonu usługi Azure Resource Manager. Aby dołączyć bazę danych, musisz mieć użytkownika, grupę, jednostkę usługi lub tożsamość zarządzaną z co najmniej rolą współpracownika w klastrze głównym i klastrze podążającym. Dodawanie lub usuwanie przypisań ról przy użyciu witryny Azure Portal, programu PowerShell, interfejsu wiersza polecenia platformy Azurei szablonu usługi ARM . Dowiedz się więcej na temat kontroli dostępu opartej na rolach (Azure RBAC) oraz różnych ról.
Udostępnianie na poziomie tabeli
Podczas dołączania bazy danych uwzględniane są wszystkie tabele, tabele zewnętrzne i zmaterializowane widoki. Określone tabele/tabele zewnętrzne/zmaterializowane widoki można udostępniać, konfigurującTableLevelSharingProperties".
'TableLevelSharingProperties' zawiera osiem tablic ciągów: tablesToInclude, tablesToExclude, externalTablesToInclude, externalTablesToExclude, materializedViewsToInclude, materializedViewsToExclude, functionsToIncludei functionsToExclude. Maksymalna liczba wpisów we wszystkich tablicach wynosi 100.
Uwaga
Udostępnianie na poziomie tabeli nie jest obsługiwane przy użyciu notacji „*” dla wszystkich baz danych.
Uwaga
Po dołączeniu zmaterializowanych widoków uwzględnia się również ich tabele źródłowe.
Przykłady
Uwzględnij wszystkie tabele. Nie jest wymagany znak "*", ponieważ wszystkie tabele są domyślnie śledzone.
tablesToInclude = []Uwzględnij wszystkie tabele, których nazwy rozpoczynają się od "Dzienniki".
tablesToInclude = ["Logs*"]Wyklucz wszystkie tabele zewnętrzne:
externalTablesToExclude = ["*"]Wyklucz wszystkie zmaterializowane widoki:
materializedViewsToExclude=["*"]
Nadpisanie nazwy bazy danych
Opcjonalnie możesz ustawić nazwę bazy danych w klastrze podrzędnym inaczej niż w klastrze nadrzędnym. Możesz na przykład dołączyć tę samą nazwę bazy danych z wielu klastrów liderów do klastra obserwowanego. Aby określić inną nazwę bazy danych, skonfiguruj właściwośćDatabaseNameOverride" lub "DatabaseNamePrefix".
Dołączanie bazy danych przy użyciu języka C#
Wymagane pakiety NuGet
- Zainstaluj Microsoft.Azure.Management.Kusto.
- Zainstaluj Microsoft.Rest.ClientRuntime.Azure.Authentication na potrzeby uwierzytelniania.
Przykład w języku C#
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client Secret
var followerSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var credentials = await ApplicationTokenProvider.LoginSilentAsync(tenantId, clientId, clientSecret);
var resourceManagementClient = new KustoManagementClient(credentials) { SubscriptionId = followerSubscriptionId };
var followerResourceGroupName = "followerResourceGroup";
var followerClusterName = "follower";
var attachedDatabaseConfigurationName = "attachedDatabaseConfiguration"
var leaderSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var leaderResourceGroup = "leaderResourceGroup";
var leaderClusterName = "leader";
var attachedDatabaseConfigurationData = new AttachedDatabaseConfiguration
{
ClusterResourceId = $"/subscriptions/{leaderSubscriptionId}/resourceGroups/{leaderResourceGroup}/providers/Microsoft.Kusto/Clusters/{leaderClusterName}",
DatabaseName = "<databaseName>", // Can be specific database name or * for all databases
DefaultPrincipalsModificationKind = "Union",
Location = "North Central US"
};
// Table level sharing properties are not supported when using '*' all databases notation.
if (attachedDatabaseConfigurationData.DatabaseName != "*")
{
// Set up the table level sharing properties - the following is just an example.
attachedDatabaseConfigurationData.TableLevelSharingProperties = new TableLevelSharingProperties(
tablesToInclude:new List<string> { "table1" },
tablesToExclude:new List<string> { "table2" },
externalTablesToInclude:new List<string> { "exTable1" },
externalTablesToExclude:new List<string> { "exTable2" },
materializedViewsToInclude:new List<string> { "matTable1" },
materializedViewsToExclude:new List<string> { "matTable2" }
);
}
await resourceManagementClient.AttachedDatabaseConfigurations.CreateOrUpdateAsync(
followerResourceGroupName, followerClusterName, attachedDatabaseConfigurationName, attachedDatabaseConfigurationData
);
Sprawdź, czy baza danych została pomyślnie dołączona
Aby sprawdzić, czy baza danych została pomyślnie dołączona, znajdź swoje bazy danych w portalu Azure. Możesz sprawdzić, czy bazy danych zostały pomyślnie dołączone do klastrów typu follower lub leader.
Sprawdź grupę obserwujących
Przejdź do klastra podrzędnego i wybierz pozycję Databases.
Na liście baz danych wyszukaj nowe bazy danych tylko do odczytu.
Tę listę można również wyświetlić na stronie przeglądu bazy danych:
Sprawdzanie klastra liderów
Przejdź do klastra liderów i wybierz pozycję Databases
Sprawdź, czy odpowiednie bazy danych są oznaczone jako UDOSTĘPNIONE INNYM>Tak
Przełącz link relacji, aby wyświetlić szczegóły.
Można to również wyświetlić na stronie przeglądu bazy danych:
Odłącz bazę danych obserwujących
Uwaga
Aby odłączyć bazę danych ze strony obserwatora lub lidera, musisz mieć użytkownika, grupę, główny obiekt usługi lub tożsamość zarządzaną przynajmniej z rolą współautora w klastrze, z którego odłączasz bazę danych. W poniższym przykładzie używamy głównej nazwy usługi.
Odłącz bazę danych obserwatora od klastra obserwatorów za pomocą C#**
Klaster obserwowania może odłączyć dowolną dołączoną bazę danych obserwowanych w następujący sposób:
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client Secret
var followerSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var credentials = await ApplicationTokenProvider.LoginSilentAsync(tenantId, clientId, clientSecret);
var resourceManagementClient = new KustoManagementClient(credentials) { SubscriptionId = followerSubscriptionId };
var followerResourceGroupName = "testrg";
//The cluster and database attached database configuration are created as part of the prerequisites
var followerClusterName = "follower";
var attachedDatabaseConfigurationsName = "attachedDatabaseConfiguration";
await resourceManagementClient.AttachedDatabaseConfigurations.DeleteAsync(
followerResourceGroupName, followerClusterName, attachedDatabaseConfigurationsName
);
Odłącz bazę danych obserwatora, która jest dołączona do klastra lidera, korzystając z C#.
Klaster liderów może odłączyć dowolną dołączoną bazę danych w następujący sposób:
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client Secret
var leaderSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var credentials = await ApplicationTokenProvider.LoginSilentAsync(tenantId, clientId, clientSecret);
var resourceManagementClient = new KustoManagementClient(credentials) { SubscriptionId = leaderSubscriptionId };
var leaderResourceGroupName = "testrg";
var leaderClusterName = "leader";
var followerSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var followerResourceGroupName = "followerResourceGroup";
//The cluster and attached database configuration that are created as part of the Prerequisites
var followerClusterName = "follower";
var attachedDatabaseConfigurationsName = "attachedDatabaseConfiguration";
var followerDatabaseDefinition = new FollowerDatabaseDefinition
{
ClusterResourceId = $"/subscriptions/{followerSubscriptionId}/resourceGroups/{followerResourceGroupName}/providers/Microsoft.Kusto/Clusters/{followerClusterName}",
AttachedDatabaseConfigurationName = attachedDatabaseConfigurationsName
};
await resourceManagementClient.Clusters.DetachFollowerDatabasesAsync(
leaderResourceGroupName, leaderClusterName, followerDatabaseDefinition
);
Zarządzaj podmiotami, uprawnieniami i polityką buforowania
Zarządzanie podmiotami
Podczas dołączania bazy danych określ "domyślny rodzaj modyfikacji podmiotów". Domyślnym ustawieniem jest połączenie nadrzędnych autoryzowanych podmiotów z kolekcją bazy danych lidera autoryzowanych podmiotów .
| rodzaj | Opis |
|---|---|
| Unii | Dołączone podmioty bazy danych zawsze będą zawierać oryginalne podmioty bazy danych oraz inne nowe podmioty dodane do bazy danych obserwatora. |
| Zamień | Brak dziedziczenia podmiotów z pierwotnej bazy danych. Dla dołączonej bazy danych należy utworzyć nowe podmioty. |
| Brak | Dołączone projekty zabezpieczeń bazy danych obejmują tylko projekty zabezpieczeń oryginalnej bazy danych, bez innych projektów zabezpieczeń. |
Aby uzyskać więcej informacji na temat używania poleceń sterujących do konfigurowania autoryzowanych podmiotów, zobacz Polecenia sterujące do zarządzania klastrem podrzędnym.
Zarządzanie uprawnieniami
Zarządzanie uprawnieniami bazy danych tylko do odczytu jest takie samo jak w przypadku wszystkich typów baz danych. Zobacz zarządzanie uprawnieniami w portalu Azure .
Konfigurowanie zasad buforowania
Administrator bazy danych obserwacyjnej może zmodyfikować politykę buforowania zarówno dołączonej bazy danych, jak i dowolnej z jej tabel na klastrze hostującym. Ustawieniem domyślnym jest połączenie źródłowej bazy danych w bazie danych klastra wiodącego i zasad buforowania na poziomie tabeli z zasadami zdefiniowanymi w bazie danych i zasadach zastępowania na poziomie tabeli. Możesz na przykład mieć 30-dniowe zasady buforowania w bazie danych lidera do uruchamiania raportowania miesięcznego i trzydniowe zasady buforowania w bazie danych obserwowanych, aby wykonywać zapytania tylko o ostatnie dane na potrzeby rozwiązywania problemów. Aby uzyskać więcej informacji na temat używania poleceń kontrolnych do konfigurowania polityki buforowania w bazie danych lub tabeli podrzędnej, zobacz Control commands for managing a follower cluster.
Notatki
- Jeśli występują konflikty między bazami danych klastrów liderów i klastrów obserwujących, gdy wszystkie bazy danych są obsługiwane przez klaster obserwujący, są one rozwiązywane w następujący sposób:
- Baza danych o nazwie DB utworzona w klastrze podrzędnym ma pierwszeństwo przed bazą danych o tej samej nazwie, która została utworzona w klastrze nadrzędnym. Dlatego baza danych DB w klastrze obserwującym musi zostać usunięta lub zmieniona jej nazwa, aby w klastrze obserwującym mogła znaleźć się baza danych lidera DB.
- Baza danych o nazwie DB, pochodząca z co najmniej dwóch klastrów liderów, zostanie dowolnie wybrana z jednego z klastrów liderów i nie będzie śledzona więcej niż raz.
- Polecenia służące do wyświetlania dziennika aktywności i historii klastra uruchamiane na klastrze obserwowanym będą pokazywać aktywność i historię tego klastra, a ich zestawy wyników nie będą zawierać wyników klastra lidera lub klastrów lidera.
- Na przykład: polecenie
.show queriesuruchamiane w klastrze obserwującym spowoduje wyświetlenie tylko zapytań uruchamianych w bazach danych takich jak te śledzone przez klaster obserwujący, a nie zapytań uruchamianych względem tej samej bazy danych w klastrze nadrzędnym.
- Na przykład: polecenie
Ograniczenia
- Klastry obserwatorów oraz liderów muszą znajdować się w tym samym regionie.
- Jeśli pozyskiwanie danych przesyłanych strumieniowo jest używane w bazie danych, która jest śledzona, klaster śledzący powinien być włączony do pozyskiwania danych przesyłanych strumieniowo, aby umożliwić śledzenie tego procesu.
- Szyfrowanie danych przy użyciu kluczy zarządzanych przez klienta nie jest obsługiwane zarówno w klastrach liderów, jak i w klastrach obserwowanych.
- Nie można usunąć bazy danych dołączonej do innego klastra przed odłączeniem.
- Nie można usunąć klastra, który ma bazę danych dołączoną do innego klastra przed odłączeniem go.
- Właściwości udostępniania na poziomie tabeli nie są obsługiwane podczas przetwarzania wszystkich baz danych.
Następne kroki
- Aby uzyskać informacje na temat konfiguracji klastra wtórnego, zobacz Polecenia kontrolne do zarządzania klastrem wtórnym.