使用vsql时,我想看看查询完成后运行多长时间.例如,当我运行:
select count(distinct key) from schema.table;
Run Code Online (Sandbox Code Playgroud)
我希望看到如下输出:
5678 (1 row) total query time: 55 seconds.
如果这是不可能的,还有另一种方法来衡量查询时间吗?
为Hadoop集群提供数据并使用该集群将数据输入Vertica/InfoBright数据仓库有什么意义?
所有这些供应商都在说"我们可以与Hadoop联系",但我不明白这是什么意思.在Hadoop中存储并转移到InfoBright有什么兴趣?为什么不将应用程序直接存储在Infobright/Vertica DW中?
谢谢 !
我需要以逗号分隔的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语句解决这个问题?
我迁移一些SQL和PostgreSQL 9.2至7.0 Vertica的,我可以利用一些帮助的Postgres更换的冷静ARRAY_AGG的东西,功能Vertica的(可能还有其他RDBMS)支持,如分区和窗口功能.我是这些功能的新手,我真的很感激你的想法.
使用array_agg(sql fiddle demo)的(工作)查询:
SELECT B.id, (array_agg(A.X))[1]
FROM B, AB, A
WHERE B.id = AB.B_id AND A.id = AB.A_id AND A.X IS NOT NULL
GROUP BY B.id;
Run Code Online (Sandbox Code Playgroud)
如果我试图在没有聚合的情况下天真地选择AX(即,让RDBMS选择 - 实际上与MySQL和SQLite一起工作),postgres抱怨.运行相同的查询但使用"AX"而不是"(array_agg(AX))1 ":
ERROR: column "a.x" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: SELECT B.id, A.X
Run Code Online (Sandbox Code Playgroud)
我正在考虑尝试一个窗口函数,例如,从这个问题:
SELECT email, FIRST_VALUE(email) OVER (PARTITION BY email)
FROM questions
GROUP BY email;
Run Code Online (Sandbox Code Playgroud)
但我得到同样的错误:
SELECT B.id, …
Run Code Online (Sandbox Code Playgroud) 我有一个查询,该查询为我提供了两个日期start_date和end_date之间的COUNT,并按各个列进行了分组。有什么办法可以让我每天获得COUNT个?就像说start_date是date1和end_date是date5一样,因此我需要对“ date1到date2”,“ date1到date3”,“ date1到date4”,然后“ date1到date5”运行一次查询。是否像基于开始日期和结束日期多次运行同一查询?我的查询看起来像
Select COUNT(A), B, C, D
FROM TABLE
WHERE CONDITION1 AND DATE BETWEEN start_date AND end_date
GROUP BY B, C, D
Run Code Online (Sandbox Code Playgroud) 我试图在另一个组的子组中找到最小和最大日期。这是示例“数据”
ID Type Date
1 A 7/1/2015
1 B 1/1/2015
1 A 8/5/2014
22 B 3/1/2015
22 B 9/1/2014
333 A 8/1/2015
333 B 4/1/2015
333 B 3/29/2014
333 B 2/28/2013
333 C 1/1/2013
Run Code Online (Sandbox Code Playgroud)
我想确定的是 - 在一个 ID 中,每个相似类型块的最小/最大日期是多少?所以对于 ID # 333,我想要以下信息:
A: min & max = 8/1/2015
B: min = 2/28/2013
max = 4/1/2015
C: min & max = 1/1/2013
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何在一组 ID 中仅识别不间断的 Type 分组。对于 ID #1,我需要保留两个具有单独最小/最大日期的“A”类型,因为它们被类型“B”分割,所以我不能只为 ID #1 提取所有类型 A 的最小日期,它必须是两个单独的实例。
我尝试过的是类似于下面两行的内容,但是这两行都没有准确捕获上面提到的 ID #1 类型 B 中断类型 A …
考虑一个简单的 group by 查询:
select foo, count(*)
from mytable where bar=10
group by foo
Run Code Online (Sandbox Code Playgroud)
这将返回一个具有以下形式的表:
foo | count
----+------
a | 100
b | 200
c | 300
Run Code Online (Sandbox Code Playgroud)
我的目标是使用单个查询获得下表:
foo | count | ratio
----+-------+-------
a | 200 | 18.2
b | 300 | 27.3
c | 600 | 54.5
Run Code Online (Sandbox Code Playgroud)
在实践中,我有更多可能的值,foo
因此这里的答案没有帮助。此外,并不是将比率四舍五入并乘以 100。
这样做的最佳做法是什么?
在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) 我有下表:
+--------+-------+------+--+
| Object | Event | Time | |
+--------+-------+------+--+
| Obj1 | A | 1 | |
| Obj1 | B | 3 | |
| Obj2 | A | 7 | |
| Obj2 | B | 4 | |
+--------+-------+------+--+
Run Code Online (Sandbox Code Playgroud)
我的目标是获取所有同时发生事件A和B的对象,条件是A首先发生(及时)。到目前为止,我只想出查询来查找所有具有A和B的对象,而没有包括时间:
SELECT DISTINCT Object
FROM
(SELECT *
FROM
(SELECT *
FROM table
INNER JOIN
(SELECT Object Obj
FROM table
WHERE event LIKE '%A%' AS temp_table) ON table.Object = temp_table.Obj) AS temp_final
WHERE event LIKE '%B%') AS …
Run Code Online (Sandbox Code Playgroud) 我有一个 Spark 集群和一个 vertica 数据库。我用
spark.read.jdbc( # etc
Run Code Online (Sandbox Code Playgroud)
将 Spark 数据帧加载到集群中。当我执行某个 groupby 功能时
df2 = df.groupby('factor').agg(F.stddev('sum(PnL)'))
df2.show()
Run Code Online (Sandbox Code Playgroud)
然后我得到一个 vertica 语法异常
Driver stacktrace:
at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1454)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1442)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1441)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
at org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1441)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:811)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:811)
at scala.Option.foreach(Option.scala:257)
at org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:811)
at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:1667)
at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1622)
at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1611)
at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48)
at org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:632)
at org.apache.spark.SparkContext.runJob(SparkContext.scala:1890)
at org.apache.spark.SparkContext.runJob(SparkContext.scala:1903)
at org.apache.spark.SparkContext.runJob(SparkContext.scala:1916)
at org.apache.spark.sql.execution.SparkPlan.executeTake(SparkPlan.scala:347)
at org.apache.spark.sql.execution.CollectLimitExec.executeCollect(limit.scala:39)
at org.apache.spark.sql.Dataset$$anonfun$org$apache$spark$sql$Dataset$$execute$1$1.apply(Dataset.scala:2193)
at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:57)
at org.apache.spark.sql.Dataset.withNewExecutionId(Dataset.scala:2546)
at org.apache.spark.sql.Dataset.org$apache$spark$sql$Dataset$$execute$1(Dataset.scala:2192)
at org.apache.spark.sql.Dataset.org$apache$spark$sql$Dataset$$collect(Dataset.scala:2199)
at org.apache.spark.sql.Dataset$$anonfun$head$1.apply(Dataset.scala:1935)
at org.apache.spark.sql.Dataset$$anonfun$head$1.apply(Dataset.scala:1934)
at org.apache.spark.sql.Dataset.withTypedCallback(Dataset.scala:2576)
at org.apache.spark.sql.Dataset.head(Dataset.scala:1934) …
Run Code Online (Sandbox Code Playgroud) vertica ×10
sql ×8
vsql ×2
aggregate ×1
apache-spark ×1
greenplum ×1
group-by ×1
hadoop ×1
infobright ×1
max ×1
min ×1
partition ×1
postgresql ×1
pyspark ×1
pyspark-sql ×1
sqlclient ×1