Skip to content

Commit 712ed71

Browse files
committed
DAX API / Power BI pages
1 parent 7aff970 commit 712ed71

File tree

18 files changed

+461
-137
lines changed

18 files changed

+461
-137
lines changed

docs/pages/guides/recipes/auth/sql-api-ldap.mdx

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ Here's a step-by-step breakdown of the authentication flow:
2626
* Cube verifies the credentials via the Secure LDAP service.
2727
* If credentials are correct, users get access to the dataset.
2828

29+
<InfoBox>
30+
31+
In this recipe, the SQL API is used to connect to [Power BI][ref-powerbi].
32+
Currently, it's recommended to use the [DAX API][ref-dax-api].
33+
34+
</InfoBox>
35+
2936
## Configuration
3037

3138
To verify the credentials, use the
@@ -177,4 +184,8 @@ module.exports = {
177184
}
178185
};
179186

180-
```
187+
```
188+
189+
190+
[ref-dax-api]: /product/apis-integrations/dax-api
191+
[ref-powerbi]: /product/configuration/visualization-tools/powerbi

docs/pages/product/apis-integrations.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ applications.
1212
Despite varying protocols and query formats, all data APIs share common
1313
[querying concepts][ref-queries].
1414

15-
<Diagram src="https://ucarecdn.com/d810360d-e23d-449c-9e25-097c2392d86d/" />
15+
<Diagram src="https://ucarecdn.com/4abc9729-66a3-489f-9d48-0bf27e728c87/" />
1616

1717
Also, there are [management APIs](#management-apis) to control Cube deployments
1818
externally.
1919

20-
<Diagram src="https://ucarecdn.com/8b9c0a27-c9bf-4f32-86b7-223c9fae8cc8/" />
20+
<Diagram src="https://ucarecdn.com/3ff02e30-a010-480d-b6d6-3b927baa0dfe/" />
2121

2222
## Data APIs
2323

@@ -55,7 +55,7 @@ tools][ref-viz-tools]. Some of the features with partial support are listed belo
5555
| Feature | ✅ Supported in | ❌ Not supported in |
5656
| --- | --- | --- |
5757
| [Hierarchies][ref-hierarchies] | [Microsoft Power BI][ref-powerbi] via the [DAX API][ref-dax-api]<br/>[Cube Cloud for Excel][ref-cube-cloud-for-excel]<br/>[Cube Cloud for Sheets][ref-cube-cloud-for-sheets]<br/>[Tableau][ref-tableau] via [Semantic Layer Sync][ref-sls] | All other tools |
58-
| [Folders][ref-folders] | [Cube Cloud for Excel][ref-cube-cloud-for-excel]<br/>[Cube Cloud for Sheets][ref-cube-cloud-for-sheets]<br/>[Tableau][ref-tableau] via [Semantic Layer Sync][ref-sls] | All other tools |
58+
| [Folders][ref-folders] | [Microsoft Power BI][ref-powerbi] via the [DAX API][ref-dax-api]<br/>[Cube Cloud for Excel][ref-cube-cloud-for-excel]<br/>[Cube Cloud for Sheets][ref-cube-cloud-for-sheets]<br/>[Tableau][ref-tableau] via [Semantic Layer Sync][ref-sls] | All other tools |
5959

6060
### Authentication methods
6161

docs/pages/product/apis-integrations/dax-api.mdx

Lines changed: 85 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
# DAX API
22

3-
TODO
3+
The DAX API enables Cube to connect to [Microsoft Power BI][ref-powerbi].
4+
It derives its name from [data analysis expressions][link-dax], a query language
5+
for Power BI and SQL Server Analysis Services.
6+
7+
Unlike the [SQL API][ref-sql-api], it provides a native experience and superior
8+
support for Power BI features.
49

510
<SuccessBox>
611

@@ -15,4 +20,82 @@ The DAX API is currently in preview. Please [contact us](https://cube.dev/contac
1520

1621
</WarningBox>
1722

18-
TODO
23+
{/*
24+
25+
TODO: Overview of the sections with links
26+
27+
*/}
28+
29+
See the [DAX API reference][ref-ref-dax-api] for the list of supported DAX functions.
30+
31+
{/*
32+
33+
TODO: Add video
34+
35+
*/}
36+
37+
## Configuration
38+
39+
<WarningBox>
40+
41+
Please contact the customer success team in Cube Cloud so we can guide you
42+
through the configuration.
43+
44+
</WarningBox>
45+
46+
To enable or disable the DAX API on a specific deployment, go to <Btn>Settings</Btn>
47+
in the Cube Cloud sidebar, then <Btn>Configuration</Btn>, and then toggle the
48+
<Btn>Enable DAX API</Btn> option.
49+
50+
## Authentication
51+
52+
{/*
53+
54+
TODO
55+
56+
*/}
57+
58+
{/*
59+
60+
TODO: check
61+
62+
<InfoBox>
63+
64+
The DAX API works only with [views][ref-views], not cubes.
65+
66+
</InfoBox>
67+
68+
*/}
69+
70+
## Using DAX API with Power BI
71+
72+
{/*
73+
74+
TODO
75+
76+
*/}
77+
78+
### Connection methods
79+
80+
Power BI provides [three methods][link-powerbi-connection] to connect to data
81+
sources: _live connection_, _DirectQuery_, and _import mode_.
82+
83+
| | Live connection | DirectQuery | <nobr>Import mode</nobr> |
84+
| --- | --- | --- | --- |
85+
| Data location | 🟢 Data source | 🟢 Data source | 🟡 Power BI |
86+
| Data freshness | 🟢 Real-time data | 🟢 Real-time data | 🟡 Stale copy |
87+
| Semantic model | <nobr>🟢 Up-to-date model</nobr> | 🟡 Stale copy | 🟡 Stale copy |
88+
| Queries | <nobr>🟢 Composed in UI</nobr><br/><nobr>🔴 No custom queries</nobr> | <nobr>🟢 Composed in UI</nobr><br/><nobr>🟢 Custom queries</nobr> | <nobr>🟢 Composed in UI</nobr><br/><nobr>🟢 Custom queries</nobr> |
89+
90+
__It's recommended to use a _live connection_ whenever possible.__ Use _DirectQuery_
91+
if you need to write your own DAX queries, but be aware that you must manually
92+
synchronize semantic models as they evolve. _Import mode_ is not recommended, as
93+
it removes the benefits of using a semantic layer.
94+
95+
96+
[ref-powerbi]: /product/configuration/visualization-tools/powerbi
97+
[link-dax]: https://learn.microsoft.com/en-us/dax/
98+
[ref-sql-api]: /product/apis-integrations/sql-api
99+
[ref-ref-dax-api]: /product/apis-integrations/dax-api/reference
100+
[ref-views]: /product/data-modeling/concepts#views
101+
[link-powerbi-connection]: https://learn.microsoft.com/en-us/power-bi/connect-data/service-live-connect-dq-datasets
Lines changed: 236 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,237 @@
1-
# DAX API function reference
1+
# DAX API reference
22

3-
TODO
3+
The [DAX API][ref-dax-api] supports the following [functions](#dax-functions).
4+
5+
<InfoBox>
6+
7+
If you'd like to propose a function to be supported in the DAX API,
8+
please contact the customer success team in Cube Cloud.
9+
10+
</InfoBox>
11+
12+
## DAX functions
13+
14+
The DAX API currently implements a subset of functions [supported by DAX][link-dax-func-reference].
15+
16+
### Aggregation functions
17+
18+
<InfoBox>
19+
20+
Learn more in the
21+
[relevant section](https://learn.microsoft.com/en-us/dax/aggregation-functions-dax)
22+
of the DAX documentation.
23+
24+
</InfoBox>
25+
26+
| Function | <nobr>Unsupported features</nobr> | Caveats |
27+
| --- | --- | --- |
28+
| [`AVERAGE`](https://learn.microsoft.com/en-us/dax/average-function-dax) |||
29+
| [`COUNT`](https://learn.microsoft.com/en-us/dax/count-function-dax) || Counts all rows instead of only non-blank ones |
30+
| [`COUNTROWS`](https://learn.microsoft.com/en-us/dax/countrows-function-dax) || Disregards input table expression and always returns 1 |
31+
| [`MAX`](https://learn.microsoft.com/en-us/dax/max-function-dax) | 2 arguments | Blanks are disregarded instead of being treated as 0 |
32+
| [`MIN`](https://learn.microsoft.com/en-us/dax/min-function-dax) | 2 arguments | Blanks are disregarded instead of being treated as 0 |
33+
| [`SUM`](https://learn.microsoft.com/en-us/dax/sum-function-dax) |||
34+
35+
### Date and time functions
36+
37+
<InfoBox>
38+
39+
Learn more in the
40+
[relevant section](https://learn.microsoft.com/en-us/dax/date-and-time-functions-dax)
41+
of the DAX documentation.
42+
43+
</InfoBox>
44+
45+
| Function | <nobr>Unsupported features</nobr> | Caveats |
46+
| --- | --- | --- |
47+
| [`DATE`](https://learn.microsoft.com/en-us/dax/date-function-dax) | Non-literal date parts ||
48+
| [`TIME`](https://learn.microsoft.com/en-us/dax/time-function-dax) | Non-literal date parts. Execution outside `DATE(...) + TIME(...)` expression ||
49+
50+
### Filter functions
51+
52+
<InfoBox>
53+
54+
Learn more in the
55+
[relevant section](https://learn.microsoft.com/en-us/dax/filter-functions-dax)
56+
of the DAX documentation.
57+
58+
</InfoBox>
59+
60+
| Function | <nobr>Unsupported features</nobr> | Caveats |
61+
| --- | --- | --- |
62+
| [`ALL`](https://learn.microsoft.com/en-us/dax/all-function-dax) | 2+ arguments | Doesn't clear filter context, silently ignored |
63+
| [`CALCULATE`](https://learn.microsoft.com/en-us/dax/calculate-function-dax) | Creating a nested filter context ||
64+
| [`CALCULATETABLE`](https://learn.microsoft.com/en-us/dax/calculatetable-function-dax) | Creating a nested filter context ||
65+
| [`FILTER`](https://learn.microsoft.com/en-us/dax/filter-function-dax) |||
66+
| [`KEEPFILTERS`](https://learn.microsoft.com/en-us/dax/keepfilters-function-dax) || Doesn't modify behavior, silently ignored |
67+
68+
### Financial functions
69+
70+
<InfoBox>
71+
72+
Learn more in the
73+
[relevant section](https://learn.microsoft.com/en-us/dax/financial-functions-dax)
74+
of the DAX documentation.
75+
76+
</InfoBox>
77+
78+
No financial functions currently supported.
79+
80+
### Information functions
81+
82+
<InfoBox>
83+
84+
Learn more in the
85+
[relevant section](https://learn.microsoft.com/en-us/dax/information-functions-dax)
86+
of the DAX documentation.
87+
88+
</InfoBox>
89+
90+
| Function | <nobr>Unsupported features</nobr> | Caveats |
91+
| --- | --- | --- |
92+
| [`ISBLANK`](https://learn.microsoft.com/en-us/dax/isblank-function-dax) |||
93+
| [`ISONORAFTER`](https://learn.microsoft.com/en-us/dax/isonorafter-function-dax) |||
94+
95+
### Logical functions
96+
97+
<InfoBox>
98+
99+
Learn more in the
100+
[relevant section](https://learn.microsoft.com/en-us/dax/logical-functions-dax)
101+
of the DAX documentation.
102+
103+
</InfoBox>
104+
105+
| Function | <nobr>Unsupported features</nobr> | Caveats |
106+
| --- | --- | --- |
107+
| [`AND`](https://learn.microsoft.com/en-us/dax/and-function-dax) |||
108+
| [`NOT`](https://learn.microsoft.com/en-us/dax/not-function-dax) |||
109+
| [`OR`](https://learn.microsoft.com/en-us/dax/or-function-dax) |||
110+
111+
### Math and trig functions
112+
113+
<InfoBox>
114+
115+
Learn more in the
116+
[relevant section](https://learn.microsoft.com/en-us/dax/math-and-trig-functions-dax)
117+
of the DAX documentation.
118+
119+
</InfoBox>
120+
121+
No math and trig functions currently supported.
122+
123+
### Other functions
124+
125+
<InfoBox>
126+
127+
Learn more in the
128+
[relevant section](https://learn.microsoft.com/en-us/dax/other-functions-dax)
129+
of the DAX documentation.
130+
131+
</InfoBox>
132+
133+
| Function | <nobr>Unsupported features</nobr> | Caveats |
134+
| --- | --- | --- |
135+
| [`BLANK`](https://learn.microsoft.com/en-us/dax/blank-function-dax) |||
136+
137+
### Parent and child functions
138+
139+
<InfoBox>
140+
141+
Learn more in the
142+
[relevant section](https://learn.microsoft.com/en-us/dax/parent-and-child-functions-dax)
143+
of the DAX documentation.
144+
145+
</InfoBox>
146+
147+
No parent and child functions currently supported.
148+
149+
### Relationship functions
150+
151+
<InfoBox>
152+
153+
Learn more in the
154+
[relevant section](https://learn.microsoft.com/en-us/dax/relationship-functions-dax)
155+
of the DAX documentation.
156+
157+
</InfoBox>
158+
159+
No relationship functions currently supported.
160+
161+
### Statistical functions
162+
163+
<InfoBox>
164+
165+
Learn more in the
166+
[relevant section](https://learn.microsoft.com/en-us/dax/statistical-functions-dax)
167+
of the DAX documentation.
168+
169+
</InfoBox>
170+
171+
| Function | <nobr>Unsupported features</nobr> | Caveats |
172+
| --- | --- | --- |
173+
| [`SAMPLE`](https://learn.microsoft.com/en-us/dax/sample-function-dax) || Doesn't evenly distribute rows, taking top N instead (acts as the `TOPN` function) |
174+
175+
### Table manipulation functions
176+
177+
<InfoBox>
178+
179+
Learn more in the
180+
[relevant section](https://learn.microsoft.com/en-us/dax/table-manipulation-functions-dax)
181+
of the DAX documentation.
182+
183+
</InfoBox>
184+
185+
| Function | <nobr>Unsupported features</nobr> | Caveats |
186+
| --- | --- | --- |
187+
| [`ADDCOLUMNS`](https://learn.microsoft.com/en-us/dax/addcolumns-function-dax) | Aggregate expressions ||
188+
| <nobr>[`DISTINCT`](https://learn.microsoft.com/en-us/dax/distinct-function-dax) (column)</nobr> |||
189+
| <nobr>[`DISTINCT`](https://learn.microsoft.com/en-us/dax/distinct-table-function-dax) (table)</nobr> | Filter context for table expressions ||
190+
| [`IGNORE`](https://learn.microsoft.com/en-us/dax/ignore-function-dax) | 2+ arguments | Doesn't modify filter context, silently ignored |
191+
| [`NATURALLEFTOUTERJOIN`](https://learn.microsoft.com/en-us/dax/naturalleftouterjoin-function-dax) |||
192+
| [`ROLLUPADDISSUBTOTAL`](https://learn.microsoft.com/en-us/dax/rollupaddissubtotal-function-dax) | `grandtotalFilter`, `groupLevelFilter` ||
193+
| [`ROLLUPGROUP`](https://learn.microsoft.com/en-us/dax/rollupgroup-function-dax) |||
194+
| [`ROW`](https://learn.microsoft.com/en-us/dax/row-function-dax) |||
195+
| [`SELECTCOLUMNS`](https://learn.microsoft.com/en-us/dax/selectcolumns-function-dax) | Optional aliases (currently mandatory) ||
196+
| [`SUBSTITUTEWITHINDEX`](https://learn.microsoft.com/en-us/dax/substitutewithindex-function-dax) |||
197+
| [`SUMMARIZE`](https://learn.microsoft.com/en-us/dax/summarize-function-dax) | Named expressions (aggregations/measures) ||
198+
| [`SUMMARIZECOLUMNS`](https://learn.microsoft.com/en-us/dax/summarizecolumns-function-dax) |||
199+
| [`TOPN`](https://learn.microsoft.com/en-us/dax/topn-function-dax) | Non-literal N value ||
200+
| [`TREATAS`](https://learn.microsoft.com/en-us/dax/treatas-function-dax) | Non-literal tables as table expressions ||
201+
| [`VALUES`](https://learn.microsoft.com/en-us/dax/values-function-dax) |||
202+
203+
### Text functions
204+
205+
<InfoBox>
206+
207+
Learn more in the
208+
[relevant section](https://learn.microsoft.com/en-us/dax/text-functions-dax)
209+
of the DAX documentation.
210+
211+
</InfoBox>
212+
213+
| Function | <nobr>Unsupported features</nobr> | Caveats |
214+
| --- | --- | --- |
215+
| [`SEARCH`](https://learn.microsoft.com/en-us/dax/search-function-dax) | Execution outside filter context functions ||
216+
217+
### Time intelligence functions
218+
219+
<InfoBox>
220+
221+
Learn more in the
222+
[relevant section](https://learn.microsoft.com/en-us/dax/time-intelligence-functions-dax)
223+
of the DAX documentation.
224+
225+
</InfoBox>
226+
227+
No time intelligence functions currently supported.
228+
229+
### Miscellaneous functions
230+
231+
| Function | <nobr>Unsupported features</nobr> | Caveats |
232+
| --- | --- | --- |
233+
| [`SAMPLEAXISWITHLOCALMINMAX`](https://learn.microsoft.com/en-us/dax/sampleaxiswithlocalminmax-function-dax) || Silently ignored, returning input table expression |
234+
235+
236+
[ref-dax-api]: /product/apis-integrations/dax-api
237+
[link-dax-func-reference]: https://learn.microsoft.com/en-us/dax/dax-function-reference

docs/pages/product/apis-integrations/google-sheets.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ looks and feels like [Playground][ref-playground].
6767

6868
<InfoBox>
6969

70-
Google Cloud for Sheets only works with [views][ref-views] rather than cubes.
70+
Google Cloud for Sheets works only with [views][ref-views], not cubes.
7171

7272
</InfoBox>
7373

0 commit comments

Comments
 (0)