Š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ém zatížení dotazů. Zpracování můžete také oddělit od fondu dotazů a zajistit, aby klientské dotazy nebyly nepříznivě ovlivněny operacemi zpracování. Škálování na více instancí je možné nakonfigurovat v Azure Portal nebo pomocí rozhraní REST API služby Analysis Services.

Horizontální navýšení kapacity je dostupné pro servery na cenové úrovni Standard. Každá replika dotazu se účtuje stejným způsobem jako váš server. Všechny repliky dotazů se vytvoří ve stejné oblasti jako váš server. Počet replik dotazů, které můžete nakonfigurovat, jsou omezené oblastí, ve které je váš server. Další informace najdete v tématu Dostupnost podle oblasti. Horizontální navýšení kapacity nezvyšuje množství dostupné paměti pro váš server. Pokud chcete zvýšit paměť, musíte svůj plán upgradovat.

Proč vertikálně navýšit kapacitu?

V typickém nasazení serveru slouží jeden server jako server pro zpracování i dotazovací server. Pokud počet klientských dotazů na modelech na vašem serveru překračuje počet jednotek zpracování dotazů (QPU) pro plán vašeho serveru nebo k zpracování modelů dochází současně s vysokými úlohami dotazů, může se výkon snížit.

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). Můžete škálovat počet replik ve fondu dotazů tak, aby splňovaly požadavky QPU v kritických časech, a kdykoli můžete oddělit zpracovatelový server 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 databáze modelu 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 do fondu dotazů přírůstkově přidají nové repliky 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 škálování 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 databáze modelů 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á místa 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í s daty z druhé sady souborů.

I když se automatická synchronizace provádí jenom při prvním horizontálním navýšení kapacity serveru, můžete také provést ruční synchronizaci. Synchronizace zajišťuje, že data na replikách ve fondu dotazů odpovídají primárnímu serveru. Při zpracování (aktualizace) modelů na primárním serveru je nutné provést synchronizaci po dokončení operací zpracování. 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.

Při následné operaci horizontálního navýšení kapacity, například zvýšení počtu replik ve fondu dotazů ze dvou na pět, jsou nové repliky hydratované 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, budou nové repliky ve fondu dotazů hydratované dvakrát – redundantní hydratace. Při následné operaci 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ímu hydrataci přidaných replik. Souběžné operace synchronizace a horizontálního navýšení kapacity spuštěné najednou nejsou povolené.

  • 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 zajišťuje minimální dopad na prostředky QPU a paměti.

  • 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 škálujete kapacitu 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í nadbytečné hydrataci nově přidaných replik.

  • Při odstraňování databáze modelu z primárního serveru se automaticky neodstraní z replik ve fondu dotazů. Operaci synchronizace musíte provést pomocí příkazu Sync-AzAnalysisServicesInstance PowerShellu, který odebere soubor/s pro danou databázi z umístění sdíleného úložiště objektů blob repliky a pak odstraní databázi modelu na 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 je nastavení Oddělit zpracovatele od nastavení dotazování fondu na ano. Pak se pomocí SSMS připojte k primárnímu serveru pomocí kvalifikátoru :rw a zjistěte, jestli databáze existuje. Pak se připojte k replikám ve fondu dotazů tak, že se připojíte bez kvalifikátoru :rw , abyste zjistili, jestli existuje také stejná databáze. 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í správnou synchronizaci databáze s každou replikou. Po přejmenování proveďte synchronizaci pomocí příkazu Sync-AzAnalysisServicesInstance určující -Database parametr 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 určující -Database 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, ne přírůstkově. Rehydrace probíhá ve fázích. Jsou odpojené a připojené dva po druhém (za předpokladu, že existují alespoň 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 možná budou muset znovu připojit k jedné z online replik během tohoto procesu. 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 pravděpodobně konzistentní během procesu synchronizace.
  • Vzhledem k tomu, že databáze se uchovávají online na všech replikách během procesu synchronizace, klienti se nemusí znovu připojit.
  • Mezipaměť v paměti se přírůstkově aktualizuje pouze se změněnými daty, což může být rychlejší než úplné dosazování modelu.

Nastavení replikySyncMode

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

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

RelicaSyncMode setting

Při nastavování ReplikySyncMode=2 v závislosti na tom, kolik mezipaměti je potřeba aktualizovat, může repliky dotazů využívat další paměť. 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 repliky, 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 další paměť pro operace aktualizace, takže může být nepravděpodobné, že repliky budou mít nedostatek paměti. Běžným scénářem je také 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, zkusí to znovu pomocí výchozí techniky (připojit nebo odpojit dvě po sobě).

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

Pokud chcete dosáhnout maximálního výkonu pro operace zpracování i dotazů, můžete se rozhodnout oddělit server pro zpracování od fondu dotazů. Při oddělení jsou nová klientská připojení přiřazena pouze k replikám dotazů ve fondu dotazů. Pokud operace zpracování trvá jenom krátkou dobu, můžete se rozhodnout oddělit váš server pro zpracování od fondu dotazů jenom po dobu potřebnou k provádění operací zpracování a synchronizace a pak ho zahrnout zpět do fondu dotazů. Při oddělení serveru pro zpracování z fondu dotazů nebo jeho přidání zpět do fondu dotazů může trvat až pět minut, než se operace dokončí.

Monitorování využití QPU

Pokud chcete zjistit, jestli je pro váš server potřeba horizontální navýšení kapacity, monitorujte server v Azure Portal pomocí metrik. Pokud se 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 dotazů překročí dostupnou funkci QPU.

Další dobrou metrikou pro sledování je průměr QPU serverResourceType. Tato metrika porovnává průměrnou hodnotu QPU pro primární server s fondem dotazů.

Query scale out metrics

Konfigurace QPU podle ServeruResourceType

  1. V spojnicovém grafu Metriky klikněte na Přidat metriku.
  2. Ve službě RESOURCE vyberte server a potom v oboru názvů metrik, vyberte standardní metriky služby Analysis Services, pak v METRIC, vyberte QPU a pak v AGREGACI vyberte Avg.
  3. Klikněte na Použít rozdělení.
  4. V hodnotách vyberte ServerResourceType.

Podrobné protokolování diagnostiky

Protokoly služby Azure Monitor můžete použít k podrobnější diagnostice prostředků serveru se škálováním na více systémů. Pomocí protokolů můžete pomocí dotazů Log Analytics rozdělit QPU a paměť podle serveru a repliky. Další informace najdete v příkladech dotazů v protokolování diagnostiky služby Analysis Services.

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

V 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 dotazovacího fondu vyberte ano, pokud chcete vyloučit server pro zpracování z dotazových serverů. Klientská připojení pomocí výchozího připojovacího řetězce (bez :rw) se přesměrují na repliky ve fondu dotazů.

    Scale-out slider

  3. Kliknutím na Uložit zřiďte nové servery repliky 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 nulovou repliku a pak se znovu škáluje na libovolný počet replik.

Synchronizace

Synchronizační operace musí být provedeny ručně nebo pomocí rozhraní REST API.

V Azure Portal

V modelu >přehledu>– Synchronizovat model.

Synchronize icon

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 Description
-1 Neplatný
0 Replikace
1 Dosazování
2 Dokončeno
3 Neúspěšný
4 Dokončení

PowerShell

Poznámka

Tento článek používá modul Azure Az PowerShellu, což je doporučený modul PowerShellu pro interakci s Azure. Pokud chcete začít s modulem Az PowerShell, projděte si téma věnované instalaci 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 PowerShell.

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.

Připojení

Na stránce Přehled vašeho serveru existují 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 klientská připojení koncových uživatelů, jako jsou Power BI Desktop, Excel a vlastní aplikace, použijte název serveru.

Pro SSMS, Visual Studio a připojovací řetězce 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.

Server names

Vertikální navýšení, vertikální navýšení nebo snížení kapacity vs. horizontální navýšení kapacity

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

Řešení potíží

Problém: Uživatelům se v režimu připojení ReadOnly nepodařilo najít název< instance serveru>.

Řešení: Při výběru možnosti Oddělit server pro zpracování od možnosti dotazování fondu se klientská připojení pomocí výchozího připojovacího řetězce (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á klientská připojení 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ůstanou online. Pokud se rozhodnete, že během zpracování nemáte ve fondu dotazů server pro zpracování, můžete ho odebrat z fondu ke zpracování a potom ho přidat zpět do fondu po dokončení zpracování, ale před synchronizací. K monitorování stavu synchronizace použijte metriky paměti a QPU.

Monitorování metrik serveru
Správa Azure Analysis Services