我需要使用MarkLogic REST接口向Qlik Sense提交约1000万个XML文档,以分析Qlik上的原始数据。
我无法使用简单的cts:search
发送该批量数据。
具有如下SQL调用的模板视图无济于事,因为Qlik Sense无法识别它。
xdmp:to-json(xdmp:sql('select * from SC1.V1'))
有没有更好的方法来实现这一目标?
我了解将如此庞大的数据加载到Qlik并不常见,但是我应该考虑哪些限制?
答案 0 :(得分:2)
您不太可能在单个“事务”(或请求)中将这么多的数据传入或传出任何系统。而且,如果您不希望这样做,那么当它失败时,它很可能永远失败,因为您必须重新开始。
您应该将文档“分批”为可管理的块。.100MB或“ 1分钟”是一个合理的上限-随着大小和时间的增加,由于超时,内存而导致问题出现(上升)的可能性,临时空间,互联网和网络瞬态问题等。
一种通常有效的简单策略是首先生成要提取内容的“列表”(文档uris,主键..),保存该内容,然后分批处理列表-根据需要重试。根据目的地和本地存储等,您可以将批次合并以发送给收件人,或者通常更好的方法是也批量发送目标数据。
这种方法具有良好的事务处理特性……您在创建列表时可以有效地“冻结”数据集,但会花费一些时间来收集和发送数据。取决于-您可能可以并行执行此操作。