我正在执行一个solr-dih(dataimporthandler)任务,导入存储在Oracle数据库中的大约2000万个文档。最初,这些进口每秒将增加到500多个文档,但在前150000个文档中,速度将降至200以下,最终降低到50-60/s左右;此时,我的耐心达到了极限,我终止了这一过程。导入500万份文档不需要超过30个小时。

这些文档存储为xmltype,因此它们必须在查询中“解码”或外推。

一些团队成员认为使用getclobval()会导致JDBC管道中的内存膨胀和资源消耗(可能在服务器端),但我的测试(将getclob与xmlseriaize进行比较)似乎无法证明这一点。

也许在JDBC连接器中还有一些我还没有尝试过的连接选项,它们可以帮助减少开销并保持高吞吐量。

在过去,我使用简单的HTTP Post(在casperjs和php中)在不到一天的时间内提交了1.5亿个文档。所以我相信这是索尔·迪赫和/或我们与甲骨文的联系方式的问题。

连接如下:

name="OracDB"

type="JdbcDataSource"

driver="oracle.jdbc.driver.OracleDriver"

url="jdbc:oracle:thin:@vape.blah-blah-blah.PUB"

user="some-user-name"

password="some-user-name"

convertType="true"

/>

查询如下

选择

产品ID,

产品类型,

状态,

XML序列化(文档docxml)为XML

cdbxml.products产品

哪里

产品“type='megasowe'

和总成状态

此处使用xpath从该数据库中的XML获取数据…看起来是这样的:

name="DB/Import"

dataSource="OracDB"

onError="skip"

query=""

>

name="productxml"

rootEntity="false"

dataSource="db"

dataField="DB/Import.XML"

processor="XPathEntityProcessor"

transformer="TemplateTransformer,com.megacorp.solr.dih.Transform"

forEach="/document">

[... and a bunch more stuff ...]

我已经运行了很多测试,以查看托管架构或import.xml配置中的更改是否可以改善或降低接收,从而导致无效。

几周前的某个时间点,流程在11小时内导入了700万个文档,然后源数据集增加到了近2000万个文档,这时事情似乎偏离了轨道。

我是否有错误的JDBC连接器设置?我是否可以设置一些内容来告诉Oracle不要缓存此查询..或…???这个问题使我们困惑。在我不得不在HTTPD上输入旧的暴力数据之前寻找一些提示。

oracle导入solr,从Oracle数据库导入XML数据时solr dih会变慢相关推荐

  1. 读取 XML 数据时,超出最大字符串内容长度配额 (8192)

    格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://www.thermo.com/informatics/xmlns/limswebservice 进行反序列化时出错: Process ...

  2. wcf教程-传递数据过大怎么配置?读取 XML 数据时,超出最大字符串内容长度配额 (8192)

    昨天测试客户端程序与服务端wcf时,出现一个错误: 读取 XML 数据时,超出最大字符串内容长度配额 (8192).通过更改在创建 XML 读取器时所使用的 XmlDictionaryReaderQu ...

  3. 数据库插入大量数据时不要忘记先删除索引(小技巧)

    数据库插入大量数据时不要忘记先删除索引,插入完成后再重新建立索引,索引会非常影响插入数据的速度.

  4. SQL高级语句-SQL 通配符-在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。

    SQL 通配符 在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符. SQL 通配符必须与 LIKE 运算符一起使用. 在 SQL 中,可使用以下通配符: 通配符 描述 % 替代一个或多个字 ...

  5. mysql source导入_读取MySQL数据库中的数据【Python数据分析百例连载】

    当所需的数据存贮在MySQL数据库中时,那么数据分析首要任务就是要通过Pandas读取MySQL数据.例如,某网站注册用户信息保存在MySQL数据库中,如图所示(部分数据),下面将使用Pandas的r ...

  6. php语句导入mysql_php如何将数据库导入mysql

    php将数据库导入mysql的方法:1.通过CMD导入MySQL数据库:2.通过Navicat for MySQL导入MySQL数据库:3.通过PHP执行SQL文件导入MySQL数据库. 通过CMD导 ...

  7. mysql修改导入导出权限_数据库导入导出与赋权限及建同义词

    1.数据库导入导出DMP文件(一般要以adm账号来执行) a)从正式库导出数据: exp sw_adm/swadm123@cwdevdb owner=sw_adm file=E:20121217cwd ...

  8. java中mysql中标点符号_java – 如何在使用JDBC从MySQL数据库中提取数据时避免丢失标点符号?...

    首先,我正在使用: Java 1.7.0_02 MySQL 5.1.50 ZendServer CE (if that matters) 我用来从Java连接到MySQL的JDBC驱动程序是com.m ...

  9. linux给oracle导入sql语句,Linux数据库创建与数据导入

    之前没搞过linux,这次客户的系统装的linux,项目发布环境及数据库已经安装好了.由于要急着上线,所以就边摸索边处理了.简单记 之前没搞过linux,这次客户的系统装的linux,项目发布环境及数 ...

最新文章

  1. Office OpenXML-Excel(一)
  2. 购物中心定位分析、调整方案及租金建议
  3. 教你如何使用EXCEL中的lookup函数(摘自“MS帮助和支持”)
  4. 张陈斌计算机控制工程,计算机控制讲稿--4.pdf
  5. solr创建索引_Solr:创建拼写检查器
  6. LeetCode 1304. 和为零的N个唯一整数
  7. 给iOS项目中添加图片,并通过UIImageView引用和显示该UIImage图片
  8. 一天一模式:Decorator模式
  9. linux建立ftp用户
  10. 全球首款5G手机出炉?其实只是一个笑话
  11. Luogu4116 Qtree3
  12. 利用natapp做内网穿透
  13. MTK手机烧录与调试
  14. windows10更新服务器修改,Windows 10彻底关闭自动更新(Windows Update和Windows Update Medic Service)...
  15. QT中的explicit关键字的意思
  16. python电影爬虫背景介绍_Python爬虫入门教程01之爬取豆瓣Top电影
  17. Geek-10h-re-wp
  18. JS(JavaScript)中实现深浅拷贝的几种方式(详细阅读 非常重要)。
  19. ORA-12170:TNS:连接超时错误处理
  20. Deepin - 装机必备软件记录

热门文章

  1. POJ - 3384 Feng Shui(半平面交)
  2. 数据、数据元素、数据项、数据对象的理解
  3. linux下登录ftp使用lftp命令详解
  4. nginx关闭/重启/启动的操作方法
  5. python通信信号处理_python学习笔记——信号模块signal(示例代码)
  6. C++_输入一个字符串,并逆序输出
  7. 【前端面试题】01—42道常见的HTML5面试题(附答案)
  8. AtCoder Regular Contest 154 题解
  9. 电脑文件丢失了怎么恢复?2021最新教程汇总
  10. 视频推流一周研究调查报告