Workspaces - Get Workspaces [Read more...]
Workspaces - Get a Workspace [Read more...]
SELECT *
FROM Workspaces
WHERE Id='aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
Datasets - Get Datasets [Read more...]
Datasets - Get Datasets in a specified Workspace [Read more...]
SELECT *
FROM Datasets
WITH (WorkspaceId = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee')
Datasets - Get a Dataset [Read more...]
SELECT *
FROM Datasets
WHERE Id='aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
Datasets - Create a Push Dataset [Read more...]
SELECT *
FROM create_push_dataset
WITH (Definition='{
"name": "My Push Dataset Name",
"defaultMode": "Push",
"tables": [
{
"name": "Products",
"columns": [
{
"name": "Id",
"dataType": "Int64"
},
{
"name": "Name",
"dataType": "string"
},
{
"name": "Category",
"dataType": "string"
},
{
"name": "IsComplete",
"dataType": "bool"
},
{
"name": "ManufacturedOn",
"dataType": "DateTime"
},
{
"name": "Sales",
"dataType": "Int64",
"formatString": "Currency"
},
{
"name": "Price",
"dataType": "Double",
"formatString": "Currency"
}
]
}
]
}'
)
-- More info on creating a Push Dataset:
-- https://learn.microsoft.com/en-us/rest/api/power-bi/push-datasets/datasets-post-dataset
Datasets - Create a Push Dataset with 2 Tables [Read more...]
SELECT *
FROM create_push_dataset
WITH (Definition='{
"name": "My Push Dataset Name",
"defaultMode": "Push",
"tables": [
{
"name": "Customers",
"columns": [
{
"name": "Id",
"dataType": "Int64"
},
{
"name": "Name",
"dataType": "string"
}
]
},
{
"name": "Products",
"columns": [
{
"name": "Id",
"dataType": "Int64"
},
{
"name": "Name",
"dataType": "string"
},
{
"name": "Category",
"dataType": "string"
},
{
"name": "IsComplete",
"dataType": "bool"
},
{
"name": "ManufacturedOn",
"dataType": "DateTime"
},
{
"name": "Sales",
"dataType": "Int64",
"formatString": "Currency"
},
{
"name": "Price",
"dataType": "Double",
"formatString": "Currency"
}
]
}
]
}'
)
-- More info on creating a Push Dataset:
-- https://learn.microsoft.com/en-us/rest/api/power-bi/push-datasets/datasets-post-dataset
Datasets - Delete a Dataset [Read more...]
SELECT *
FROM delete_dataset
WHERE Id = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
-- More info on deleting a Dataset:
-- https://learn.microsoft.com/en-us/rest/api/power-bi/datasets/delete-dataset
Datasets - Refresh a Dataset [Read more...]
SELECT *
FROM refresh_dataset
WHERE Id = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
-- More info on refreshing a Dataset:
-- https://learn.microsoft.com/en-us/rest/api/power-bi/datasets/refresh-dataset
Tables - Get Tables in a specified Dataset [Read more...]
SELECT *
FROM get_tables
WITH (DatasetId='aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee')
Tables - Get Table Columns [Read more...]
SELECT *
FROM get_table_columns
WITH (TableName='MyTable')
Tables - Get Table Columns in a specified Dataset [Read more...]
SELECT *
FROM get_table_columns
WITH (TableName='MyTable',
DatasetId='aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee')
Tables - Get Table Rows (Use default Workspace and Dataset) [Read more...]
Tables - Get Table Rows for a specified Workspace and Dataset [Read more...]
SELECT *
FROM get_table_rows
WITH(
"TableName"='Products'
, "DatasetId"='11b6c287-51d3-4061-bed8-811a4e5f6ce9'
, "WorkspaceId"='848353e2-f3b1-4fb4-89d7-44e84b8bdf9f'
)
Tables - Insert / Update / Delete Rows for a specified Workspace and Dataset [Read more...]
INSERT INTO Products
SOURCE(
'MSSQL',
'Data Source=localhost\developer;Initial Catalog=Northwind;Integrated Security=true',
' SELECT T.* FROM ( SELECT TOP 50
ProductName AS [Name]
,C.CategoryName AS Category
,Discontinued AS IsComplete
,GETDATE() AS ManufacturedOn
,CAST(UnitPrice * ReOrderLevel * 100 AS BIGINT) AS Sales
,CAST(UnitPrice AS DECIMAL) AS Price
FROM Northwind.dbo.Products AS P
JOIN Northwind.dbo.Categories C ON P.CategoryId = P.CategoryId
) AS T
CROSS JOIN GENERATE_SERIES(1, 2000)
-- COMMENT: 50 x 2000 = 100 000 rows
'
)
CONNECTION(
Parameters = '[{ Name: "TokenUrl",Value:"https://login.microsoftonline.com/organizations/oauth2/v2.0/token"}
,{ Name: "DatasetId",Value: "6a0e04da-a6e4-4533-abe4-30fcabd0e2a5"},
{ Name: "WorkspaceId",Value: "848353e2-f3b1-4fb4-89d7-44e84b8bdf9f"}]'
)
Tables - Using an INSERT statement [Read more...]
INSERT INTO MyTable(MyColumn1, MyColumn2, MyColumn3, MyColumn4, MyColumn5)
VALUES (1001, 'Glass', true, '2001-02-03', 195.95)
Tables - Using an INSERT statement in a specified Dataset [Read more...]
INSERT INTO MyTable(MyColumn1, MyColumn2, MyColumn3, MyColumn4, MyColumn5)
VALUES (1001, 'Glass', true, '2001-02-03', 195.95)
WITH (DatasetId='aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee')
Tables - Get Table rows [Read more...]
SELECT *
FROM get_table_rows
WITH (TableName='MyTable')
Tables - Get Table rows in a specified Dataset [Read more...]
SELECT *
FROM get_table_rows
WITH (TableName='MyTable', DatasetId='aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee')
Tables - Truncate a Push Dataset Table [Read more...]
SELECT *
FROM truncate_push_dataset_table
WITH (TableName='MyTable')
-- More info on truncating a Push Dataset Table:
-- https://learn.microsoft.com/en-us/rest/api/power-bi/push-datasets/datasets-delete-rows
Tables - Truncate a Push Dataset Table in a specified Dataset [Read more...]
SELECT *
FROM truncate_push_dataset_table
WITH (DatasetId='aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee', TableName='MyTable')
-- More info on truncating a Push Dataset Table:
-- https://learn.microsoft.com/en-us/rest/api/power-bi/push-datasets/datasets-delete-rows
Execute a DAX query - Evaluating a Table [Read more...]
SELECT *
FROM execute_dax_query
WITH (Query='EVALUATE ''MyTable''')
-- More info on 'EVALUATE' statement and DAX queries:
-- https://dax.guide/st/evaluate/
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/filter-functions-dax
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference
Execute a DAX query - Using FILTER function with simple expression [Read more...]
SELECT *
FROM execute_dax_query
WITH (Query='EVALUATE FILTER(''MyTable'', [MyColumn] = "MyValue"')
-- More info on 'EVALUATE' statement and DAX queries:
-- https://dax.guide/st/evaluate/
-- https://dax.guide/filter/
-- https://dax.guide/operators/
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference
Execute a DAX query - Using FILTER function with AND and OR operators [Read more...]
SELECT *
FROM execute_dax_query
WITH (Query='EVALUATE FILTER(''MyTable'', [MyColumn1] = "MyValue" && ([MyColumn2] > 0 || [MyColumn3] <= 1000))')
-- More info on 'EVALUATE' statement and DAX queries:
-- https://dax.guide/operators/
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference
Execute a DAX query - Selecting specific columns from a Table [Read more...]
SELECT *
FROM execute_dax_query
WITH (Query='EVALUATE
SELECTCOLUMNS (
''MyTable'',
"MyColumn1 alias", [MyColumn1],
"MyColumn2 alias", [MyColumn2]
)
ORDER BY "MyColumn2 alias"'
)
-- More info on 'EVALUATE' statement and DAX queries:
-- https://dax.guide/st/evaluate/
-- https://dax.guide/selectcolumns/
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference
Execute a DAX query - Selecting and sorting TOP N rows [Read more...]
SELECT *
FROM execute_dax_query
WITH (Query='EVALUATE
TOPN(1000, ''MyTable'', [MyColumnOrExpression], ASC)')
-- More info on 'EVALUATE' statement and DAX queries:
-- https://dax.guide/st/evaluate/
-- https://dax.guide/topn/
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference
Execute a DAX query - A complicated query [Read more...]
SELECT *
FROM execute_dax_query
WITH (Query='
DEFINE
VAR MinimumAmount = 2000000
VAR MaximumAmount = 8000000
EVALUATE
FILTER (
ADDCOLUMNS (
SUMMARIZE (Sales, Products[Category]),
"CategoryAmount", [Sales Amount]
),
AND (
[CategoryAmount] <= MinimumAmount,
[CategoryAmount] >= MaximumAmount
)
)
ORDER BY [CategoryAmount]"')
-- More info on 'EVALUATE' statement and DAX queries:
-- https://dax.guide/st/evaluate/
-- https://dax.guide/addcolumns/
-- https://dax.guide/summarize/
-- https://dax.guide/st/order-by/
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/filter-functions-dax
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference
Generics - A simple generic API request [Read more...]
SELECT *
FROM generic_request
WITH (Url='/groups',
Filter='$.value[*]')
/*
EXPLANATION:
- This configuration calls Power BI REST API "Get Groups" endpoint and gets the Workspaces back.
- This is achieved by "/groups" value in the "Url" parameter.
- The SQL query parameter "Filter" uses JsonPath "$.value[*]".
- This gets JSON objects from "value" array and transforms them into SQL rows.
MORE INFORMATION:
- About "Get Groups" REST API endpoint:
https://learn.microsoft.com/en-us/rest/api/power-bi/groups/get-groups
- About JsonPath used in "Filter" parameter:
https://zappysys.com/blog/jsonpath-examples-expression-cheetsheet
*/
Generics - A generic API request with URL parameter [Read more...]
SELECT *
FROM generic_request
WITH (Url='/groups?$filter=contains(name,''MyWorkspace'') or name eq ''My Blue Workspace''',
Filter='$.value[*]')
/*
EXPLANATION:
- This configuration calls Power BI REST API "Get Groups" endpoint and gets the Workspaces back.
- This is achieved by "/groups" value in the "Url" parameter.
- Workspaces are filtered on the Power BI REST API side by using the "$filter" URL parameter.
- Only those Workspaces are returned that:
> contain a string value "MyWorkspace" or
> if the Workspace name is "My Blue Workspace" (each single quote is escaped with two single quotes).
- The SQL query parameter "Filter" uses JsonPath "$.value[*]".
- This gets JSON objects from "value" array and transforms them into SQL rows.
MORE INFORMATION:
- About "Get Groups" REST API endpoint:
https://learn.microsoft.com/en-us/rest/api/power-bi/groups/get-groups
- About JsonPath used in "Filter" parameter:
https://zappysys.com/blog/jsonpath-examples-expression-cheetsheet
*/