Power BI - DateTime рабочего стола из Azure Cosmos DB

Я использую Azure Cosmos DB, которая заполняется с помощью пакета SDK для Azure Cosmos .NET. Согласно документации, DateTimes следует хранить как сериализованную строку в формате ISO_8601 (https://docs.microsoft.com/en-us/azure/cosmos-db/working-with-dates). Когда я просматриваю свои записи на портале Azure или в приложении обозревателя хранилища Azure, мне кажется, что это так.

введите здесь описание изображения

Вы можете видеть, что мои свойства StartTime и EndTime, а также TimeStamp находятся в формате «2019-07-15T16: 24: 51.392Z»

Когда я импортирую данные в Power BI Desktop, значение получается в виде какой-то причудливой строки / числа. например

00636988010188048801

Я подумал, что, возможно, это было количество миллисекунд с 01.01.1970, но это не так. Кто-нибудь знает, как правильно импортировать дату и время в Power BI или как преобразовать это значение в дату и время? Попытка просто установить тип данных для любого из различных параметров DateTime приводит к ошибке.

Расширенный редактор выглядит следующим образом:

let
    Source = DocumentDB.Contents("https://myurl.documents.azure.com:443/"),
    TablesDB = Source{[id="TablesDB"]}[Collections],
    TablesDB_InstanceData = TablesDB{[db_id="TablesDB",id="InstanceData"]}[Documents],
    #"Expanded Document" = Table.ExpandRecordColumn(TablesDB_InstanceData, "Document", {"id", "RunId", "InstanceId", "StartTime", "EndTime", "MessagesProcessed", "IsCompareInstance", "_ts"}, {"id", "RunId", "InstanceId", "StartTime", "EndTime", "MessagesProcessed", "IsCompareInstance", "_ts"}),
    #"Expanded RunId" = Table.ExpandRecordColumn(#"Expanded Document", "RunId", {"$v"}, {"$v"}),
    #"Expanded InstanceId" = Table.ExpandRecordColumn(#"Expanded RunId", "InstanceId", {"$v"}, {"$v.1"}),
    #"Expanded StartTime" = Table.ExpandRecordColumn(#"Expanded InstanceId", "StartTime", {"$v"}, {"$v.2"}),
    #"Expanded EndTime" = Table.ExpandRecordColumn(#"Expanded StartTime", "EndTime", {"$v"}, {"$v.3"}),
    #"Expanded MessagesProcessed" = Table.ExpandRecordColumn(#"Expanded EndTime", "MessagesProcessed", {"$v"}, {"$v.4"}),
    #"Expanded IsCompareInstance" = Table.ExpandRecordColumn(#"Expanded MessagesProcessed", "IsCompareInstance", {"$v"}, {"$v.5"})
in
    #"Expanded IsCompareInstance"

person MadSkeletor    schedule 05.09.2019    source источник
comment
Можете ли вы поделиться кодом Power Query и любым DAX, который взаимодействует с этими временными метками? Быстрый тест с DateTime.From("2019-07-15T16:24:51.392Z") без проблем интерпретирует строку как дату и время.   -  person greggyb    schedule 06.09.2019
comment
Я очень новичок в power bi, я не уверен, что такое код запроса мощности или DAX? Я поместил в вопрос код из расширенного редактора. Мне непонятно, как именно хранятся данные. Я не знаю наверняка, преобразует ли Azure Data Explorer данные, чтобы отображать их как дату или что-то в этом роде, но power bi не показывает это в форме даты, он отображается как это странное число.   -  person MadSkeletor    schedule 06.09.2019
comment
В качестве продолжения я отправил проблему на страницу github пакета SDK для Azure Cosmos Table, где они сказали, что хранят дату в каком-то формате, который они не выпускают. Вот почему я не могу этого понять. github.com/Azure/azure-cosmos-table-dotnet/issues/ 14   -  person MadSkeletor    schedule 11.09.2019


Ответы (1)


Когда я опубликовал это как проблему в сообществе Power BI, кто-то опубликовал способ решения этой проблемы:

let

ConvertTimestamp = (ts) => #datetime(1, 1, 1, 0, 0, 0) + #duration(0, 0, 0, ts / 10000000)

in

ConvertTimestamp(635912639960000000)
person MadSkeletor    schedule 16.09.2019