marklogic - 如何从应用程序服务器运行 mlcp 导入林
问题描述
我在应用程序服务器上安装了 mlcp (v9.0.4) 连接到数据库服务器中的 DB1 数据库 (ML v 9.0.4)
考虑:DB1 森林位于 /data/db_data/Forests/forest1 DB2 侦听端口 1111
我正在尝试在应用程序服务器上运行以下
./mlcp.sh import -mode local -host DBSERVER -port 1111 -user uname -password xxx -input_file_path file:///DBSERVER/data/db_data/Forests/forest1 -input_file_type forest
DB1 森林到 DB2 森林(两个数据库都在同一主机上运行)。
mlcp 似乎在应用程序服务器而不是 DBSERVER 中寻找路径,因此引发错误:输入文件路径不存在。正确的方法是什么?
我可以做 mlcp 复制,但想确认:
- 此选项不起作用
- 由于给定的过滤条件,mlcp 复制似乎较慢。
直接的问题是 - 将数据从一个内容数据库迁移到另一个内容数据库的最佳方法是什么?MLCP 副本可以做到这一点,但它对我来说太慢了。
解决方案
回答您评论中的问题:将数据从一个内容数据库迁移到同一主机/集群中的另一个内容数据库的最佳方法是什么。
我假设这将是一个一次性或不频繁的过程。一种方法是为 DB1 创建副本林。同步林后,删除副本并将它们分配给 DB2。这种方法应该比 MLCP 快得多。
看起来您的 MLCP 无法正常工作的主要原因是 MLCP 的某些限制。从文档(直接访问的限制):
当您将 mlcp 与直接访问一起使用时,您的林数据必须可以从处理输入的主机访问。在分布式模式下,必须可以从 Hadoop 集群中的节点访问森林。在本地模式下,森林必须可以从您执行 mlcp 的主机访问。
推荐阅读
- javascript - 导入json数据时VueJS编译失败
- python - 使用 beautifulsoup、请求和正则表达式的 Web 抓取程序中的语法错误
- statistics - 如何从此函数获得一致的返回类型?
- javascript - 从 HTML Canvas 捕获图像的最快方法
- java - 按标准排序的 5 个项目的分组
- java - 使用 Firestore 的 Android 加入查询
- python - 使用字典进行类型转换
- jmeter - JMeter:如何在单个线程组下为多个并发用户运行多个采样器?
- php - 在php中使用时区转换原子时间戳
- python - (Rest 框架,Django)__init__() 接受 1 个位置参数,但给出了 2 个