我在Hibernate + PostgreSQL中使用Spring,并生成如下所示的Q查询:
SELECT A.field1 AS field1_10_,
A.field2 AS field2_10_,
A.field3 AS field3_10_,
...
A.field10 as field10_10_
FROM mytable A
WHERE (A.field1 BETWEEN 1 AND 2)
AND ((cast(A.field1 AS varchar(255))||cast(A.field2 AS varchar(255)
我需要从PostgreSQL表中获得一组经过过滤的行,以及那里的记录总数。以前,我编写了原始SQL查询,所有流程看起来都是这样的(取自另一个答案):
var sql = @"SELECT COUNT(*) FROM books;
SELECT * FROM books ORDER BY bookID OFFSET 1000 ROWS FETCH NEXT 10 ROWS ONLY";
using(var multi = connection.QueryMultiple(sql))
{
var count = multi.Read<int&
我需要对大小为100亿行的三列表t (s,p,o)运行200万次查询。每一列的数据类型为字符串。
只有两种类型的查询:
select s p o from t where s = param
select s p o from t where o = param
如果我将表存储在Postgresql数据库中,则使用Java ThreadPoolExecutor需要6个小时。
你认为Spark能更快地处理查询吗?最好的策略是什么?以下是我的想法:
将表加载到一个dataframe中,并启动对dataframe的查询。
将表加载到parquet数据库中,并对该数据库启动查询