Мне нужно запросить удаленный сервер PowerBI из системы, отличной от MS (Linux).
Я обнаружил, что запросы можно отправлять через JSON, но я изо всех сил пытаюсь понять формат. Например, как получить содержимое всех столбцов таблицы с учетом условия WHERE и LIKE?
Вот что я придумаю (что не работает):
{
"queries" : [
{
"ApplicationContext" : {
"Sources" : [
{
"ReportId" : "ZZZ"
}
],
"DatasetId" : "YYY"
},
"Query" : {
"Commands" : [
{
"SemanticQueryDataShapeCommand" : {
"Query" : {
"Where" : [
{
"Condition" : {
"In" : {
"Values" : [
[
{
"Like" : {
"Value" : "'%abc%'"
}
}
],
null
],
"Expressions" : [
{
"Column" : {
"Property" : "APROPERTY",
"Expression" : {
"SourceRef" : {
"Source" : "A"
}
}
}
}
]
}
}
}
],
"Select" : [
{
"Name" : "AVIEW.APROPERTY",
"Column" : {
"Expression" : {
"SourceRef" : {
"Source" : "A"
}
},
"Property" : "APROPERTY"
}
}
],
"Version" : "2",
"From" : [
{
"Name" : "A",
"Entity" : "AVIEW"
}
]
},
"Binding" : {
"Primary" : {
"Groupings" : [
{
"Projections" : [
"0",
"1"
]
}
]
},
"Version" : "1",
"DataReduction" : {
"DataVolume" : "3",
"Primary" : {
"Top" : {}
}
}
}
}
}
]
},
"QueryId" : ""
}
],
"cancelQueries" : [],
"modelId" : "XXX",
"version" : "1.0.0"
}
Это эквивалентный YAML, возможно, он более читабелен:
---
cancelQueries: []
modelId: XXX
queries:
- ApplicationContext:
DatasetId: YYY
Sources:
- ReportId: ZZZ
Query:
Commands:
- SemanticQueryDataShapeCommand:
Binding:
DataReduction:
DataVolume: 3
Primary:
Top: {}
Primary:
Groupings:
- Projections:
- 0
- 1
Version: 1
Query:
From:
- Entity: AVIEW
Name: A
Select:
- Column:
Expression:
SourceRef:
Source: A
Property: APROPERTY
Name: AVIEW.APROPERTY
Version: 2
Where:
- Condition:
In:
Expressions:
- Column:
Expression:
SourceRef:
Source: A
Property: APROPERTY
Values:
-
- Like:
Value: "'%abc%'"
-
QueryId: ''
version: 1.0.0
Затем я использую curl
, чтобы ПОСТАВИТЬ вышеупомянутые JSON данные с соответствующими заголовками для публикуемого URL c (учетные данные не требуются), что является чем-то как <URL>/public/reports/querydata
. Этот метод запроса обычно работает, и мне удалось выполнить оригинальный запрос. Но теперь я хочу создать более сложные запросы и просто попасть в эту стену, потому что большая часть документации не говорит об этом языке запросов, но это либо основанные на GUI, либо командные функции и функции DAX, для которых необходимо установить проприетарное программное обеспечение.
Что мне нужно, так это некоторая помощь по вышеуказанному JSON и / или некоторые ссылки на документацию, касающуюся вышеупомянутого языка запросов, которую я не могу найти, спасибо.