Efficient Tabular Automation with TMSL and PowerShell

Efficient Tabular Automation with TMSL and PowerShell
Slide Note
Embed
Share

Senior Consultant at Adatis, Ust Oldfield, delves into the world of Tabular Automation using TMSL and PowerShell. Explore the power of in-memory SSDT Semantic Layer and discover how Tabular in a Warehouse Architecture revolutionizes data analytics. Learn the benefits of using Tabular as a Corporate Data Fast Analytics Engine and dive into the challenges and solutions in Tabular modeling. Featuring a deep dive into Tabular Model Scripting Language (TMSL) and the various objects in a tabular model, this session is a must for those seeking to streamline their data processes efficiently.

  • Tabular Automation
  • TMSL
  • PowerShell
  • Data Analytics
  • Tabular Modeling

Uploaded on Mar 18, 2025 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Tabular Automation With TMSL and PowerShell Ust Oldfield | Adatis 15/02/2018

  2. Ust Oldfield Senior Consultant at Adatis Love to travel Enjoy trying to make things more efficient

  3. Tabular In-Memory SSDT Semantic Layer

  4. Tabular in a Warehouse Architecture

  5. Tabular in a Warehouse Architecture

  6. Why Use Tabular Corporate Data Fast Analytics Engine Easy To Develop Models

  7. The Problems I ve got 99 problems and the DAX ain t one

  8. Agenda Business Built Tabular Model Now Don t know SSAS What s Visual Studio? / DAX

  9. Agenda Slow Development Fast Basics of a model Less time doing mundane tasks Development

  10. Agenda Large Data Set Volumes too big Selective analysis Quick and Dynamic period

  11. Solutions?

  12. Agenda Agenda Intro TMSL Intro PowerShell Demos

  13. Tabular Model Scripting Language (TMSL) Introduced in SQL Server Analysis Services 2016 JSON Format Description of objects in a tabular model Commands to send to Analysis Services Commands to manage a tabular model

  14. Tabular Objects Data Sources Tables Perspectives Cultures Roles Relationships

  15. Tabular Object Dependencies Model Data Sources Relationships Tables Perspectives Cultures Roles Perspective Tables Perspective Columns Columns Translations Members Measures Permissions Perspective Measures Partitions Perspective Hierarchies Hierarchies

  16. Data Source Object "dataSource": { "name": "SqlServer localhost AdventureWorksDW2014", "connectionString": "Provider=SQLNCLI11;Data Source=localhost;Initial Catalog=AdventureWorksDW2014;Integrated Security=SSPI;Persist Security Info=false", "impersonationMode": "impersonateAccount", "account": DOMAIN\\USER" } impersonateAnonymous impersonateCurrentUser impersonateServiceAccount impersonateUnattendedAccount default impersonateAccount

  17. Table Object "tables": [ { "name": "Table Name", "isHidden": false, "columns": [<...>], "partitions": [<...>], "measures": [<...>], "hierarchies": [<...>] } ]

  18. Column Object description alignment dataCategory displayFolder displayOrdinal formatString isAvailableInMDX isDefaultImage isDefaultLabel isHidden isKey isNullable isUnique keepUniqueRows sortByColumn summarizeBy tableDetailPosition type "columns": [ { "name": "Column Name", "dataType": "int64", "sourceColumn": "ColumnName", "sourceProviderType": "Integer" } ] CALCULATED COLUMNS isDataTypeInferred expression CALCULATED TABLES sourceColumn isNameInferred columnOriginTable columnOriginColumn

  19. Partition Object "partitions": [ { "name": "Table Name", "dataView": "full", "source": { "query": " SELECT [SchemaName].[TableName].* FROM [SchemaName].[TableName] ", "dataSource": "SqlServer AdventureWorksDW2014" } } ]

  20. Measure Object "measures": [ { "name": "Measure Name", "expression": " COUNTX(InternetSales, InternetSales[OrderDateKey])" } ]

  21. Hierarchy Object "hierarchies": [ { "name": "Hierarchy Name", "levels": [ { "name": "Hierarchy Column1", "ordinal": 0, "column": "Table Column1" }, { "name": "Hierarchy Column2", "ordinal": 1, "column": "Table Column2" ] } ]

  22. Perspective Object "perspectives": [ { "name": "Perspective Name", "tables": [ { "name": "Table Name", "columns": [<...>], "measures": [<...>], "hierarchies": [<...>] } ] } ]

  23. Culture Object "cultures": [ { "name": "fr-FR", "translations": [ { "model": { "name": "Model", "translatedCaption": "Mod le", "tables": [ { "name": "TableName", "translatedCaption": "NomDeLaTable", "columns": [<...>] } ] } } ] } ]

  24. Role Object "role": { "name": "Role", "modelPermissions": "read", "members": [ { "memberName": "ujo", "memberId": "S-1-5-21-2328473335-1214001268-1226958112-1001" } ] }

  25. Relationship Object "relationships": [ { "name": "ManyTableNameToOneTableName", "fromTable": "ManyTableName", "fromColumn": "ForeignKey", "toTable": "OneTableName", "toColumn": "PrimaryKey" } ]

  26. TMSL Commands "create": "createOrReplace": "refresh": "alter": "attach": "backup": "delete": "detach": "mergePartitions": "restore": "sequence": "synchronize":

  27. PowerShell Command-line language Used to administer operating systems Used to automate processes Uses cmdlets to extend functionality

  28. Invoke-ASCmd cmdlet #Uses an input file to issue a command to an AS server Invoke-ASCmd InputFile "C:\folder-name\TMSLScript.json" -Server "localhost" #Uses a Query to issue a command to an AS server Invoke-ASCmd -Server "localhost" -Query "{""refresh"":{""type"": ""full"", ""objects"": [{""database"": ""AdventureWorks2014""}]}}"

  29. The Dream Team Metadata driven Templates Extendable TMSL

  30. The Problems, again Business Built Tabular Slow Development Large Data Set

  31. Filtered Model From Template Flow Find and Replace Values

  32. Demo Filtered Model From Template

  33. Tabular Generation No Template Flow object

  34. Demo Tabular Generation No Template

  35. Tabular Generation From Template Flow object Find and Replace Values

  36. Demo Tabular Generation From Template

  37. Summary Filtered Model From Template Tabular Generation No Template Tabular Generation From Template

  38. The Future

  39. The Future

  40. The Future

  41. References https://docs.microsoft.com/en-us/sql/analysis- services/tabular-models-scripting-language- objects/tmsl-reference-tabular-objects https://docs.microsoft.com/en-us/sql/analysis- services/tabular-models-scripting-language- commands/tmsl-reference-commands https://docs.microsoft.com/en-us/sql/analysis- services/powershell/analysis-services-powershell- reference

  42. Thanks for Listening Ust Oldfield @uoldfield https://github.com/uoldfield/TabularAutomation blogs.adatis.co.uk/ustoldfield

Related


More Related Content