Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
SQL Server Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
SQL Server SQL Server Analysis Services-personalisatie-extensies vormen de basis van het idee om een invoegtoepassingsarchitectuur te implementeren. In een invoegtoepassingsarchitectuur kunt u dynamisch nieuwe kubusobjecten en -functionaliteit ontwikkelen en deze eenvoudig delen met andere ontwikkelaars. Als zodanig bieden sql Server Analysis Services-personalisatie-extensies de functionaliteit die het mogelijk maakt om het volgende te bereiken:
Dynamisch ontwerp en implementatie Onmiddellijk nadat u sql Server Analysis Services-persoonlijke instellingen hebt ontworpen en geïmplementeerd, hebben gebruikers toegang tot de objecten en functionaliteit aan het begin van de volgende gebruikerssessie.
Interface-onafhankelijkheid Ongeacht de interface die u gebruikt om de persoonlijke sql Server Analysis Services-extensies te maken, kunnen gebruikers elke interface gebruiken om toegang te krijgen tot de objecten en functionaliteit.
Sessiecontext Persoonlijke sql Server Analysis Services-extensies zijn geen permanente objecten in de bestaande infrastructuur en vereisen niet dat de kubus opnieuw wordt verwerkt. Ze worden zichtbaar en gemaakt voor de gebruiker op het moment dat de gebruiker verbinding maakt met de database en blijven beschikbaar voor de lengte van die gebruikerssessie.
Snelle distributie Deel sql Server Analysis Services-personalisatie-extensies met andere softwareontwikkelaars zonder dat u gedetailleerde specificaties hoeft in te gaan over waar of hoe u deze uitgebreide functionaliteit kunt vinden.
Sql Server Analysis Services-personalisatie-extensies hebben veel gebruik. Uw bedrijf heeft bijvoorbeeld verkopen die betrekking hebben op verschillende valuta's. U maakt een berekend lid dat de geconsolideerde verkopen retourneert in de lokale valuta van de persoon die toegang verkrijgt tot de cube. U maakt dit lid als een persoonlijke uitbreiding. Vervolgens deelt u dit berekende lid met een groep gebruikers. Zodra deze gebruikers zijn gedeeld, hebben deze gebruikers direct toegang tot het berekende lid zodra ze verbinding maken met de server. Ze hebben toegang, zelfs als ze niet dezelfde interface gebruiken als de interface die is gebruikt om het berekende lid te maken.
Personaliseringsextensies van SQL Server Analysis Services zijn een eenvoudige en elegante aanpassing van de bestaande beheerde assembly-architectuur en worden weergegeven in het SQL Server Analysis Services Microsoft.AnalysisServices.AdomdServer-objectmodel, MDX-syntaxis (Multidimensional Expressions) en schemarijsets.
Logische architectuur
De architectuur voor sql Server Analysis Services-persoonlijke instellingen is gebaseerd op de beheerde assemblyarchitectuur en de volgende vier basiselementen:
Het specifieke kenmerk [PlugInAttribute]
Bij het starten van de service laadt SQL Server Analysis Services de vereiste assembly's en bepaalt u welke klassen het aangepaste kenmerk Microsoft.AnalysisServices.AdomdServer.PlugInAttribute hebben.
Opmerking
In .NET Framework worden aangepaste kenmerken gedefinieerd als een manier om uw code te beschrijven en het gedrag van runtime te beïnvloeden. Zie het onderwerp Kenmerkenoverzicht in de handleiding voor ontwikkelaars van .NET Framework op MSDN voor meer informatie.
Voor alle klassen met het aangepaste kenmerk Microsoft.AnalysisServices.AdomdServer.PlugInAttribute roept SQL Server Analysis Services hun standaardconstructors aan. Het aanroepen van alle constructors bij het opstarten biedt een gemeenschappelijke locatie waar nieuwe objecten kunnen worden gemaakt en die onafhankelijk is van elke gebruikersactiviteit.
Naast het bouwen van een kleine cache met informatie over het ontwerpen en beheren van persoonlijke instellingen, abonneert de klasseconstructor zich doorgaans op de gebeurtenissen Microsoft.AnalysisServices.AdomdServer.Server.SessionOpened en Microsoft.AnalysisServices.AdomdServer.Server.SessionClosing. Als u zich niet op deze gebeurtenissen abonneert, kan dit ertoe leiden dat de klasse onjuist is gemarkeerd voor opschoning door de CLR-garbagecollector (Common Language Runtime).
Sessiecontext
Voor objecten die zijn gebaseerd op persoonlijke instellingen, maakt SQL Server Analysis Services een uitvoeringsomgeving tijdens de clientsessie en bouwt dynamisch de meeste van deze objecten in deze omgeving. Net als elke andere CLR-assembly heeft deze uitvoeringsomgeving ook toegang tot andere functies en opgeslagen procedures. Wanneer de gebruikerssessie afloopt, verwijdert SQL Server Analysis Services de dynamisch gemaakte objecten en sluit de uitvoeringsomgeving.
Evenementen
Het maken van objecten wordt geactiveerd door de sessiegebeurtenissen On-Cube-OpenedCubeOpened en On-Cube-ClosingCubeClosing.
Communicatie tussen de client en de server vindt plaats via specifieke gebeurtenissen. Deze gebeurtenissen informeren de cliënt over de situaties die ertoe leiden dat de objecten van de cliënt worden gebouwd. De clientomgeving wordt dynamisch gemaakt met behulp van twee sets gebeurtenissen: sessie-gebeurtenissen en kubus-gebeurtenissen.
Sessie-gebeurtenissen zijn gekoppeld aan het serverobject. Wanneer een client zich aanmeldt bij een server, maakt SQL Server Analysis Services een sessie aan en activeert de gebeurtenis Microsoft.AnalysisServices.AdomdServer.Server.SessionOpened. Wanneer een client de sessie op de server beëindigt, activeert SQL Server Analysis Services de gebeurtenis Microsoft.AnalysisServices.AdomdServer.Server.SessionClosing.
Kubus gebeurtenissen zijn gekoppeld aan het verbindingsobject. Als u verbinding maakt met een kubus, wordt de gebeurtenis Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeOpened geactiveerd. Als u de verbinding met een kubus sluit, door de kubus te sluiten of door over te schakelen naar een andere kubus, wordt een gebeurtenis Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeClosing geactiveerd.
Traceerbaarheid en foutafhandeling
Alle activiteit kan worden traceerbaar met behulp van SQL Server Profiler. Niet-verwerkte fouten worden gerapporteerd aan het Windows-gebeurtenislogboek.
Alle objectcreatie en -beheer is onafhankelijk van deze architectuur en is de enige verantwoordelijkheid van de ontwikkelaars van de objecten.
Infrastructuurfundamenten
Persoonlijke sql Server Analysis Services-extensies zijn gebaseerd op bestaande onderdelen. Hier volgt een overzicht van verbeteringen en vernieuwingen die de functionaliteit van personalisatie-uitbreidingen bieden.
Assemblies
Het aangepaste kenmerk Microsoft.AnalysisServices.AdomdServer.PlugInAttribute kan worden toegevoegd aan uw aangepaste assembly's om sql Server Analysis Services-uitbreidingsklassen voor persoonlijke instellingen te identificeren.
Wijzigingen in het AdomdServer-objectmodel
De volgende objecten in het objectmodel Microsoft.AnalysisServices.AdomdServer zijn uitgebreid of toegevoegd aan het model.
Nieuwe klasse AdomdConnection
De klasse Microsoft.AnalysisServices.AdomdServer.AdomdConnection is nieuw en biedt verschillende persoonlijke instellingen via zowel eigenschappen als gebeurtenissen.
Eigenschappen
Microsoft.AnalysisServices.AdomdServer.AdomdConnection.SessionID, een alleen-lezen tekenreekswaarde die de sessie-id van de huidige verbinding vertegenwoordigt.
Microsoft.AnalysisServices.AdomdServer.AdomdConnection.ClientCulture, een alleen-lezen verwijzing naar de clientcultuur die is gekoppeld aan de huidige sessie.
Microsoft.AnalysisServices.AdomdServer.AdomdConnection.User, een alleen-lezen verwijzing naar de identiteitsinterface die de huidige gebruiker vertegenwoordigt.
Events
Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeOpened
Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeClosing
Nieuwe eigenschappen in de contextklasse
De klasse Microsoft.AnalysisServices.AdomdServer.Context heeft twee nieuwe eigenschappen:
Microsoft.AnalysisServices.AdomdServer.Context.Server, een alleen-lezen-referentie naar het nieuwe serverobject.
Microsoft.AnalysisServices.AdomdServer.Context.CurrentConnection, een alleen-lezen-referentie naar een nieuw object Microsoft.AnalysisServices.AdomdServer.AdomdConnection.
Nieuwe serverklasse
Microsoft.AnalysisServices.AdomdServer.Server bevat zowel klasse-eigenschappen als gebeurtenissen.
Eigenschappen
Microsoft.AnalysisServices.AdomdServer.Server.Name, is een alleen-lezen tekenreekswaarde die de servernaam vertegenwoordigt.
Microsoft.AnalysisServices.AdomdServer.Server.Culture, een alleen-lezen verwijzing naar de globale cultuur die aan de server is gekoppeld.
Events
Microsoft.AnalysisServices.AdomdServer.Server.SessionOpened
Microsoft.AnalysisServices.AdomdServer.Server.SessionClosing
Klasse AdomdCommand
De klasse Microsoft.AnalysisServices.AdomdServer.AdomdCommand ondersteunt nu de volgende MDX-opdrachten:
MDX-extensies en -verbeteringen
De opdracht CREATE MEMBER is uitgebreid met de eigenschap bijschrift , de eigenschap display_folder en de eigenschap associated_measure_group .
De opdracht UPDATE MEMBER wordt toegevoegd om het opnieuw maken van leden te voorkomen wanneer een update nodig is met het gevolg verlies van prioriteit bij het oplossen van berekeningen. Updates kunnen het bereik van het berekende lid niet wijzigen, het berekende lid naar een ander bovenliggend element verplaatsen, of een andere oplosservolgorde definiëren.
De opdracht CREATE SET is uitgebreid met de eigenschap bijschrift , de eigenschap display_folder en de nieuwe STATISCHE | DYNAMISCH trefwoord. Statisch betekent dat de set alleen tijdens het maken wordt geëvalueerd. Dynamisch betekent dat de set wordt geëvalueerd telkens wanneer de set wordt gebruikt in een query. De standaardwaarde is STATISCH als een trefwoord wordt weggelaten.
OPDRACHTEN VOOR CREATE KPI en DROP KPI worden toegevoegd aan de MDX-syntaxis. KPI's kunnen dynamisch worden gemaakt op basis van elk MDX-script.
Extensies voor schemarijensets
In de kolom scope van MDSCHEMA_MEMBERS wordt toegevoegd. De waarden voor het bereik zijn als volgt: MDMEMBER_SCOPE_GLOBAL=1, MDMEMBER_SCOPE_SESSION=2.
Op MDSCHEMA_SETS wordt de set_evaluation_context kolom toegevoegd. Contextwaarden voor evaluatie instellen zijn als volgt: MDSET_RESOLUTION_STATIC = 1, MDSET_RESOLUTION_DYNAMIC = 2.
In MDSCHEMA_KPIS wordt de kolom 'scope' toegevoegd. Bereikwaarden zijn als volgt: MDKPI_SCOPE_GLOBAL=1, MDKPI_SCOPE_SESSION=2.