Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
Voor de tutorial van vandaag laat ik zien hoe u het proces van het sorteren van de ene kolom op de andere kolom kunt automatiseren in LuckyTemplates- en SSAS- of SQL-serveranalyseservices. Je kunt de volledige video van deze tutorial onderaan deze blog bekijken.
In dit voorbeeld hebben we de tabel Datums met verschillende kolommen. Sommige kolommen zijn het gehele deel, dat we gaan verbergen; en sommige kolommen zijn het stringgedeelte, dat we aan de eindgebruiker gaan laten zien.
We hebben dus de kolommen Kalenderjaar, Kalenderjaar Maand en Maand. Wat we willen doen, is het sorteren van deze drie kolommen automatiseren op basis van hun geheel getal. Ik sorteer het kalenderjaar op het kalenderjaarnummer, de kalenderjaarmaand op het kalenderjaarmaandnummer en de maand op het maandnummer.
Maar dat gaan we niet één voor één doen. We zullen een script uitvoeren dat dat automatisch sorteert voor deze specifieke tabel. Als u meerdere kolommen voor meerdere tabellen heeft, kunt u dat script op die tabellensets gebruiken.
We gaan Tabular Editor gebruiken om die C#-code te schrijven, maar voorlopig heeft Tabular Editor geen IntelliSense voor de C#-taal. Om het gemakkelijker te maken, gebruiken we Visual Studio (VS), waar we de IntelliSense voor C#-taal hebben en je kunt ook VS-code gebruiken.
Inhoudsopgave
Kolommen sorteren in LuckyTemplates en SSAS met behulp van C#
Eerst moeten we een nieuw project maken in Visual Studio, de Console App (.Net Framework) voor de C#-taal. Laten we dat selecteren klik op Volgende.
Vervolgens kunnen we elke naam aan het project geven. Ik noem dit SortBy en klik op Create.
Nu kun je zien dat we de code hebben. Zodra de code werkt, gaan we deze gewoon kopiëren en plakken in de Tabular Editor.
Maar om de code in Visual Studio te laten werken, moeten we een verwijzing naar een bibliotheek instellen. En daarvoor kunnen we eenvoudig op de referenties klikken en de optie kiezen om NuGet-pakketten te beheren in de browseroptie.
Binnen de bladeroptie moeten we analyseservices schrijven . En dan moeten we in de beschikbare opties de tweede selecteren en op Installeren klikken. Het begint met de installatie en het duurt een paar seconden voordat de installatie is voltooid.
Vervolgens moeten we in de code schrijven met behulp van Microsoft.AnalysisServices.Tabular en vervolgens een puntkomma schrijven. We gaan een serverobject maken, dus we kunnen gewoon Server schrijven , en de naam van het serverobject is Server zelf, en we gaan New Server schrijven .
Dus eigenlijk creëren we een nieuw object in het geheugen. En om die server met het LuckyTemplates-bestand te verbinden, gaan we een methode van het serverobject gebruiken. Dus laten we server.Connect schrijven , en hier geven we het poortnummer op waarop de AnalysisServices in LuckyTemplates luistert.
Om dat poortnummer te vinden, gaan we naar External Tools, klikken op DAX Studio en onderaan vinden we de lokale host. Dat is het codenummer waarop SQL-serveranalyseservices die we in LuckyTemplates hebben, luisteren naar de wijzigingen die we via LuckyTemplates of een andere externe tool verzenden.
De server is één ding, maar een server kan ook meerdere modellen hebben in het geval van SSAS. Maar op dit moment hebben we in LuckyTemplates maar één model. Dus we gaan dat model declareren. We schrijven hier Model is gelijk aan (=) server.Databases , en we zullen toegang krijgen tot de allereerste database binnen die server, dus we schrijven .Model .
Laten we nu eens testen of dat deel van de code werkt of niet. Om dat te doen, printen we gewoon de lijst met alle tabellen die we in dat datamodel hebben. Dus we typen hier voor elke (Table t in model.Tables) , haakje openen en op enter drukken.
Daarna typen we Console.WriteLine (t.Name) in . Om ervoor te zorgen dat het venster niet automatisch sluit zodra de naam van de tabellen is afgedrukt, schrijven we dat Console.ReadLine , open en sluit haakjes en een puntkomma. Nu hoeven we alleen maar op de Start- optie te klikken en te wachten tot deze wordt uitgevoerd.
U kunt zien dat we de naam kunnen afdrukken van de tabellen die we in het gegevensmodel hebben. We hebben de datums, het product, de klant en de winkel. Dat bevestigt dat de setup die we hebben gemaakt werkt.
Dus nu kunnen we echt ingaan op het vlees van de code en beginnen met het maken van de code die ons zal helpen bij het sorteren van die kolom op de integer-tegenhanger.
Laten we alles verwijderen dat we hebben gemaakt van het ForEach- gedeelte. We gaan de server en het model houden zoals het is. Laten we een variabele declareren die de naam bevat van de tabel waarop we willen herhalen. Ik noem het als DatesTable , en de naam van de tabel zal in feite Dates zijn .
Vervolgens hebben we foreach var t in model.Tables , dan gaan we een where- clausule gebruiken , zodat we kunnen zeggen waar T naar t gaat . Naam moet gelijk zijn aan DatesTable . Als we momenteel de DatesTable herhalen, gaan we een nieuwe lus starten over alle kolommen van die DatesTable. Dus daarvoor kunnen we voor elke var c in t.Columns schrijven .
Om te testen of we alleen itereren over de DatesTable en we toegang hebben tot alle kolommen van de DatesTable, kunnen we eenvoudig Console.WriteLine afdrukken en we gaan c.Name zeggen .
Als ik op F5 druk, zie je dat we toegang krijgen tot de kolommen.
Nu kunnen we verder gaan en meer code schrijven.
We gaan een lijst met tuples maken die nog drie kolommen zal bevatten. Een van de kolommen wordt de doelkolom. De tweede kolom is de kolom waardoor we de doelkolom willen sorteren, en de derde kolom bevat gewoon waar of onwaar, of we nu de kolom willen verbergen waardoor we eigenlijk aan het sorteren zijn.
Stel dat we de kolom Kalenderjaar willen sorteren op kalenderjaarnummer. De eerste kolom bevat het kalenderjaar, de tweede kolom is voor het kalenderjaarnummer en de derde kolom bepaalt of we de kolom kalenderjaarnummer willen verbergen nadat we het sorteren hebben voltooid of niet.
En laten we daarvoor teruggaan naar Visual Studio, waar we een nieuwe variabele gaan maken. Je kunt het noemen wat je wilt. In dit voorbeeld noem ik het colOperations . Vervolgens gaan we schrijven new , en dan gaan we een lijst maken en we schrijven het type kolommen (string, string en bool). Daarna maken we de tuples.
Dus eigenlijk maken we gewoon een lijst met drie kolommen en voor drie kolommen hebben we twee rijen opgegeven. Nu gaan we binnen onze foreach- lus een for-lus starten . Dus eigenlijk zeggen we dat het declareren van een variabele begint met i in elke iteratie. Als i kleiner is dan colOperations.Count, verhoog dan gewoon dat .
Vervolgens gaan we een IF- statement schrijven. De c.Name hoort bij de naam van de kolom waarin we ons momenteel bevinden. Dan hebben we de colOperations i . De i stelt ons in principe in staat om toegang te krijgen tot een bepaalde rij. En als we schrijven .Item1 , hebben we toegang tot de eerste kolom, tweede kolom of derde kolom.
Dus eerst gaan we de kolom Item1 gebruiken . Als dat waar is, schrijven we gewoon dat c.SortByColumn gelijk moet zijn aan t.Columns . Onthoud dat t het tabelobject is. Vervolgens hebben we toegang tot de kolommen van die specifieke tabel. We willen de colOperations , de rij waarin we ons momenteel bevinden in de kolombewerkingen, en de kolom is in feite het Item2- object.
Ten slotte schrijven we een laatste regel code om die specifieke kolom te verbergen waardoor we de sortering toepassen.
Dus nu we de hoofdcode hebben geschreven die we gaan uitvoeren tegen ons tabelmodel, kunnen we eenvoudig de code van var colOperations kopiëren en naar de Tabular Editor brengen, en dan gaan we dezelfde code uitvoeren.
Kolommen sorteren in LuckyTemplates en SSAS met behulp van Tabular Editor
We gaan de server of het modelobject niet gebruiken, omdat Tabular Editor achter de schermen automatisch weet met welk LuckyTemplates-model of welk analyseservicesmodel het verbinding moet maken. We hoeven die variabelen dus niet te gebruiken, want dat is al de taak van de Tabular Editor om te bepalen hoe hij verbinding wil maken met die modellen.
Terug in LuckyTemplates gaan we Tabular Editor 3 of Tabular Editor 2 starten. U kunt elke gewenste gebruiken. Laten we in dit geval Tabular Editor 3 gebruiken.
We gaan naar het tabblad Bestand, klikken op Nieuwe C#-code en sluiten de optie Eigenschappen. Vervolgens kunnen we de code hier plakken. Het enige waar we zeker van moeten zijn, is dat in plaats van de modelvariabele het modelobject te gebruiken . Laten we dus de hoofdletter M gebruiken en die code uitvoeren.
Nu het script met succes is uitgevoerd en er ook staat dat er drie modelwijzigingen worden weergegeven, gaan we de wijzigingen vastleggen in het gegevensmodel. We bewaren alles wat we op die kolommen hebben toegepast.
Terug in LuckyTemplates kunt u zien dat het maandnummer verborgen is. Als ik op de kolom Month klik en naar Column Tools en Sort By Column ga , kun je zien dat die specifieke kolom is gesorteerd op maandnummer. Hetzelfde geldt voor het kalenderjaar maandnummer.
Het kalenderjaar is op zichzelf gesorteerd omdat we die kolom niet in die C#-code hadden. Wat we dus kunnen doen, is de Tabular Editor opnieuw starten en een nieuwe tuple maken. En dan voeren we dat script opnieuw uit.
Tabular Editor LuckyTemplates: Versie 3 Review & Tutorial
LuckyTemplates Tabular Editor 3: automatiseren met een script
DAX-codering in Tabular Editor 3
Conclusie
Zo eenvoudig is het om het proces van het sorteren van de ene kolom op de andere kolom te automatiseren in en SSAS. Dit was een heel eenvoudig voorbeeld van hoe u die bewerking kunt uitvoeren in de tabel Datums. Maar u kunt deze lijst verrijken door meer kolommen toe te voegen en vervolgens naar een andere tabel te zoeken.
Op die manier kunt u de hoeveelheid tijd verminderen die u moet besteden aan het sorteren van deze kolommen voor dezelfde modellen die u keer op keer gaat maken.
Ik hoop dat je dit nuttig vond. Als je vragen hebt, laat het me dan weten in het opmerkingengedeelte.
Wat is zelf in Python: voorbeelden uit de echte wereld
Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.
In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.
Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.
In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.
Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.
Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.
Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.
Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.
Wat is LuckyTemplates Gateway? Alles wat u moet weten