Расширение записи с неизвестными ключами в запросе питания

#json #database #powerbi #azure-cosmosdb #powerquery

Вопрос:

Я работаю с вложенным файлом json. Проблема в том, что ключи вложенного json являются датами, и их значение заранее неизвестно. Поэтому я не могу применить к нему метод expandRecordColumn.

Каждая строка имеет уникальный идентификатор и выглядит так

 {
     "refId" : "XYZ",
     "snapshotIndexes" : {
               "19-07-2021" : {
                          url: "abc1",
                          value: "123"
                },
                "20-07-2021" : {
                          url: "abc2",
                          value: "567"
                }
       }
}
 

Наконец-то мне нужна таблица с этими столбцами,

 refid    |     date     |     url      |    value
XYZ      |  19-7-2021   |     abc1     |      123 

XYZ      |  20-7-2021   |     abc2     |      567

PQR      |  7-5-2021    |     srt      |      999
 

В новой таблице refId и дата вместе сделают уникальную запись.

Это записи моментальных снимков PowerBI

Ответ №1:

Я смог решить эту проблему с помощью записи.Суммируется в каждой строке для преобразования из записи в таблицу, а затем применяется расширяемый столбец

   let
        Source = DocumentDB.Contents("sourceurl"),
        Source = Source{[id="dbid"]}[Collections],
        SourceTable= Source{[db_id="dbid",id="PartnerOfferSnapshots"]}[Documents],
        ExpandedDocument = Table.ExpandRecordColumn(SourceTable, "Document", {"refId", "snapshotIndexes"}, {"Document.refId", "Document.snapshotIndexes"}),
        TransformColumns = Table.TransformColumns(ExpandedDocument,{"Document.snapshotIndexes", each Table.ExpandRecordColumn(Record.ToTable(_), "Value", {"url","id","images"}, {"url","id","images"})}),
        ExpandedTable = Table.ExpandTableColumn(TransformColumns, "Document.snapshotIndexes", {"Name","url","id","images"}, {"Document.dates","Document.url","Document.id","Document.images"})
    in
        ExpandedTable