首页 > 解决方案 > 如何从另一个数据库中使用 MarkLogic DataHub importFlow

问题描述

我有一个用例需要查询一个数据库中的一些数据,然后将此数据用作 MarkLogic DataHub 管道的新输入。

我创建了一个有效的导入和协调流程。

现在我想从另一个数据库运行导入流程,将数据插入到 dhf 中的暂存数据库中。

'use strict';

let id= "/ClueyTest/track/cluey/a2c5c32c-6e99-47c9-8b4d-5b97897509f7.json";

let options = {"dhf.projectName":"ClueyTest", "entity":"Track", "flow":"ImportClueyTracks", "flowType":"input", "dataFormat":"json"};

let rawContent = {
"trackId": "a2c5c32c-6e99-47c9-8b4d-5b97897509f7", 
"type": "Feature", 
"geometry": {
"type": "LineString", 
"coordinates": [
[5.4701967, 51.8190698], 
[5.470028, 51.8193624],
[5.470038, 51.8193624], 
[5.470048, 51.8193624], 
[5.470028, 51.8193634]]
}
, 
"properties": {
"timestamps": [
"2019-02-14T16:52:06+0100", 
"2019-02-14T16:51:07+0100", 
"2019-02-14T16:43:24+0100", 
"2019-02-14T16:43:24+0100", 
"2019-02-14T16:43:24+0100" 
]
}
, 
"tracktype": "on", 
"endTimestamp": "2019-02-14T16:51:07+0100", 
"startTimestamp": "2019-02-14T14:46:50+0100"
}

const clt = require('/entities/clueyTrack/input/ImportClueyTracks/main.sjs');

// the main in the import flow
clt.main(id,rawContent,options);

显然,您需要在 datahub 内有一个工作导入流来运行此代码,但问题是关于一般用例如何运行导入流,而不是从 gradle 而是从 marklogic 数据库内部。

所有 dhf 代码都是 sjs。

标签: marklogic-9marklogic-dhf

解决方案


我认为使用服务器端库是最优雅的,但我认为它确实需要 DataHub v4+:

https://marklogic.github.io/marklogic-data-hub/refs/server-side-library/


推荐阅读