Követő adatbázisok használata
A követő adatbázis funkcióval egy másik fürtben található adatbázist csatolhat az Azure Data Explorer-fürthöz. A követő adatbázisírásvédett módban van csatolva, így megtekintheti az adatokat, és lekérdezéseket futtathat a vezető adatbázisba betöltött adatokon. A követő adatbázis szinkronizálja a vezető adatbázisok módosításait. A szinkronizálás miatt néhány másodperc és néhány perc közötti adatelmaradás tapasztalható az adatok rendelkezésre állásában. Az időeltolódás hossza a vezető adatbázis metaadatainak teljes méretétől függ. A vezető és követő adatbázisok ugyanazt a tárfiókot használják az adatok lekéréséhez. A tárterület a vezető adatbázis tulajdonában van. A követő adatbázis úgy tekinti meg az adatokat, hogy nem kell betöltődnie. Mivel a csatolt adatbázis írásvédett adatbázis, az adatbázisban lévő adatok, táblák és szabályzatok nem módosíthatók, kivéve a gyorsítótárazási szabályzatot, a tagokat és az engedélyeket. A csatolt adatbázisok nem törölhetők. A vezetőnek vagy a követőnek le kell választania őket, és csak akkor törölhetők.
Az adatbázis egy másik fürthöz való csatolása a követő képesség használatával infrastruktúraként szolgál az adatok szervezetek és csapatok közötti megosztásához. A funkció hasznos a számítási erőforrások elkülönítéséhez, hogy megvédje az éles környezetet a nem éles használati esetektől. A követő az Azure Data Explorer-fürt költségeit is társíthatja az adatokon lekérdezéseket futtató félhez.
Mely adatbázisokat követi a rendszer?
- A fürtök egy adatbázist, több adatbázist vagy egy vezetőfürt összes adatbázisát követhetik.
- Egyetlen fürt több vezető fürt adatbázisait is követheti.
- A fürtök a követő adatbázisokat és a vezető adatbázisokat is tartalmazhatják.
- Az EngineV3-fürtök csak EngineV3-fürtöket tudnak követni, és hasonlóképp az EngineV2-fürtök is csak V2-fürtöket követhetnek.
Előfeltételek
- Azure-előfizetés. Hozzon létre egy ingyenes Azure-fiókot.
- Egy Azure Data Explorer-fürt és adatbázis a vezető és a követő számára. Hozzon létre egy fürtöt és egy adatbázist.
- A vezető adatbázisnak adatokat kell tartalmaznia. Az adatokat a betöltési áttekintésben ismertetett módszerek egyikével töltheti be.
Adatbázis csatolása
Az adatbázisok csatolására többféle módszer is használható. Ebben a cikkben egy adatbázis C#, Python, PowerShell vagy Azure Resource Manager sablon használatával történő csatolását tárgyaljuk. Adatbázis csatolásához rendelkeznie kell legalább közreműködői szerepkörrel rendelkező felhasználóval, csoporttal, szolgáltatásnévvel vagy felügyelt identitással a vezető fürtön és a követő fürtön. Szerepkör-hozzárendelések hozzáadása vagy eltávolítása Azure Portal, PowerShell, Azure CLI és ARM-sablon használatával. További információ az Azure szerepköralapú hozzáférés-vezérlésről (Azure RBAC) és a különböző szerepkörökről.
Táblaszintű megosztás
Az adatbázis csatolásakor a rendszer minden táblát, külső táblát és materializált nézetet is követ. A "TableLevelSharingProperties" konfigurálásával megoszthatja az adott táblákat/külső táblákat/materializált nézeteket.
A TableLevelSharingProperties nyolc sztringtömböt tartalmaz: tablesToInclude
, , tablesToExclude
, externalTablesToInclude
externalTablesToExclude
, materializedViewsToInclude
, materializedViewsToExclude
, functionsToInclude
és functionsToExclude
. Az összes tömb bejegyzéseinek maximális száma 100.
Megjegyzés
A táblaszintű megosztás nem támogatott az összes adatbázis jelölésének *használata esetén.
Megjegyzés
A materializált nézetek belefoglalásakor a forrástáblák is bekerülnek.
Példák
Foglalja bele az összes táblát. Nincs szükség *-ra, mivel az összes táblát alapértelmezés szerint a következő követi:
tablesToInclude = []
Adja meg a "Naplók" kezdetű összes táblát:
tablesToInclude = ["Logs*"]
Az összes külső tábla kizárása:
externalTablesToExclude = ["*"]
Az összes materializált nézet kizárása:
materializedViewsToExclude=["*"]
Adatbázisnév felülbírálása
A követő fürtben lévő adatbázis nevét tetszés szerint eltérhet a vezetőfürttől. Előfordulhat például, hogy ugyanazt az adatbázisnevet szeretné csatolni több vezető fürtből egy követő fürthöz. Másik adatbázisnév megadásához konfigurálja a DatabaseNameOverride vagy a DatabaseNamePrefix tulajdonságot.
Adatbázis csatolása C használatával #
Szükséges NuGet-csomagok
- Telepítse a Microsoft.Azure.Management.Kusto alkalmazást.
- A hitelesítéshez telepítse a Microsoft.Rest.ClientRuntime.Azure.Authentication szolgáltatást.
C# példa
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
);
Ellenőrizze, hogy az adatbázis csatolása sikerült-e
Az adatbázis sikeres csatolásának ellenőrzéséhez keresse meg a csatolt adatbázisokat a Azure Portal. Ellenőrizheti, hogy az adatbázisok sikeresen csatolva lettek-e a követő vagy vezető fürtökön.
A követő fürt ellenőrzése
Keresse meg a követő fürtöt, és válassza az Adatbázisok lehetőséget.
Az adatbázislistában keressen új írásvédett adatbázisokat.
A listát az adatbázis áttekintési oldalán is megtekintheti:
A vezető fürt ellenőrzése
Tallózással keresse meg a vezetőfürtöt, és válassza az Adatbázisok lehetőséget
Ellenőrizze, hogy a megfelelő adatbázisok meg vannak-e osztva másokkal>igen
A részletek megtekintéséhez váltsa ki a kapcsolathivatkozást.
Ezt az adatbázis áttekintési oldalán is megtekintheti:
A követő adatbázis leválasztása
Megjegyzés
Ha le szeretne választani egy adatbázist a követő vagy a vezető oldalról, rendelkeznie kell legalább közreműködői szerepkörrel rendelkező felhasználóval, csoporttal, szolgáltatásnévvel vagy felügyelt identitással azon a fürtön, amelyről az adatbázist leválasztja. Az alábbi példában szolgáltatásnevet használunk.
A csatolt követő adatbázis leválasztása a követő fürtről a C#** használatával
A követő fürt az alábbiak szerint leválaszthatja a csatolt követő adatbázisokat:
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
);
A csatolt követő adatbázis leválasztása a vezető fürtről a C használatával #
A vezetőfürt az alábbi módon leválaszthatja a csatolt adatbázisokat:
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
);
Tagok, engedélyek és gyorsítótárazási szabályzat kezelése
Rendszerbiztonsági tagok kezelése
Adatbázis csatolásakor adja meg az "alapértelmezett rendszerbiztonsági tagok módosítási típusát". Az alapértelmezett beállítás a felülbírálásra jogosult tagok kombinálása az engedélyezett tagok vezető adatbázis-gyűjteményével
Altípus | Leírás |
---|---|
Unió | A csatolt adatbázisnevek mindig tartalmazzák az eredeti adatbázis-tagokat, valamint a követő adatbázishoz hozzáadott további új tagokat. |
Csere | A rendszerbiztonsági tagok nem öröklődnek az eredeti adatbázisból. Új rendszerbiztonsági tagokat kell létrehozni a csatolt adatbázishoz. |
Nincs | A csatolt adatbázisnevek csak az eredeti adatbázis rendszerneveit tartalmazzák, más rendszerbiztonsági tagok nélkül. |
További információ a vezérlési parancsok használatáról az engedélyezett tagok konfigurálásához: Vezérlőparancsok követő fürt kezeléséhez.
Engedélyek kezelése
Az írásvédett adatbázis-engedélyek kezelése ugyanaz, mint az összes adatbázistípus esetében. Lásd: Engedélyek kezelése a Azure Portal.
Gyorsítótárazási szabályzat konfigurálása
A követő adatbázis rendszergazdája módosíthatja a csatolt adatbázis vagy annak bármely táblája gyorsítótárazási szabályzatát az üzemeltetési fürtön. Az alapértelmezett beállítás a vezetőfürt-adatbázisban lévő forrásadatbázis és a táblaszintű gyorsítótárazási szabályzatok kombinálása az adatbázisban meghatározott szabályzatokkal és a táblaszintű felülbírálási szabályzatokkal. Például rendelkezhet egy 30 napos gyorsítótárazási szabályzattal a vezető adatbázison a havi jelentéskészítés futtatásához, és egy háromnapos gyorsítótárazási szabályzatot a követő adatbázison, hogy csak a legutóbbi adatokat kérdezhesse le a hibaelhárításhoz. A követő adatbázis vagy tábla gyorsítótárazási szabályzatának vezérlési parancsokkal történő konfigurálásáról további információt a Következő fürt felügyeletére szolgáló parancsok című témakörben talál.
Jegyzetek
- Ha ütközések vannak a vezető/követő fürtök adatbázisai között, amikor az összes adatbázist a követő fürt követi, azokat a következőképpen oldja fel a rendszer:
- A követő fürtön létrehozott ADATBÁZIS nevű adatbázis elsőbbséget élvez a vezetőfürtön létrehozott adatbázissal szemben. Ezért kell eltávolítani vagy átnevezni a követő fürt adatbázis-adatbázisát , hogy a vezető adatbázis-adatbázisát is tartalmazza.
- A rendszer tetszőlegesen kiválaszt egy db nevű adatbázist, amelyet két vagy több vezetőfürt követ, és csak egyszer lesz követve.
- A követő fürtökön futtatott fürttevékenység-naplók és -előzmények megjelenítésére szolgáló parancsok a követő fürt tevékenységeit és előzményeit jelenítik meg, és eredményhalmazaik nem tartalmazzák a vezető fürt vagy fürtök eredményeit.
- Például: a
.show queries
követő fürtön futtatott parancsok csak az adatbázisokon, majd a követő fürtökön futtatott lekérdezéseket jelenítik meg, és a lekérdezések nem futnak ugyanazon az adatbázison a vezetőfürtben.
- Például: a
Korlátozások
- A követőnek és a vezető fürtöknek ugyanabban a régióban kell lenniük.
- Ha a streambetöltést egy követett adatbázison használják, a követő fürtöt engedélyezni kell a streambetöltéshez, hogy lehetővé tegye a streamelési betöltési adatok követését.
- Az ügyfél által felügyelt kulcsokat használó adattitkosítás nem támogatott mind a vezető, mind a követő fürtökön.
- A leválasztása előtt nem törölhet egy másik fürthöz csatolt adatbázist.
- Leválasztása előtt nem törölhet olyan fürtöt, amelyhez egy másik fürthöz van csatolva adatbázis.
- A táblaszintű megosztási tulajdonságok nem támogatottak az összes adatbázis követésekor.
Következő lépések
- További információ a követő fürt konfigurációjáról: Vezérlőparancsok követő fürtök kezeléséhez.