Škálování služby Azure Analysis Services na více instancí

Díky horizontálnímu navýšení kapacity je možné klientské dotazy distribuovat mezi několik replik dotazů ve fondu dotazů, což snižuje dobu odezvy při vysokých úlohách dotazů. Můžete také oddělit zpracování od fondu dotazů a zajistit, aby klientské dotazy byly nežádoucím způsobem ovlivněny operacemi zpracování. Škálování na více instancí je možné nakonfigurovat na webu Azure Portal nebo pomocí rozhraní REST API služby Analysis Services.

Škálování na více instancí je k dispozici pro servery na cenové úrovni Standard. Repliky dotazů se účtují stejnou sazbou jako server. Všechny repliky dotazů se vytvářejí ve stejné oblasti jako server. Počet replik dotazů, které můžete nakonfigurovat, je omezený oblastí, ve které se váš server nachází. Další informace najdete v tématu Dostupnost podle oblastí. Horizontální navýšení kapacity nezvyšuje množství dostupné paměti pro váš server. Pokud chcete zvětšit paměť, musíte upgradovat plán.

Proč horizontální navýšení kapacity?

V typickém nasazení serveru slouží jeden server jako server pro zpracování i dotazovací server. Pokud početklientskýchm modelům na serveru překročí počet jednotek QPU (Query Processing Units) pro plán vašeho serveru nebo zpracování modelu, může dojít ke snížení výkonu.

S horizontálním navýšením kapacity můžete vytvořit fond dotazů s až sedmi dalšími prostředky repliky dotazů (celkem osm, včetně primárního serveru). Počet replik ve fondu dotazů můžete škálovat, abyste vyhověli požadavkům QPU v kritických okamžicích, a kdykoli můžete oddělit server pro zpracování od fondu dotazů.

Bez ohledu na počet replik dotazů, které máte ve fondu dotazů, nejsou úlohy zpracování distribuovány mezi repliky dotazů. Primární server slouží jako server pro zpracování. Repliky dotazů obsluhují pouze dotazy na modelové databáze synchronizované mezi primárním serverem a každou replikou ve fondu dotazů.

Při horizontálním navýšení kapacity může trvat až pět minut, než se nové repliky dotazů přírůstkově přidají do fondu dotazů. Když jsou všechny nové repliky dotazů spuštěné a spuštěné, jsou nová klientská připojení vyrovnává zatížení napříč prostředky ve fondu dotazů. Stávající klientská připojení se nezmění z prostředku, ke kterému jsou aktuálně připojená. Při horizontálním snížení kapacity se ukončí všechna existující klientská připojení k prostředku fondu dotazů, který se z fondu dotazů odebere. Klienti se můžou znovu připojit ke zbývajícímu prostředku fondu dotazů.

Jak to funguje

Při první konfiguraci horizontálního navýšení kapacity se modelové databáze na primárním serveru automaticky synchronizují s novými replikami v novém fondu dotazů. Automatická synchronizace probíhá pouze jednou. Během automatické synchronizace se datové soubory primárního serveru (zašifrované neaktivní uložená data v úložišti objektů blob) zkopírují do druhého umístění, které se také šifrují v klidovém stavu v úložišti objektů blob. Repliky ve fondu dotazů se pak hydratují daty z druhé sady souborů.

Automatická synchronizace se provádí jenom při prvním horizontálním navýšení kapacity serveru, ale můžete také provést ruční synchronizaci. Synchronizace zajišťuje, že data na replikách ve fondu dotazů odpovídají datům primárního serveru. Při zpracování (aktualizace) modelů na primárním serveru se po dokončení operací zpracování musí provést synchronizace. Tato synchronizace kopíruje aktualizovaná data ze souborů primárního serveru v úložišti objektů blob do druhé sady souborů. Repliky ve fondu dotazů se pak hydratují aktualizovanými daty z druhé sady souborů v úložišti objektů blob.

Když provedete následnou operaci horizontálního navýšení kapacity, například zvýšení počtu replik ve fondu dotazů ze dvou na pět, nové repliky se hydratují daty z druhé sady souborů v úložišti objektů blob. Neexistuje žádná synchronizace. Pokud pak provedete synchronizaci po horizontálním navýšení kapacity, nové repliky ve fondu dotazů budou hydratované dvakrát – redundantní hydrace. Při provádění následné operace horizontálního navýšení kapacity je důležité mít na paměti:

  • Proveďte synchronizaci před operací horizontálního navýšení kapacity, abyste zabránili redundantní hydraci přidaných replik. Souběžné operace synchronizace a horizontálního navýšení kapacity spuštěné současně nejsou povoleny.

  • Při automatizaci operací zpracování i horizontálního navýšení kapacity je důležité nejprve zpracovat data na primárním serveru, pak provést synchronizaci a pak provést operaci horizontálního navýšení kapacity. Tato sekvence zaručuje minimální dopad na QPU a paměťové prostředky.

  • Během operací horizontálního navýšení kapacity jsou všechny servery ve fondu dotazů, včetně primárního serveru, dočasně offline.

  • Synchronizace je povolená i v případě, že ve fondu dotazů nejsou žádné repliky. Pokud provádíte horizontální navýšení kapacity z nuly na jednu nebo více replik s novými daty z operace zpracování na primárním serveru, proveďte synchronizaci nejprve bez replik ve fondu dotazů a pak vertikálně navyšte kapacitu. Synchronizace před horizontálním navýšením kapacity zabrání redundantní hydraci nově přidaných replik.

  • Když odstraníte modelovou databázi z primárního serveru, neodstraní se automaticky z replik ve fondu dotazů. Operaci synchronizace musíte provést pomocí příkazu PowerShellu Sync-AzAnalysisServicesInstance, který odebere soubory pro danou databázi z umístění sdíleného úložiště objektů blob repliky a pak odstraní modelovou databázi v replikách ve fondu dotazů. Pokud chcete zjistit, jestli databáze modelu existuje na replikách ve fondu dotazů, ale ne na primárním serveru, ujistěte se, že nastavení Oddělit server pro zpracování od nastavení fondu dotazů je ano. Potom se pomocí aplikace SQL Server Management Studio (SSMS) připojte k primárnímu serveru pomocí kvalifikátoru :rw , abyste zjistili, jestli databáze existuje. Pak se připojte k replikám ve fondu dotazů připojením bez kvalifikátoru :rw , abyste zjistili, jestli stejná databáze existuje. Pokud databáze existuje na replikách ve fondu dotazů, ale ne na primárním serveru, spusťte operaci synchronizace.

  • Při přejmenování databáze na primárním serveru je potřeba provést další krok, který zajistí, že se databáze správně synchronizuje s všemi replikami. Po přejmenování proveďte synchronizaci pomocí příkazu Sync-AzAnalysisServicesInstance určující parametr -Database se starým názvem databáze. Tato synchronizace odebere databázi a soubory se starým názvem ze všech replik. Potom proveďte další synchronizaci, která -Database určuje parametr s novým názvem databáze. Druhá synchronizace zkopíruje nově pojmenovanou databázi do druhé sady souborů a hydratuje všechny repliky. Tyto synchronizace nelze provést pomocí příkazu Synchronizovat model na portálu.

Režim synchronizace

Ve výchozím nastavení se repliky dotazů rehydrují v plném rozsahu, nikoli přírůstkově. Rehydrace probíhá ve fázích. Jsou odpojeny a připojeny dva najednou (za předpokladu, že existují aspoň tři repliky), aby se zajistilo, že je alespoň jedna replika v daném okamžiku online pro dotazy. V některých případech se klienti můžou během tohoto procesu muset znovu připojit k některé z online replik. Pomocí nastavení ReplicaSyncMode teď můžete určit synchronizaci replik dotazů paralelně. Paralelní synchronizace poskytuje následující výhody:

  • Výrazné snížení doby synchronizace.
  • Data napříč replikami budou při procesu synchronizace s větší pravděpodobností konzistentní.
  • Během procesu synchronizace jsou databáze v režimu online na všech replikách, takže se klienti nemusí znovu připojovat.
  • Mezipaměť v paměti se aktualizuje přírůstkově pouze se změněnými daty, což může být rychlejší než úplné dosazování modelu.

Nastavení replicaSyncMode

Pomocí aplikace SSMS nastavte ReplicaSyncMode v rozšířených vlastnostech. Možné hodnoty:

  • 1 (výchozí): Dosazování databáze úplné repliky ve fázích (přírůstkové).
  • 2: Optimalizovaná synchronizace paralelně.

Nastavení RelicaSyncMode

Při nastavování ReplicaSyncMode=2 v závislosti na tom, kolik mezipaměti je potřeba aktualizovat, může repliky dotazů spotřebovat více paměti. Aby byla databáze online a dostupná pro dotazy, v závislosti na tom, kolik dat se změnilo, může operace vyžadovat až zdvojnásobení paměti na replice, protože staré i nové segmenty se uchovávají v paměti současně. Uzly replik mají stejné přidělení paměti jako primární uzel a na primárním uzlu je obvykle dodatečná paměť pro operace aktualizace, takže může být nepravděpodobné, že by repliky vyčerkaly paměť. Běžným scénářem je navíc přírůstková aktualizace databáze na primárním uzlu, a proto by požadavek na zdvojnásobení paměti měl být neobvyklý. Pokud operace synchronizace narazí na chybu nedostatku paměti, opakuje se pomocí výchozí techniky (připojení nebo odpojení dvou najednou).

Oddělení zpracování od fondu dotazů

Pokud chcete dosáhnout maximálního výkonu operací zpracování i dotazů, můžete server zpracování oddělit od fondu dotazů. Při oddělení se nová klientská připojení přiřadí jenom k replikám dotazů ve fondu dotazů. Pokud operace zpracování zabírají jen krátkou dobu, můžete server zpracování oddělit od fondu dotazů jenom na dobu potřebnou k provádění operací zpracování a synchronizace a pak ho zahrnout zpět do fondu dotazů. Dokončení operace může trvat až pět minut, než se rozdělí server pro zpracování z fondu dotazů nebo ho přidáte zpět do fondu dotazů.

Monitorování využití QPU

Pokud chcete zjistit, jestli je potřeba škálovat na více instancí pro váš server, monitorujte metriky serveru na webu Azure Portal. Pokud se váš QPU pravidelně omezuje, znamená to, že počet dotazů na vaše modely překračuje limit QPU pro váš plán. Metrika délky fronty úloh fondu dotazů se také zvyšuje, když počet dotazů ve frontě fondu vláken dotazu překročí dostupný QPU.

Další dobrou metrikou pro sledování je průměr QPU podle ServerResourceType. Tato metrika porovnává průměrné množství QPU primárního serveru s fondem dotazů.

Metriky horizontálního navýšení kapacity dotazů

Konfigurace QPU podle ServerResourceType

  1. V spojnicovém grafu Metriky klikněte na Přidat metriku.
  2. V RESOURCE vyberte svůj server, pak v METRIC NAMESPACE, vyberte Standardní metriky Analysis Services, pak v metrikě, vyberte QPU a pak v AGREGACI vyberte Průměr.
  3. Klikněte na Použít rozdělení.
  4. V hodnotě vyberte ServerResourceType.

Podrobné protokolování diagnostiky

Protokoly služby Azure Monitor použijte k podrobnější diagnostice škálovaných prostředků serveru. Pomocí protokolů můžete pomocí dotazů Log Analytics rozdělit QPU a paměť podle serveru a repliky. Další informace najdete v tématu Analýza protokolů v pracovním prostoru služby Log Analytics. Příklady dotazů najdete v části Ukázkové dotazy Kusto.

Konfigurace škálování na více instancí

Na webu Azure Portal

  1. Na portálu klikněte na horizontální navýšení kapacity. Pomocí posuvníku vyberte počet serverů replik dotazů. Počet zvolených replik je navíc k vašemu existujícímu serveru.

  2. V části Oddělit server pro zpracování od fondu dotazů vyberte ano, pokud chcete vyloučit server zpracování z dotazových serverů. Klientská připojení používající výchozí připojovací řetězec (bez:rw) se přesměrují na repliky ve fondu dotazů.

    Posuvník horizontálního navýšení kapacity

  3. Kliknutím na Uložit zřiďte nové servery replik dotazů.

Při první konfiguraci horizontálního navýšení kapacity pro server se modely na primárním serveru automaticky synchronizují s replikami ve fondu dotazů. Automatická synchronizace probíhá pouze jednou, když nejprve nakonfigurujete horizontální navýšení kapacity na jednu nebo více replik. Následné změny počtu replik na stejném serveru neaktivují další automatickou synchronizaci. Automatická synchronizace se znovu neprojeví, i když nastavíte server na nula replik a pak znovu škálujete na libovolný počet replik.

Synchronizace

Synchronizační operace musí být prováděny ručně nebo pomocí rozhraní REST API.

Na webu Azure Portal

V části Přehled> modelu >Synchronizovat model.

Ikona Synchronizovat

REST API

Použijte operaci synchronizace.

Synchronizace modelu

POST https://<region>.asazure.windows.net/servers/<servername>:rw/models/<modelname>/sync

Získání stavu synchronizace

GET https://<region>.asazure.windows.net/servers/<servername>/models/<modelname>/sync

Návratové stavové kódy:

Kód Popis
-1 Neplatný
0 Replikace
0 Dosazování
2 Dokončeno
3 Neúspěšný
4 Dokončení

PowerShell

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Před použitím PowerShellu nainstalujte nebo aktualizujte nejnovější modul Azure PowerShellu.

Ke spuštění synchronizace použijte Sync-AzAnalysisServicesInstance.

Pokud chcete nastavit počet replik dotazů, použijte Set-AzAnalysisServicesServer. Zadejte volitelný -ReadonlyReplicaCount parametr.

Pokud chcete server pro zpracování oddělit od fondu dotazů, použijte Set-AzAnalysisServicesServer. Zadejte volitelný -DefaultConnectionMode parametr, který se má použít Readonly.

Další informace najdete v tématu Použití instančního objektu s modulem Az.AnalysisServices.

Propojení

Na stránce Přehled vašeho serveru jsou dva názvy serverů. Pokud jste ještě nenakonfigurovali horizontální navýšení kapacity pro server, oba názvy serverů fungují stejně. Jakmile nakonfigurujete horizontální navýšení kapacity pro server, musíte zadat odpovídající název serveru v závislosti na typu připojení.

Pro připojení klientů koncových uživatelů, jako je Power BI Desktop, Excel a vlastní aplikace, použijte název serveru.

Pro SSMS, Visual Studio a připojovací řetězec v PowerShellu, aplikacích funkcí Azure a AMO použijte název serveru pro správu. Název serveru pro správu obsahuje speciální :rw kvalifikátor pro čtení i zápis. Všechny operace zpracování probíhají na (primárním) serveru pro správu.

Názvy serverů

Vertikální navýšení kapacity, vertikální snížení kapacity a horizontální navýšení kapacity

Cenovou úroveň můžete změnit na serveru s více replikami. Stejná cenová úroveň platí pro všechny repliky. Operace škálování nejprve zprovozní všechny repliky najednou a pak zobrazí všechny repliky na nové cenové úrovni.

Odstraňování potíží

Problém: Uživatelům se zobrazí chyba nemůže najít server Název< instance serveru> v režimu připojení ReadOnly.

Řešení: Při výběru možnosti Oddělit server pro zpracování od možnosti fondu dotazů se klientská připojení s výchozími připojovací řetězec (bez:rw) přesměrují na repliky fondu dotazů. Pokud repliky ve fondu dotazů ještě nejsou online, protože synchronizace ještě nebyla dokončena, přesměrovaná připojení klientů můžou selhat. Aby se zabránilo selhání připojení, musí při synchronizaci existovat alespoň dva servery ve fondu dotazů. Každý server se synchronizuje jednotlivě, zatímco ostatní zůstávají online. Pokud se rozhodnete, že během zpracování nemáte server pro zpracování ve fondu dotazů, můžete ho odebrat z fondu ke zpracování a po dokončení zpracování ho přidat zpět do fondu, ale před synchronizací. Pomocí metrik paměti a QPU můžete monitorovat stav synchronizace.

Monitorování služby Azure Analysis Services – Správa služby Azure Analysis Services