标签: vertica

Vertica VerticaDayTimeInterval精度存储错误

编辑:请指出其他人是否没有看到这个问题,我做错了什么.

我试图通过VerticaDayTimeInterval构造函数向包含单个VerticaDayTimeInterval列的表添加行.不管我之前给出的是什么,精度和小数值都被错误地打印并且检索所有6的精度.

dayInt = new VerticaDayTimeInterval(10, 10, 01, 8, 2, 1, false) ; ((VerticaPreparedStatement) pstmt).setObject(1, dayInt) ; pstmt.addBatch() ; System.out.println(dayInt.toString());
dayInt = new VerticaDayTimeInterval(10, 10, 02, 7, 3, 2, false) ; ((VerticaPreparedStatement) pstmt).setObject(1, dayInt) ; pstmt.addBatch() ; System.out.println(dayInt.toString());
dayInt = new VerticaDayTimeInterval(10, 10, 03, 6, 43, 3, false) ; ((VerticaPreparedStatement) pstmt).setObject(1, dayInt) ; pstmt.addBatch() ; System.out.println(dayInt.toString());
Run Code Online (Sandbox Code Playgroud)

表输出

DayInt       
-------------------
10 10:03:49.000211
11 07:00:00.0002
9 09:09:05.000005
(3 rows)
Run Code Online (Sandbox Code Playgroud)

使用结果集重新打印和打印行.

for (int x=1 ; rs.next() ; ++x) {
    VerticaDayTimeInterval dti = (VerticaDayTimeInterval)(rs.getObject(1)); …
Run Code Online (Sandbox Code Playgroud)

java datetime vertica

31
推荐指数
1
解决办法
352
查看次数

Vertica和加入

我正在调整网络分析工具以Vertica用作数据库.我遇到了真正的问题optimizing joins.我尝试为我的一些查询创建预连接投影,虽然它确实使查询快速,但它减慢了数据加载到事实表中的速度.

INSERT INTO ... SELECT * FROM我们用来从临时表中将数据加载到事实表中的一个简单过程需要大约5秒钟才能完成20多分钟.

因此,我删除了所有预连接投影,并尝试使用Database Designer设计查询特定的投影,但这还不够.即使使用这些投影,简单的连接也需要大约14秒,这需要约1秒的预连接投影.

我的问题是:预连接预测是否正常减慢数据插入这一点,如果不是,那可能是罪魁祸首?如果这是正常的,那么它对我们来说是一个显示阻止,是否有其他技术可以用来加速连接?

我们在5节点集群上运行Vertica,每个节点具有2 x四核CPU和32 GB内存.我的示例查询中的表分别有188,843,085和25,712,878行.

EXPLAIN输出如下所示:

EXPLAIN SELECT referer_via_.url as referralPageUrl, COUNT(DISTINCT sessio
n.id) as visits FROM owa_session as session JOIN owa_referer AS referer_vi
a_ ON session.referer_id = referer_via_.id WHERE session.yyyymmdd BETWEEN 
'20121123' AND '20121123' AND session.site_id = '49' GROUP BY referer_via_
.url  ORDER BY visits DESC LIMIT 250;

Access Path:
+-SELECT  LIMIT 250 [Cost: 1M, Rows: 250 (STALE STATISTICS)] (PATH ID: 0)
|  Output Only: …
Run Code Online (Sandbox Code Playgroud)

sql join vertica

16
推荐指数
1
解决办法
6058
查看次数

如何保存sql中的最后一个检查点以用于下一行

有什么办法可以存储最后一次迭代的行结果并将其用于下一行迭代吗?

例如,我有一个表说(Time_Table).

__   Key   type   timeStamp             
1 )    1     B    2015-06-28 09:00:00  
2 )    1     B    2015-06-28 10:00:00  
3 )    1     C    2015-06-28 11:00:00  
4 )    1     A    2015-06-28 12:00:00  
5 )    1     B    2015-06-28 13:00:00  
Run Code Online (Sandbox Code Playgroud)

现在假设我有exceptionTime90分钟不变.如果我开始检查我的Time_Table话:

  1. 对于第一行,因为在09:00:00,它之前没有行将直接将此记录放入我的目标表中.现在我的参考点是9:00:00.

  2. 对于10:00:00,最后一个参考点的第二行是09:00:00TIMESTAMPDIFF(s,09:00:00,10:00:00)60,它小于所需的90.我不将此行添加到我的目标表.

  3. 对于第三行,最后记录的异常是at,09:00:00并且TIMESTAMPDIFF(s,09:00:00,11:00:00)120是大于所需的90,因此我选择此记录并将参考点设置为11:00:00.

  4. 对于第四排TIMESTAMPDIFF(s,11:00:00,12:00:00).同样,它不会被保存.

  5. 这个又被保存了.

目标表

__   Key   type   timeStamp             
1 )    1     B    2015-06-28 09:00:00  
2 )    1     C    2015-06-28 …
Run Code Online (Sandbox Code Playgroud)

sql vertica

15
推荐指数
1
解决办法
478
查看次数

与MongoDB或Cassandra相比,Greenplum或Vertica等数据库的优势

我目前正在与MongoDBApache Cassandra分别开展一些项目.我也在使用Solr,我正在使用它们处理"大量"数据(大约1-2TB).我上周第一次听说过GreenplumVertica,我不太确定,把它们放在我的大脑里.他们在我看来像Dataware House(DWH)解决方案,我还没有真正使用过DWH.而且他们似乎要花很多钱(例如Greenplum的1TB存储费用为6万美元).我目前没有处理Petabyte的数据,我想不会这样做,但像cassandra这样的产品似乎也能够处理这个

Cassandra是公认的NoSQL领导者,可以轻松扩展到太字节或数PB的数据.

通过http://www.datastax.com/why-cassandra

所以我的问题是:人们为什么要使用Greenplum&Co?与其他产品相比,是否有巨大的优势?

谢谢.

data-warehouse mongodb cassandra vertica greenplum

13
推荐指数
4
解决办法
3万
查看次数

unixODBC在运行isql时出错[Vertica]

您好我已经在Ubuntu 10.10 32位版本机器中配置了vertica的DSN设置.设置都很好,我已经交叉检查了它们.

这是我的odbc.ini文件:

 [VerticaDSN]
  Description = VerticaDSN ODBC driver
  Driver = /opt/vertica/lib/libverticaodbc_unixodbc.so
  Servername = myservername
  Database = mydbname
  Port = 5433
  UserName = myuname
  Password = *******
  Locale = en_US
Run Code Online (Sandbox Code Playgroud)

同样我有一个odbcinst.ini文件.

当我运行命令时:isql -v VerticaDSN我收到以下错误:

 [S1000][unixODBC][DSI] The error message NoSQLGetPrivateProfileString could not be found    in the en-US locale. Check that /en-US/ODBCMessages.xml exists.
[ISQL]ERROR: Could not SQLConnect.
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一切,但我无法破译这个错误.

任何帮助将不胜感激.

unixodbc vertica

10
推荐指数
1
解决办法
2万
查看次数

如何在Vertica中搜索column_names?

有人知道在Vertica中搜索column_names的方便功能吗?从文档中,似乎\ d只查询table_names.我正在寻找像MySQL的information_schema.columns这样的东西,但找不到有关类似的元数据表的任何信息.

谢谢!

search vertica

10
推荐指数
1
解决办法
1万
查看次数

有没有人知道vertica的odbc连接字符串的格式?

我正在使用以下内容:

DRIVER={Vertica ODBC Driver 4.1};
SERVER=lnxtabdb01.xxxx.com;
PORT=5433;
DATABASE=vertica;
USER=dbadmin;
PASSWORD=vertica;
OPTION=3;
Run Code Online (Sandbox Code Playgroud)

我收到此错误,我只想在检查其他可能的问题之前确保我的连接字符串很酷.

错误:

EnvironmentError: System.Data.Odbc.OdbcException (0x80131937): ERROR [28000] FATAL: no Vertica user name specified in startup packet
Run Code Online (Sandbox Code Playgroud)

更新:目前我只是在Windows Vista中使用我可以使用的系统数据源名称.但是我仍然想知道是否有odbc连接字符串,这样我就不必在每台将以这种方式连接到Vertica DB的机器上进行设置.

好吧,我尝试了一个postgresql连接字符串,如下所示:

Host=lnxtabdb01.xxxx.com;
Port=5433;
Database=vertica;
User ID=dbadmin;
Password=vertica;
Pooling=true;
OPTION=3;
Min Pool Size=0;
Max Pool Size=100;
Connection Lifetime=0;
Run Code Online (Sandbox Code Playgroud)

现在我得到这个:

EnvironmentError: System.Data.Odbc.OdbcException (0x80131937): ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Run Code Online (Sandbox Code Playgroud)

odbc vertica

9
推荐指数
2
解决办法
1万
查看次数

优化Vertica SQL查询以执行运行总计

我有一个带有时间序列数据的表S,如下所示:

key   day   delta
Run Code Online (Sandbox Code Playgroud)

对于给定的密钥,它可能但不太可能缺少天数.

我想从delta值(正INT)构造一个累积列,以便将此累积数据插入另一个表中.这是我到目前为止所得到的:

SELECT key, day,
   SUM(delta) OVER (PARTITION BY key ORDER BY day asc RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW),
   delta
FROM S
Run Code Online (Sandbox Code Playgroud)

在我的SQL风格中,默认窗口子句是在UNBOUNDED PRECEDING和CURRENT ROW之间的范围,但我把它留在那里是明确的.

这个查询非常慢,比旧的破解查询慢了几个数量级,这个查询为累计计数填充了0.有关生成累积数字的其他方法的建议吗?

我确实在这里查看解决方案: 按表中的分组记录运行总计

我正在使用的RDBM是Vertica.Vertica SQL排除了那里的第一个subselect解决方案,它的查询规划器预测第二个左外连接解决方​​案的成本比我上面显示的分析形式高出约100倍.

sql running-total vertica window-functions

8
推荐指数
1
解决办法
4731
查看次数

如何在vertica上创建索引?

我在Vertica上创建了一个表.我想在该表上创建索引.我无法在vertica上创建索引.可能吗?我怎样才能做到这一点?谁能给我一些示例脚本?谢谢.

indexing vertica

8
推荐指数
2
解决办法
7569
查看次数

SQL在多列上保留外连接

根据此SQL连接备忘单,一列上的左外连接如下:

SELECT *
  FROM a
  LEFT JOIN b 
    ON a.foo = b.foo
  WHERE b.foo IS NULL 
Run Code Online (Sandbox Code Playgroud)

我想知道在多个列上连接会是什么样子,如果它是一个ORANDWHERE子句中?

SELECT *
  FROM a
  LEFT JOIN b 
    ON  a.foo = b.foo
    AND a.bar = b.bar
    AND a.ter = b.ter
WHERE b.foo IS NULL 
  OR  b.bar IS NULL 
  OR  b.ter IS NULL
Run Code Online (Sandbox Code Playgroud)

要么

SELECT *
  FROM a
  LEFT JOIN b 
    ON  a.foo = b.foo
    AND a.bar = b.bar
    AND a.ter = b.ter
WHERE b.foo IS NULL …
Run Code Online (Sandbox Code Playgroud)

sql join vertica

8
推荐指数
1
解决办法
3万
查看次数