我創建了一個模板來在 Marklogic 資料庫中創建一個視圖。視圖創建成功。并使用 mlcp import 將 XML 檔案中的資料攝取到視圖中。回應我在終端視窗中執行的 mlcp 腳本沒有錯誤。但我看不到任何插入視圖的資料。
請您幫忙指出錯誤。
這是我的模板 -
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">
<path-namespaces>
<path-namespace>
<prefix>ns00</prefix>
<namespace-uri>http://www.globaltrademanagement_export.com/PurchaseOrderHeader</namespace-uri>
</path-namespace>
<path-namespace>
<prefix>ns0</prefix>
<namespace-uri>http://www.globaltrademanagement_export.com/ConsignmentHeader</namespace-uri>
</path-namespace>
<path-namespace>
<prefix>ns1</prefix>
<namespace-uri>http://www.globaltrademanagement_export.com/PurchaseOrderDrop</namespace-uri>
</path-namespace>
<path-namespace>
<prefix>ns2</prefix>
<namespace-uri>http://www.globaltrademanagement_export.com/ItemDetail</namespace-uri>
</path-namespace>
<path-namespace>
<prefix>ns7</prefix>
<namespace-uri>http://www.globaltrademanagement_export.com/PurchaseOrderDelivery</namespace-uri>
</path-namespace>
<path-namespace>
<prefix>ns9</prefix>
<namespace-uri>http://www.globaltrademanagement_export.com/BaseType</namespace-uri>
</path-namespace>
<path-namespace>
<prefix>ns10</prefix>
<namespace-uri>http://www.globaltrademanagement_export.com/ASN</namespace-uri>
</path-namespace>
<path-namespace>
<prefix>ns11</prefix>
<namespace-uri>http://www.globaltrademanagement_export.com/TransportationUnitHeader</namespace-uri>
</path-namespace>
<path-namespace>
<prefix>ns13</prefix>
<namespace-uri>http://www.globaltrademanagement_export.com/ContainmentHeader</namespace-uri>
</path-namespace>
<path-namespace>
<prefix>ns14</prefix>
<namespace-uri>http://www.globaltrademanagement_export.com/CargoBookingHeader</namespace-uri>
</path-namespace>
<path-namespace>
<prefix>ns15</prefix>
<namespace-uri>http://www.globaltrademanagement_export.com/Consignment</namespace-uri>
</path-namespace>
</path-namespaces>
<context>/Shipment</context>
<collections>
<collections-and>
<collection>PowerBI</collection>
<collection>Shipment</collection>
</collections-and>
</collections>
<rows>
<row>
<schema-name>Shipment</schema-name>
<view-name>Test2</view-name>
<columns>
<column>
<name>StatusID</name>
<scalar-type>string</scalar-type>
<val>ns9:DocumentHeader/ns9:Version/ns9:CurrentVersion/ns9:DocStatus/ns9:StatusID</val>
</column>
<column>
<name>HouseBillRef</name>
<scalar-type>string</scalar-type>
<val>ns9:DocumentHeader/ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns0:ConsignmentHeader/ns0:HouseBillRef</val>
</column>
<column>
<name>HouseBillDate</name>
<scalar-type>string</scalar-type>
<val>ns9:DocumentHeader/ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns0:ConsignmentHeader/ns0:HouseBillDate</val>
</column>
<column>
<name>MasterBill</name>
<scalar-type>string</scalar-type>
<val>ns9:DocumentHeader/ns10:ASN/ns10:Schedule/ns11:TransportationUnitHeader/ns11:PrimarytUnit/ns11:TransportUnit/ns11:BillOfLading</val>
</column>
<column>
<name>VesselNamePrfSch</name>
<scalar-type>string</scalar-type>
<val>ns9:DocumentHeader/ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns15:Bookings/ns14:CargoBookingHeader/ns14:DefaultSchedule/ns11:TransportationUnitHeader/ns11:PrimarytUnit/ns11:TransportUnit/ns11:TransUnitName</val>
</column>
<column>
<name>POL_ETD_Prf_Sch</name>
<scalar-type>dateTime</scalar-type>
<val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns15:Bookings/ns14:CargoBookingHeader/ns14:DefaultSchedule/ns5:TransportationUnitHeader/ns5:PrimarytUnit/ns5:TransportUnit/ns5:PortOfLoading/ns9:ScheduledDepartureDate</val>
</column>
<column>
<name>POD_ETA_Prf_Sch</name>
<scalar-type>dateTime</scalar-type>
<val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns15:Bookings/ns14:CargoBookingHeader/ns14:DefaultSchedule/ns5:TransportationUnitHeader/ns5:PrimarytUnit/ns5:TransportUnit/ns5:PortOfDischarge/ns9:ScheduledArrivalDate</val>
</column>
<column>
<name>Trans_Mode</name>
<scalar-type>string</scalar-type>
<val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:TransMode</val>
</column>
<column>
<name>Shipping_Terms</name>
<scalar-type>string</scalar-type>
<val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:ShipmentTerms</val>
</column>
<column>
<name>LoadType</name>
<scalar-type>string</scalar-type>
<val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:SeaLoadType</val>
</column>
<column>
<name>CargoDescription</name>
<scalar-type>string</scalar-type>
<val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:CargoDescription/ns9:CargoDescr</val>
</column>
<column>
<name>PackType</name>
<scalar-type>string</scalar-type>
<val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:CargoDescription/ns9:Packaging/ns9:Package/ns9:PackageType</val>
</column>
<column>
<name>PackQty</name>
<scalar-type>unsignedLong</scalar-type>
<val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:CargoDescription/ns9:Packaging/ns9:Package/ns9:PackageQty</val>
</column>
<column>
<name>CBM</name>
<scalar-type>decimal</scalar-type>
<val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:CargoDescription/ns9:Packaging/ns9:Package/ns9:WeightDims/ns9:M3</val>
</column>
<column>
<name>Net_Weight</name>
<scalar-type>decimal</scalar-type>
<val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:CargoDescription/ns9:Packaging/ns9:Package/ns9:WeightDims/ns9:NetWeight</val>
</column>
<column>
<name>Gross_Weight</name>
<scalar-type>decimal</scalar-type>
<val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:CargoDescription/ns9:Packaging/ns9:Package/ns9:WeightDims/ns9:GrossWeight</val>
</column>
<column>
<name>Litres</name>
<scalar-type>decimal</scalar-type>
<val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:CargoDescription/ns9:Packaging/ns9:Package/ns9:WeightDims/ns9:Litres</val>
</column>
</columns>
</row>
</rows>
</template>
return (
tde:template-insert("/powerbi/Test2.xml",$shipment-CBE),
"shipmentCBE.xml OK"
)
else ("Please select the 'Documents' database.")
運行 mlcp 腳本后的回應 -
C:\Users\admin-rp\Documents\Marklogic\ML_With_PowerBI\bi-tools-master\bi-tools-master\power-bi\marklogic_powerbi_tutorial\config>mlcp.bat -options_file CBETestFileInsert.txt
22/05/10 14:39:59 DEBUG contentpump.ContentPump: Command: IMPORT
22/05/10 14:39:59 DEBUG contentpump.ContentPump: Arguments: -input_file_path ../data/CBE00030166N.xml -username admin -password ... -input_file_type documents -document_type xml -host owc-db01.owc.com -port 8000 -output_collections PowerBI,Shipment
22/05/10 14:39:59 DEBUG contentpump.ContentPump: Running in: localmode
22/05/10 14:39:59 INFO contentpump.LocalJobRunner: Content type: XML
22/05/10 14:39:59 INFO contentpump.ContentPump: Job name: local_240243545_1
22/05/10 14:39:59 INFO contentpump.FileAndDirectoryInputFormat: Total input paths to process : 1
22/05/10 14:39:59 DEBUG contentpump.CombineDocumentInputFormat: Total # of splits: 1
22/05/10 14:39:59 DEBUG contentpump.CombineDocumentInputFormat: Total # of combined splits: 1
22/05/10 14:39:59 DEBUG mapreduce.ContentOutputFormat: init query:
fn:exists(xdmp:get-request-header('x-forwarded-for'));
let $xdbcHeaderf := fn:function-lookup(xs:QName('xdmp:get-xdbc-request-header'),1)
return if (exists($xdbcHeaderf)) then fn:exists($xdbcHeaderf('x-forwarded-for')) else false();
import module namespace hadoop = "http://marklogic.com/xdmp/hadoop" at "/MarkLogic/hadoop.xqy";
xdmp:host-name(xdmp:host()),
let $versionf := fn:function-lookup(xs:QName('xdmp:effective-version'),0)
return if (exists($versionf)) then $versionf() else 0,
let $repf := fn:function-lookup(xs:QName('hadoop:get-forest-replica-hosts'),2)
return exists($repf),let $segRepf := fn:function-lookup(xs:QName('hadoop:get-forest-replica-hosts-with-segment'),2)
return exists($segRepf),let $f := fn:function-lookup(xs:QName('hadoop:get-assignment-policy'),0)
return if (exists($f)) then $f() else ()
22/05/10 14:39:59 DEBUG mapreduce.ContentOutputFormat: HTTP compliant mode disabled since x-forwarded-for doesn't exist
22/05/10 14:39:59 DEBUG contentpump.ThreadManager: Initial thread pool size: 32
22/05/10 14:39:59 DEBUG contentpump.ThreadManager: Thread pool is fixed and will not auto-scale.
22/05/10 14:39:59 DEBUG contentpump.ThreadManager: Running with MultithreadedMapper. Initial thread count for split #0: 32
22/05/10 14:40:00 INFO contentpump.LocalJobRunner: completed 100%
22/05/10 14:40:00 INFO contentpump.LocalJobRunner: com.marklogic.mapreduce.MarkLogicCounter:
22/05/10 14:40:00 INFO contentpump.LocalJobRunner: INPUT_RECORDS: 1
22/05/10 14:40:00 INFO contentpump.LocalJobRunner: OUTPUT_RECORDS: 1
22/05/10 14:40:00 INFO contentpump.LocalJobRunner: OUTPUT_RECORDS_COMMITTED: 1
22/05/10 14:40:00 INFO contentpump.LocalJobRunner: OUTPUT_RECORDS_FAILED: 0
22/05/10 14:40:00 INFO contentpump.LocalJobRunner: Total execution time: 1 sec
這是 mlcp 腳本 -
IMPORT
-input_file_path
../data/CBE00030166N.xml
-username
admin
-password
*****
-input_file_type
documents
-document_type
xml
-host
owc-db01.owc.com
-port
8000
-output_collections
PowerBI,Shipment
uj5u.com熱心網友回復:
視圖可能沒有理由引發錯誤。也許它仍然是一個有效的視圖,并且背景關系沒有匹配任何內容..所以沒有錯誤..
我懷疑沒有任何匹配項,因為您的模板將背景關系設定為“/Shipment”而不是“/Some-namesace:Shipment”
為了幫助解決這些問題,我建議使用:tde:node-data-extraxt()
uj5u.com熱心網友回復:
您正在以用戶身份插入檔案admin。您是否也在以用戶身份查詢并嘗試閱讀它們admin?
我沒有看到為該 TDE 宣告的任何顯式權限。
仔細檢查為視圖設定了哪些權限,以及您嘗試查詢的用戶擁有什么權限。他們有這個tde-view角色嗎?
TDE 檔案的安全性
對模板檔案的操作受以下控制:
,
http://marklogic.com/xdmp/tde collection這是一個包含 TDE 模板檔案的受保護集合。
tde-admin訪問受 TDE 保護的集合所需的角色。
tde-view查看 TDE 保護集合中的檔案所需的角色。通過在定義視圖的模板檔案上設定額外的權限,可以進一步限制對視圖的訪問。由于可以在加載不同權限的多個模板中宣告同一個視圖,因此必須在列級別控制對視圖的訪問,如下所示:默認情況下,列級讀取權限是隱式的,并且源自模板檔案上設定的讀取權限。權限也可以使用權限元素在列上顯式設定。列上的權限不需要相同,而是一起 ORed。具有在列上設定了至少一個讀取權限的角色的用戶將能夠看到該列。
如果用戶對視圖的任何列都沒有權限,則視圖本身是不可見的。
uj5u.com熱心網友回復:
解決了這個問題:
有一個命名空間,當省略時,我可以看到視圖。xmlns="http://www.globaltrademanagement_export.com/Shipment
雖然這存在于輸入 xml 檔案中。但令人驚訝的是,運行 mlcp 匯入腳本時沒有錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/474972.html
標籤:xml 标记逻辑 marklogic-8
下一篇:底部導航頂部的FAB
