Liferay使用服务API导入数百万数据
我有一个遗留表,其中包含大约170万条记录。我正在使用Liferay的service builder api在Liferay的表中插入这些记录,这是根据建议everywhere使用Liferay的service api处理Liferay的表 最初,我使用(Entity)LocalServiceUtil.getentitis(-1,-1)获取所有记录并逐个插入,我意识到一次读取170万条记录是愚蠢的Liferay使用服务API导入数百万数据,liferay,liferay-service-builder,liferay-6.2,Liferay,Liferay Service Builder,Liferay 6.2,我有一个遗留表,其中包含大约170万条记录。我正在使用Liferay的service builder api在Liferay的表中插入这些记录,这是根据建议everywhere使用Liferay的service api处理Liferay的表 最初,我使用(Entity)LocalServiceUtil.getentitis(-1,-1)获取所有记录并逐个插入,我意识到一次读取170万条记录是愚蠢的 然后我从数据库中读取5000个增量的记录。虽然这是可行的,但它正在享受自己的甜蜜时光。是否有其他方
然后我从数据库中读取5000个增量的记录。虽然这是可行的,但它正在享受自己的甜蜜时光。是否有其他方法加快此过程?或者不同的delta值可以解决问题吗?确实应该使用API访问Liferay的数据库 但重要的是要知道为什么要这样做:
- 因为数据库布局没有文档记录,在不同的小版本之间可能会更改,恕不另行通知
- 因为您可能会忽略导致虚假错误的隐式约束
- 因为更改正在运行的Liferay portal的数据库可能会导致错误的缓存条目
- 您正在填写实体的表格(您知道确切的布局)和
- 您停止运行Liferay门户
然后,您可以使用数据库的功能进行批量操作,而不是使用您的服务。是否使用ServiceBuilder访问旧表?正如您所说:使用Liferay的服务api来处理Liferay的表是的。我对源和目标都使用service builder。目标表是Liferay表?是的。我能够使用ext-spring.xml中的配置从外部数据源提取数据,并使用默认数据源将数据推送到Liferay中。