使用vsql时,我想看看查询完成后运行多长时间.例如,当我运行:
select count(distinct key) from schema.table;
Run Code Online (Sandbox Code Playgroud)
我希望看到如下输出:
5678 (1 row) total query time: 55 seconds.
如果这是不可能的,还有另一种方法来衡量查询时间吗?
我需要以逗号分隔的id列表作为凌乱的第三方api的字段:s这是我想要实现的简化版本.
| id | name |
|====|======|
| 01 | greg |
| 02 | paul |
| 03 | greg |
| 04 | greg |
| 05 | paul |
SELECT name, {some concentration function} AS ids
FROM table
GROUP BY name
Run Code Online (Sandbox Code Playgroud)
返回
| name | ids |
|======|============|
| greg | 01, 03, 04 |
| paul | 02, 05 |
Run Code Online (Sandbox Code Playgroud)
我知道MySQL有CONCAT_GROUP函数,我希望在没有安装更多函数的情况下解决这个问题,因为环境.也许我可以使用OVER语句解决这个问题?
在vertica中有一个表:像这样测试:
ID | name
1 | AA
2 | AB
2 | AC
3 | AD
3 | AE
3 | AF
Run Code Online (Sandbox Code Playgroud)
如何使用聚合函数或如何编写查询以获取像这样的数据(vertica语法)?
ID | ag
1 | AA
2 | AB, AC
3 | AD, AE, AF
Run Code Online (Sandbox Code Playgroud) 所以我需要在vertica数据库中插入一些值(通过vsql),它可能包含引号和各种特殊字符.但是vertica似乎并不理解字符转义.例如:
rpt=> select "asdasda\"asdasdad" from some_table limit 1;
rpt"> ";
ERROR: syntax error at or near "" from some_table limit 1;
"" at character 26
LINE 1: select "asdasda\"asdasdad" from some_table limit 1;
Run Code Online (Sandbox Code Playgroud)
这不是insert语句,但你应该明白这一点.
假设我有一个简单的表:
CREATE TABLE user(
id INT NOT NULL PRIMARY KEY,
name VARCHAR(32) NOT NULL,
)
Run Code Online (Sandbox Code Playgroud)
有没有办法改变这个表,所以id将成为AUTO_INCREMENT字段?
我试了以下没有运气:
谢谢!
我们正在使用Vertica社区版,其原始数据限制为1TB.
最近达到了1 TB的原始数据限制,因此我们决定从所有表中删除一些记录.删除旧记录后,Vertica仍显示利用率:104%
dbadmin=> SELECT GET_COMPLIANCE_STATUS();
GET_COMPLIANCE_STATUS
----------------------------------------------------------------------------------------
Raw Data Size: 1.04TB +/- 0.10TB
License Size : 1.00TB
Utilization : 104%
Audit Time : 2014-09-04 13:05:24.020979-04
Compliance Status : The database is in compliance with respect to raw data size.
No expiration date for a Perpetual license
NOTICE: Recent audits suggests a change in compliance status. We are awaiting additional data points to confirm.
(1 row)
Run Code Online (Sandbox Code Playgroud)
知道如何释放这个空间吗?
我正在使用 python 将数据(约 800 万行)从 oracle 传输到 vertica。我写了一个 python 脚本,它在 2 小时内传输数据,但我正在寻找提高传输速度的方法。
我正在使用的过程:
dataframe.to_sql方法,但该方法仅限于几个数据库有没有人使用更好的方法(批量插入或任何其他方法?)使用 python 将数据插入 vertica?
这是代码片段:
df = pandas.read_sql_query(sql,conn)
conn_vertica = pyodbc.connect("DSN=dsnname")
cursor = conn_vertica.cursor()
for i,row in df.iterrows():
cursor.execute("insert into <tablename> values(?,?,?,?,?,?,?,?,?)",row.values[0],row.values[1],row.values[2],row.values[3],row.values[4],row.values[5],row.values[6],row.values[7],row.values[8])
cursor.close()
conn_vertica.commit()
conn_vertica.close()
Run Code Online (Sandbox Code Playgroud) 我使用python库vertica-python将COPY数据传输到Vertica数据库
connection = vertica_python.connect(**conn_info)
vsql_cur = connection.cursor()
with open("/tmp/vertica-test-insert", "rb") as fs:
vsql_cur.copy( "COPY table FROM STDIN DELIMITER ',' ", fs, buffer_size=65536)
connection.commit()
Run Code Online (Sandbox Code Playgroud)
它插入数据,但只插入 5 行,尽管文件包含更多数据。这可能与数据库设置有关还是某些客户端问题?
我想从 .Net Core 应用程序连接到 Vertica DB,但 Vertica.Data 包与 .Net Core 不兼容。一直在寻找另一个适用于 .Net 核心的软件包,但没有找到任何东西。是否有其他解决方法可以从 .Net 核心应用程序查询 Vertica?
所以我有一个有三个节点的Hadoop集群.Vertica位于群集上.HDFS上有Parquet文件(由Hive分区).我的目标是使用Vertica查询这些文件.
现在我所做的是使用HDFS Connector,基本上在Vertica中创建一个外部表,然后将其链接到HDFS:
CREATE EXTERNAL TABLE tableName (columns)
AS COPY FROM "hdfs://hostname/...../data" PARQUET;
Run Code Online (Sandbox Code Playgroud)
由于数据量很大.这种方法不会取得良好的性能.
我做了一些研究, Vertica Hadoop集成
我已经尝试过HCatalog,但我的Hadoop上有一些配置错误,所以这不起作用.
我的用例是不使用Vertica查询HDFS(Parquet)上的数据格式.有关如何做到这一点的任何想法?
编辑:Vertica性能缓慢的唯一原因是它无法使用Parquet的分区.使用更高版本的Vertica(8+),它现在可以使用配置单元的元数据.所以不需要HCatalog.