from:http://blog.csdn.net/kongxx/article/details/38975539
将实时数据导入vertica时出现的错误,记录一下。
Caused by: java.sql.SQLException: [Vertica][VJDBC](5065) ERROR: Too many ROS containers exist for the following projections: public.action_log_super (limit = 39936, ROS files = 40092, DV files = 0, new files = 39) at com.vertica.util.ServerErrorData.buildException(Unknown Source) ~[stormjar.jar:na] at com.vertica.dataengine.VQueryExecutor.readCopyStartResponse(Unknown Source) ~[stormjar.jar:na] at com.vertica.dataengine.VQueryExecutor.handleExecuteResponse(Unknown Source) ~[stormjar.jar:na] at com.vertica.dataengine.VQueryExecutor.execute(Unknown Source) ~[stormjar.jar:na] at com.vertica.jdbc.SPreparedStatement.executeBatch(Unknown Source) ~[stormjar.jar:na] at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723) ~[stormjar.jar:na] at org.springframework.jdbc.core.JdbcTemplate$4.doInPreparedStatement(JdbcTemplate.java:898) ~[stormjar.jar:na] at org.springframework.jdbc.core.JdbcTemplate$4.doInPreparedStatement(JdbcTemplate.java:1) ~[stormjar.jar:na] at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:586) ~[stormjar.jar:na] ... 23 common frames omitted Caused by: com.vertica.util.ServerException: [Vertica][VJDBC](5065) ERROR: Too many ROS containers exist for the following projections: public.action_log_super (limit = 39936, ROS files = 40092, DV files = 0, new files = 39) ... 32 common frames omitted
碰到找个问题就不得不说说Vertica的存储机制了。Vertica在默认情况下会把新写入的数据写入到WOS(写优化)中,然后根据一定的条件(比如说一定的时间周期)再把WOS中的数据写入到ROS(读优化)中,这时ROS有可能很多都是很小数据块的碎片,这是Vertica会在一定的时间周期后把这些ROS数据块合并成大的ROS文件。
这里把数据从WOS写入到ROS的过程Vertica管它叫MoveOut操作,而把零散的ROS合并成大的ROS的过程Vertica管它叫MergeOut操作。
好了,现在来看看我们的问题吧。错误里报的是ROS太多,那可能的原因是
1. WOS写ROS太多,这个原因很大的可能是每次insert/update的数据集太小,导致生成的碎片太多。
2. ROS太多,而配置的MoveOut和MergeOut的时间间隔太长,导致来不及做MoveOut和MergeOut。
1. 针对第一个可能的原因,提交数据批量为2000,数据集还是太小,修改为20000。
2. 对于第二个可能的原因,查了一下Vertica的资料,在Vertica中默认的MergeOutInterval是600,MoveOutInterval是300。这两个参数可以通过下面的命令来查看
dwyypas=> SELECT GET_CONFIG_PARAMETER('MoveOutInterval'); GET_CONFIG_PARAMETER ---------------------- 300 (1 row) dwyypas=> SELECT GET_CONFIG_PARAMETER('MergeOutInterval'); GET_CONFIG_PARAMETER ---------------------- 600 (1 row)
由于应用本身会产生很多的ROS碎片,所以我们想到了是不是可以通过减小MoveOut和MergeOut的Interval来让Vertica尽快的做MoveOut和MergeOut。因此修改了Vertica的参数
SELECT SET_CONFIG_PARAMETER('MoveOutInterval', 60); SELECT SET_CONFIG_PARAMETER('MergeOutInterval', 30);
其实关于这个问题,还有几个参数可以调节,具体资料可以参考
Vertica Tuple Mover Parameters
相关推荐
vertica数据库的连接jar包下载
Ansible-vertica-vagrant.zip,你只需要在virtualboxvertica vagrant中本地运行hpe vertica,ansible是一个简单而强大的自动化引擎。它用于帮助配置管理、应用程序部署和任务自动化。
vertica安装包RPM第一部分,共计两部分,大小255M,版本9.1.1
在Vertica数据库系统中,**投影**是物理存储层的核心概念之一,它由一个或多个表中的列集合组成。通过这种方式,投影允许用户针对特定的工作负载优化数据的存储与访问方式。每一个投影实际上存储了一组数据的独立...
Vertica 扩展和实用程序 2015 年 1 月 31 日的注意事项: 存储库将发生重大变化。 敬请关注 :) 扩展 UDF C++: 功能 描述 正态分布 产生一组正态分布的随机值 连线 将几列连接成一个字符串 拼写号码 将数值转换...
Vertica Documentation - Vertica Analytic Database Contents Vertica® 9.1.x Documentation 5 Vertica 9.1.x Supported ...Vertica Error Messages 5345 Glossary 5525 Third-Party Software Acknowledgements 5643
You can download the Vertica drivers here: https://my.vertica.com/download/vertica/client-drivers/ Once you have the files you want (i.e. vertica-jdbc-9.2.1-0.jar) you should be able to run a ...
vertica-python vertica-python是Vertica( )数据库的本地Python客户端。 vertica-python是已弃用的Python客户端vertica_db_client的替代,该客户端从Vertica服务器9.3版删除。 :loudspeaker: 2018年8月14日: ...
Java连接数据vertica数据库 就可以连接数据库 import java.sql.*; import java.util.Properties;... conn = DriverManager.getConnection("jdbc:vertica://172.19.1.135:5433/DB_vertica", myProp);
URL格式通常是`jdbc:vertica://<hostname>:<port>/<database>`。 - **SQL语句执行**:使用`Statement`或`PreparedStatement`对象执行SQL查询、更新或删除操作。 - **结果集处理**:通过`ResultSet`对象遍历查询结果...
根据给定文件信息,我们将详细探讨HPE Vertica Analytics Platform版本8.1的相关知识点,这一版本的Vertica是适用于大规模并行处理(MPP)数据库架构的分析平台。由于文件信息中包含了文档的标题、描述和部分内容,...
jdbc:vertica://<hostname>:<port>/<database>?user=<username>&password= ``` 其中,`<hostname>`是Vertica服务器的IP或域名,`<port>`是数据库监听的端口,`<database>`是数据库名,`<username>`和`<password>`...
《深入理解go-vertica:与Vertica数据库的纯Go交互》 在现代软件开发中,数据库的交互是不可或缺的一部分,而Go语言以其高效、简洁的特性,成为了许多后端服务的首选。本文将深入探讨`go-vertica`这个纯Go库,它为...
vertica.dplyr 用户指南 马华 2015-07-30 rmarkdown::html_vignette %\VignetteIndexEntry{vertica.dplyr 用户指南} %\VignetteEngine{knitr::rmarkdown} \usepackage[utf8]{inputenc} vertica.dplyr vertica.dplyr ...
垂直SQL炼金术用于SQLAlchemy的Vertica方言该模块为SQLAlchemy实现了Vertica方言。 您可以使用它:>>> import sqlalchemy as sa>>> sa.create_engine(sa.engine.url.URL( drivername='vertica+pyodbc', username='...
《深入理解Vertica集群连接与JavaScript应用》 Vertica,由HP公司开发并维护的一款高性能、分布式的关系型数据库管理系统,以其强大的数据处理能力和高效的查询性能而受到广泛关注。在大规模数据分析和实时业务处理...
**标题:“Vertica Windows客户端”** **描述:**Vertica是一种高性能的多处理(MPP)数据库系统,由美国HP公司收购。它以其出色的查询速度、大规模数据处理能力和高可用性而受到赞誉。作为Vertica的客户端,它为用户...
很棒的Vertica 库,工具和资源的列表。 欢迎捐款。 请查看以了解详细信息。内容客户群官方Python驱动程序。 官方Go驱动程序。 vcli-具有自动完成功能和语法突出显示功能的CLI。 工具d2l-从类似于csv的文件中推断表...
HPE Vertica and Sparkitecture HPE Vertica是一种基于列存储的数据库管理系统,具有高性能、可扩展性和标准化等特点。它可以与Apache Kafka和Spark集成,实现批处理和实时流处理分析。Vertica Analytics Platform...
"vertica-vagrant"是一个项目,它旨在帮助用户在VirtualBox虚拟环境中本地设置和运行HPE Vertica数据库系统。"HPE Vertica"是高性能、可扩展的列式数据库管理系统,常用于大数据分析。"vagrant"是自动化虚拟化工具,...