所有行数据都没有从 Marklogic 反映在 Power BI 中
All row data is not getting reflected in Power BI from Marklogic
我有一个包含 3 行数据的 csv 文件,该文件存储在 Marklogic 中并在集合中可用。
我正在尝试从 Power BI 访问 csv 文件的内容。
但是从 Power BI 我一次只能访问 1 行数据,而要求是查看所有数据行。
以下是我实现功能所遵循的过程的详细信息:
- 使用 Marklogic ODBC 驱动程序(64 位)从 Power BI 连接 Marklogic SQL
- 创建了模板(使用 xquery)来实现 Marklogic 中的 table 结构
- 使用mlcp导入marklogic数据库中的csv文件。
这是我使用的模板:
xquery version "1.0-ml";
import module namespace tde = "http://marklogic.com/xdmp/tde" at "/MarkLogic/tde.xqy";
if (xdmp:database-name(xdmp:database()) = "Documents") then
let $shipment-CBE:=
<template xmlns="http://marklogic.com/xdmp/tde">
<context>/shipment</context>
<collections>
<collections-and>
<collection>PowerBI</collection>
<collection>Shipment</collection>
</collections-and>
</collections>
<rows>
<row>
<schema-name>Shipment</schema-name>
<view-name>CBE2</view-name>
<columns>
<column>
<name>DocType</name>
<scalar-type>string</scalar-type>
<val>DocType</val>
</column>
<column>
<name>User</name>
<scalar-type>string</scalar-type>
<val>User</val>
</column>
<column>
<name>ShipmentRef</name>
<scalar-type>string</scalar-type>
<val>ShipmentRef</val>
</column>
<column>
<name>Transmode</name>
<scalar-type>string</scalar-type>
<val>Trans_mode</val>
</column>
<column>
<name>Packagetype</name>
<scalar-type>string</scalar-type>
<val>Package_type</val>
</column>
<column>
<name>Customer_Party_Name</name>
<scalar-type>string</scalar-type>
<val>Customer_Party_Name</val>
</column>
</columns>
</row>
</rows>
</template>
return (
tde:template-insert("/powerbi/shipment-CBE2.xml",$shipment-CBE),
"shipment-CBE.xml OK"
)
else ("Please select the 'Documents' database.")
这里是导入csv文件的导入命令(另存为shipment.txt):
IMPORT
-input_file_path
../data/Shipment-CBE.csv
-input_file_type
delimited_text
-delimited_root_name
shipment
-username
admin
-password
*****
-host
owc-db01.owc.com
-port
8000
-output_uri_prefix
/powerbi/shipment/
-output_collections
PowerBI,Shipment
-uri_id
"DocType"
运行这条MLCP命令执行导入命令-
mlcp.bat -options_file shipment.txt
问题似乎是您正在导入 3 个 CSV 行中的每一行并使用 /powerbi/shipment/Shipment
的相同 URI 插入
这是因为您已将 -uri_id
配置为“DocType”列,并且您的每一行都具有相同的值:Shipment
.
https://docs.marklogic.com/guide/mlcp/import#id_65814
Optionally, override the default document URI by setting -uri_id
to the name of the element from which to derive the document URI.
您可以将其配置为使用 User
列,这样文档将插入唯一的 URI:
- /powerbi/shipment/j_henderson
- /powerbi/shipment/c_saunders
- /powerbi/shipment/a_gatfield
我有一个包含 3 行数据的 csv 文件,该文件存储在 Marklogic 中并在集合中可用。 我正在尝试从 Power BI 访问 csv 文件的内容。 但是从 Power BI 我一次只能访问 1 行数据,而要求是查看所有数据行。
以下是我实现功能所遵循的过程的详细信息:
- 使用 Marklogic ODBC 驱动程序(64 位)从 Power BI 连接 Marklogic SQL
- 创建了模板(使用 xquery)来实现 Marklogic 中的 table 结构
- 使用mlcp导入marklogic数据库中的csv文件。
这是我使用的模板:
xquery version "1.0-ml";
import module namespace tde = "http://marklogic.com/xdmp/tde" at "/MarkLogic/tde.xqy";
if (xdmp:database-name(xdmp:database()) = "Documents") then
let $shipment-CBE:=
<template xmlns="http://marklogic.com/xdmp/tde">
<context>/shipment</context>
<collections>
<collections-and>
<collection>PowerBI</collection>
<collection>Shipment</collection>
</collections-and>
</collections>
<rows>
<row>
<schema-name>Shipment</schema-name>
<view-name>CBE2</view-name>
<columns>
<column>
<name>DocType</name>
<scalar-type>string</scalar-type>
<val>DocType</val>
</column>
<column>
<name>User</name>
<scalar-type>string</scalar-type>
<val>User</val>
</column>
<column>
<name>ShipmentRef</name>
<scalar-type>string</scalar-type>
<val>ShipmentRef</val>
</column>
<column>
<name>Transmode</name>
<scalar-type>string</scalar-type>
<val>Trans_mode</val>
</column>
<column>
<name>Packagetype</name>
<scalar-type>string</scalar-type>
<val>Package_type</val>
</column>
<column>
<name>Customer_Party_Name</name>
<scalar-type>string</scalar-type>
<val>Customer_Party_Name</val>
</column>
</columns>
</row>
</rows>
</template>
return (
tde:template-insert("/powerbi/shipment-CBE2.xml",$shipment-CBE),
"shipment-CBE.xml OK"
)
else ("Please select the 'Documents' database.")
这里是导入csv文件的导入命令(另存为shipment.txt):
IMPORT
-input_file_path
../data/Shipment-CBE.csv
-input_file_type
delimited_text
-delimited_root_name
shipment
-username
admin
-password
*****
-host
owc-db01.owc.com
-port
8000
-output_uri_prefix
/powerbi/shipment/
-output_collections
PowerBI,Shipment
-uri_id
"DocType"
运行这条MLCP命令执行导入命令-
mlcp.bat -options_file shipment.txt
问题似乎是您正在导入 3 个 CSV 行中的每一行并使用 /powerbi/shipment/Shipment
这是因为您已将 -uri_id
配置为“DocType”列,并且您的每一行都具有相同的值:Shipment
.
https://docs.marklogic.com/guide/mlcp/import#id_65814
Optionally, override the default document URI by setting
-uri_id
to the name of the element from which to derive the document URI.
您可以将其配置为使用 User
列,这样文档将插入唯一的 URI:
- /powerbi/shipment/j_henderson
- /powerbi/shipment/c_saunders
- /powerbi/shipment/a_gatfield