Skip to main content

Connect to your tabular model and perform operations programmatically

Project description

PyTabular

PyPI version readthedocs pages-build-deployment

What is it?

PyTabular is a python package that allows for programmatic execution on your tabular models! This is possible thanks to Pythonnet and Microsoft's .Net APIs on Azure Analysis Services. The package should have the dll files included when you import it. See Documentation Here

Getting Started

python3 -m pip install python_tabular

In your python environment, import pytabular and call the main Tabular Class. Only parameter needed is a solid connection string.

    import pytabular
    model = pytabular.Tabular(CONNECTION_STR)

DAX Query

    model.Query(DAX_QUERY)
    # Returns a Pandas DataFrame

Refresh Tables and Partitions

    #Can be str(table name only), Table object, Partition object, or an iterable combination of the three.
    model.Refresh('Table Name')
    tables_to_refresh = ['Table Name 1', 'Table Name 2', <Table Class>, <Partition Class>]
    #Queue up the tables and partitions that you want to refresh.
    model.Refresh(tables_to_refresh)

    #Once you are ready, update to execute the refresh
    model.SaveChanges()

Built In Dax Query Helpers

    #Query Every Column
    model.Query_Every_Column() #Will return pd.DataFrame()

    #Query Every Table
    model.Query_Every_Table() #Will return pd.DataFrame()
    
    '''
    NOTE, notice the default values for the query_function argument. 
    Query_Every_Column will get COUNTROWS(VALUES(_))
    and Query_Every_Table() will get COUNTROWS(_)
    with '_' being replaced with the dax identifier to the table or column in question.
    You can replace this str with anything you want. For example output the MIN(_) or MAX(_) of each column rather than the default queries.
    '''

Backup & Revert a Table in Memory

    model.Backup_Table('TableName') #This will backup the table with surround items (columns,measures,relationships,roles,hierarchies,etc.) and will add a suffix of '_backup'
    #Make any changes to your original table and then revert or delete backup as necessary
    model.Revert_Table('TableName') #This will essentially replace your original with _backup

Run BPA from TE2

    TE2 = pytabular.TE2() #Feel free to input your TE2 File path or this will download for you.
    BPA = pytabular.BPA() #Fee free to input your own BPA file or this will download for you from: https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json
    model.Analyze_BPA(TE2.EXE_Path,BPA.Location) #This will output a list of BPA violations...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_tabular-0.0.40.tar.gz (2.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_tabular-0.0.40-py3-none-any.whl (2.2 MB view details)

Uploaded Python 3

File details

Details for the file python_tabular-0.0.40.tar.gz.

File metadata

  • Download URL: python_tabular-0.0.40.tar.gz
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for python_tabular-0.0.40.tar.gz
Algorithm Hash digest
SHA256 f94eff68f7bb8f4e17f3965aed1dc12877c6ed13b8d34ebd37c69f40ea7fab79
MD5 e748487d1c0ffeb84c2dad753b49e196
BLAKE2b-256 d11bbf37577582c155f5c3ec651a0e153248fe344693909aeb231516b7e8751b

See more details on using hashes here.

File details

Details for the file python_tabular-0.0.40-py3-none-any.whl.

File metadata

File hashes

Hashes for python_tabular-0.0.40-py3-none-any.whl
Algorithm Hash digest
SHA256 37ff9d7126ff42a0403688c4099031d94b43d0941f620db063c7711f601679b9
MD5 8a02576f5d65a492694b09dd15f371e3
BLAKE2b-256 f39e6806cb79965b23396e3f9f658cbb9b1e8e6178e916798922b6838b6293ca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page