Я пытаюсь создать TDE в логике Mark для файла JSON.
Цель - создать шаблон, а затем извлечь данные из Marklogic для создания отчетов в BI.
Образец документа в Marklogic:
{
"filename": "StudentDetails.txt",
"auditId": "xxxx",
"FileInputTimestamp": "2018-11-14T15:47:40.074",
"FileProcessedTimestamp": "2018-11-14T15:47:40.236",
}
** TDE Я попытался, и я могу его проверить, но документ JSON не имеет иерархии, и я не могу указать контекст каккорневой узел.**
xquery version "1.0-ml";
let $my-first-TDE:=
<template xmlns="http://marklogic.com/xdmp/tde">
<context>/</context>
<collections>
<collection>ods_fms_file_audit</collection>
</collections>
<rows>
<row>
<schema-name>File_audit</schema-name>
<view-name>ABaC_View</view-name>
<columns>
<column>
<name>FILE_NAME</name>
<scalar-type>string</scalar-type>
<val>filename</val>
</column>
<column>
<name>AUDIT_ID</name>
<scalar-type>string</scalar-type>
<val>auditId</val>
</column>
</columns>
</row>
</rows>
</template>
return
tde:validate(
$my-first-TDE
)
** Это извлечет шаблон с документом, который я передаю, и я получаю пустой набор результатов.Проблема в том, что я не могу указать корневой узел в обычном JSON.**
xquery version "1.0-ml";
let $my-first-TDE:=
<template xmlns="http://marklogic.com/xdmp/tde">
<context>/</context>
<collections>
<collection>ods_fms_file_audit</collection>
</collections>
<rows>
<row>
<schema-name>File_audit</schema-name>
<view-name>ABaC_View</view-name>
<columns>
<column>
<name>FILE_NAME</name>
<scalar-type>string</scalar-type>
<val>filename</val>
</column>
<column>
<name>AUDIT_ID</name>
<scalar-type>string</scalar-type>
<val>auditId</val>
</column>
</columns>
</row>
</rows>
</template>
return
tde:node-data-extract(
fn:doc( "/file/StudentDetails.json" ),
$my-first-TDE
)
Также было бы замечательно, если бы я мог получить, как я могу извлечь и подключить выход marklogic к POwer BI (или) Есть ли какие-либо условия для запуска .xqy, который генерирует мойсообщать и извлекать данные из ML.