所有行数据都没有从 Marklogic 反映在 Power BI 中

All row data is not getting reflected in Power BI from Marklogic

我有一个包含 3 行数据的 csv 文件,该文件存储在 Marklogic 中并在集合中可用。 我正在尝试从 Power BI 访问 csv 文件的内容。 但是从 Power BI 我一次只能访问 1 行数据,而要求是查看所有数据行。

以下是我实现功能所遵循的过程的详细信息:

  1. 使用 Marklogic ODBC 驱动程序(64 位)从 Power BI 连接 Marklogic SQL
  2. 创建了模板(使用 xquery)来实现 Marklogic 中的 table 结构
  3. 使用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