--- warning: DO NOT CHANGE THIS MANUALLY, THIS IS GENERATED BY https://github.com/duckdb/community-extensions repository, check README there title: pbi_scanner excerpt: | DuckDB Community Extensions DuckDB extension for querying Power BI Semantic Models with DAX. docs: extended_description: | Query Power BI Semantic Models from DuckDB using DAX via XMLA endpoint. - The `dax_query` function executes DAX and returns results as DuckDB tables. - `pbi_tables`, `pbi_columns`, `pbi_measures`, and `pbi_relationships` expose INFO.VIEW metadata results for model exploration. The easiest way to get started is Azure CLI auth (`az login`) with `SET pbi_scanner_auth_mode = 'azure_cli'`, but Azure CLI is not required. `connection_string` and `dax_text` are positional. Named options use `:=`: `auth_mode`, `access_token`, `secret_name`, `tenant_id`, `client_id`, `client_secret`, `effective_user_name`, `timeout_ms`, `schema_probe_rows`, `normalize_dax_column_names`. You may also use the DuckDB `azure` extension to create an Azure secret. More details and examples are in the [pbi_scanner repository](https://github.com/crazy-treyn/pbi_scanner). hello_world: | INSTALL pbi_scanner FROM community; LOAD pbi_scanner; SET pbi_scanner_auth_mode = 'azure_cli'; SELECT * FROM dax_query( 'Data Source=powerbi://api.powerbi.com/v1.0/myorg/Example%20Workspace;Initial Catalog=example_semantic_model;', 'EVALUATE ROW("probe_ok", 1)' ); extension: name: pbi_scanner description: DuckDB extension for querying Power BI Semantic Models with DAX. version: '0.0.6' language: C++ build: cmake license: MIT excluded_platforms: "wasm_threads;windows_amd64_mingw;osx_amd64" maintainers: - crazy-treyn repo: github: crazy-treyn/pbi_scanner ref: 2c6ad65522d7e0cde19b701ef7895a4c210a5910 extension_star_count: 16 extension_star_count_pretty: 16 extension_download_count: 14931 extension_download_count_pretty: 14.9k image: '/images/community_extensions/social_preview/preview_community_extension_pbi_scanner.png' layout: community_extension_doc --- ### Compatibility Matrix This table covers all DuckDB releases that have not reached [end-of-life](https://duckdb.org/release_calendar), including LTS releases, and shows the 2 most recent patch releases of each. Older patch releases are not listed, but the extension may be available for them as well.
| Platform | 1.4.4 | 1.4.5 | 1.5.5 | 1.5.6 | 2.0.0 | | :--- | :---: | :---: | :---: | :---: | :---: | | Linux AMD64 | ❌ | ❌ | ✅ | ✅ | ✅ | | Linux ARM64 | ❌ | ❌ | ✅ | ✅ | ✅ | | macOS AMD64 | ❌ | ❌ | ❌ | ❌ | ❌ | | macOS ARM64 | ❌ | ❌ | ✅ | ✅ | ✅ | | Windows AMD64 | ❌ | ❌ | ✅ | ✅ | ✅ | | Windows ARM64 | ❌ | ❌ | ❌ | ❌ | ❌ | | WebAssembly | ❌ | ❌ | ✅ | ✅ | ✅ | ### Installing and Loading ```sql INSTALL {{ page.extension.name }} FROM community; LOAD {{ page.extension.name }}; ``` {% if page.docs.hello_world %} ### Example ```sql {{ page.docs.hello_world }}``` {% endif %} {% if page.docs.extended_description %} ### About {{ page.extension.name }} {{ page.docs.extended_description }} {% endif %} ### Added Functions | function_name | function_type | description | comment | examples | |-------------------|---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | dax_query | table | Runs a DAX statement against a Power BI semantic model or a direct XMLA endpoint and returns the result rows as a table. connection_string and dax_text are positional; named options use :=. | NULL | [SELECT * FROM dax_query('Data Source=powerbi://api.powerbi.com/v1.0/myorg/Example%20Workspace;Initial Catalog=example_semantic_model;', 'EVALUATE ROW("probe_ok", 1)');] | | pbi_columns | table | Returns the columns in a Power BI semantic model by running EVALUATE INFO.VIEW.COLUMNS(). connection_string is positional; named options use :=. | NULL | [SELECT * FROM pbi_columns('Data Source=powerbi://api.powerbi.com/v1.0/myorg/Example%20Workspace;Initial Catalog=example_semantic_model;');] | | pbi_measures | table | Returns the measures in a Power BI semantic model by running EVALUATE INFO.VIEW.MEASURES(). connection_string is positional; named options use :=. | NULL | [SELECT * FROM pbi_measures('Data Source=powerbi://api.powerbi.com/v1.0/myorg/Example%20Workspace;Initial Catalog=example_semantic_model;');] | | pbi_relationships | table | Returns the relationships in a Power BI semantic model by running EVALUATE INFO.VIEW.RELATIONSHIPS(). connection_string is positional; named options use :=. | NULL | [SELECT * FROM pbi_relationships('Data Source=powerbi://api.powerbi.com/v1.0/myorg/Example%20Workspace;Initial Catalog=example_semantic_model;');] | | pbi_tables | table | Returns the tables in a Power BI semantic model by running EVALUATE INFO.VIEW.TABLES(). connection_string is positional; named options use :=. | NULL | [SELECT * FROM pbi_tables('Data Source=powerbi://api.powerbi.com/v1.0/myorg/Example%20Workspace;Initial Catalog=example_semantic_model;');] | ### Overloaded Functions This extension does not add any function overloads. ### Added Types This extension does not add any types. ### Added Settings | name | description | input_type | scope | aliases | typed_value | |----------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|--------|---------|-------------| | normalize_dax_column_names | When true, strip DAX square brackets and table qualifiers from dax_query and pbi_* metadata table function column names (default off; opt in via SET or normalize_dax_column_names) | BOOLEAN | GLOBAL | [] | false | | pbi_scanner_auth_mode | Default auth mode for pbi_scanner table functions (access_token, azure_cli, service_principal) | VARCHAR | GLOBAL | [] | | | temp_directory | Set the directory to which temporary files are written. | VARCHAR | GLOBAL | [] | post.db.tmp |