使用TPC-H 进行GreatSQL并行查询测试

这篇具有很好参考价值的文章主要介绍了使用TPC-H 进行GreatSQL并行查询测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

准备工作

数据库版本

GreatSQL-8.0.25-17

生成数据

使用 TPC-H 生成数据

#TPC-H Population Generator (Version 3.0.0)

#生成10G的数据
$ ./dbgen -vf -s 10

修改my.cnf

vim /etc/my.cnf 

#设置IPB为8G
innodb_buffer_pool_size = 8G

#设置并行查询的使用最大内存(此处为8G,根据具体配置设置)
parallel_memory_limit= 8G

#打开并行查询
force_parallel_execute=1

 #设置双1(方便导入数据)
innodb_flush_log_at_trx_commit = 1 
sync_binlog = 1

#关闭binlog
skip-log_bin

datadir    = /data/GreatSQL
socket    = mysql.sock

启动数据库后,可以检查配置是否生效

mysql> show variables like '%double%';
mysql> show variables like 'log_bin';
mysql> show variables like 'sync_binlog';
mysql> show variables like 'innodb_flush_log_at_trx_commit';
mysql> show variables like 'innodb_buffer_pool_size';

并行查询相关参数

mysql> show global variables like '%parall%';
+----------------------------------+----------------+
| force_parallel_execute           | ON             |
| innodb_parallel_dblwr_encrypt    | OFF            |
| innodb_parallel_doublewrite_path | xb_doublewrite |
| innodb_parallel_read_threads     | 4              |
| parallel_cost_threshold          | 1000           |
| parallel_default_dop             | 4              |
| parallel_max_threads             | 64             |
| parallel_memory_limit            | 8589934592     |
| parallel_queue_timeout           | 0              |
| slave_parallel_type              | LOGICAL_CLOCK  |
| slave_parallel_workers           | 2              |
+----------------------------------+----------------+
11 rows in set (0.01 sec)

启动数据库

启动数据库:

$ systemctl start greatsql.service 

文件准备

本次的工作在/data/tpch

可执行程序为dbgen,依赖一个数据分布文件dists.dss。可以将dbgen和dists.dss拷贝到同一目录使用

dss.ddl dss.ri 文件

准备表结构和索引文件 dss.ddldss.ri 到工作目录

$ cd /data/tpch/tpch_2.18.0/dbgen
$ cp dss.ri /data/tpch/
$ cp dss.ddl /data/tpch/

load.sql

修改 load.sql 文件 修改文件的路径

$ cd /data/tpch/
$ cp load.sql loadfix.sql 
$ vim loadfix.sql

导入数据

$ /usr/localGreatSQL-8.0.25-17/bin/mysql -uroot -S /data/GreatSQL/mysql.sock

#创建数据库
mysql> create database tpch;
mysql> use tpch;

#导入表结构
mysql> source /data/tpch/dss.ddl;

#导入数据(文件见附录)
mysql> sh loadfile

#导入索引、外键等
mysql> source /data/tpch/dssfix.ri

注:binlog要关再导入,否则binlog会爆

Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage; increase this mysqld variable and try again

查看导入的表(20G数据)

mysql> select table_name,table_rows 
from information_schema.tables 
where table_name in 
('customer','lineitem','nation','orders','part','partsupp','region','supplier');

+------------+------------+
| TABLE_NAME | TABLE_ROWS |
+------------+------------+
| region     |          5 |
| nation     |         25 |
| part       |    3860136 |
| supplier   |     197853 |
| customer   |    2884322 |
| partsupp   |   17084176 |
| orders     |   29678499 |
| lineitem   |   87786966 |
+------------+------------+
8 rows in set (0.00 sec)

编写并运行测试脚本

#测试脚本见附录
#这里是在tmux中运行,避免因为终端关闭导致测试终止
$ sh auto.sh&

#测试结束后在当前脚本的目录查看生成的日志
$ cat tpch-PQ-******.log

测试运行时,观察相关指标。

mysql> show global status like '%PQ%';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| PQ_memory_refused  | 0     |
| PQ_memory_used     | 0     |
| PQ_threads_refused | 0     |
| PQ_threads_running | 0     |
+--------------------+-------+
4 rows in set (0.00 sec)


mysql> show processlist;
mysql> explain for connection **;

测试结果

开启并行查询(16线程)的执行时间,与不开启并行查询的执行时间如下:

SQL1 SQL3 SQL5 SQL6 SQL10 SQL12 SQL19
PQ16 1m25.645s 1m5.514s 8m56.306s 35.451s 44.564s 59.115s 5.771s
NOPQ 6m1.724s 5m19.083s 37m42.078s 2m16.331s 1m57.998s 2m39.672s 24.907s

注:本文章重点讲测试过程,具体的测试结果就不展开了。

**
**

附录-相关文件

导入脚本

$ cat loadfile
/usr/localGreatSQL-8.0.25-17/bin/mysql -S /data/GreatSQL/mysql.sock -Dtpch -f -e "set session foreign_key_checks=0;load data infile '/data/tpch/data/region.tbl' into table region FIELDS TERMINATED BY '|';" tpch &
/usr/localGreatSQL-8.0.25-17/bin/mysql -S /data/GreatSQL/mysql.sock -Dtpch -f -e "set session foreign_key_checks=0;load data infile '/data/tpch/data/nation.tbl' into table nation FIELDS TERMINATED BY '|';" tpch &
/usr/localGreatSQL-8.0.25-17/bin/mysql -S /data/GreatSQL/mysql.sock -Dtpch-f -e "set session foreign_key_checks=0;load data infile '/data/tpch/data/supplier.tbl' into table supplier FIELDS TERMINATED BY '|';" tpch &
/usr/localGreatSQL-8.0.25-17/bin/mysql -S /data/GreatSQL/mysql.sock -Dtpch -f -e "set session foreign_key_checks=0;load data infile '/data/tpch/data/part.tbl' into table part FIELDS TERMINATED BY '|';" tpch &
/usr/localGreatSQL-8.0.25-17/bin/mysql -S /data/GreatSQL/mysql.sock -Dtpch -f -e "set session foreign_key_checks=0;load data infile '/data/tpch/data/customer.tbl' into table customer FIELDS TERMINATED BY '|';" tpch &
/usr/localGreatSQL-8.0.25-17/bin/mysql -S /data/GreatSQL/mysql.sock -Dtpch -f -e "set session foreign_key_checks=0;load data infile '/data/tpch/data/partsupp.tbl' into table partsupp FIELDS TERMINATED BY '|';" tpch &
/usr/localGreatSQL-8.0.25-17/bin/mysql -S /data/GreatSQL/mysql.sock -Dtpch-f -e "set session foreign_key_checks=0;load data infile '/data/tpch/data/orders.tbl' into table orders FIELDS TERMINATED BY '|';" tpch &
/usr/localGreatSQL-8.0.25-17/bin/mysql -S /data/GreatSQL/mysql.sock -Dtpch-f -e "set session foreign_key_checks=0;load data infile '/data/tpch/data/lineitem.tbl' into table lineitem FIELDS TERMINATED BY '|';" tpch &

测试脚本:

脚本是东拼西凑的,写的不好,希望有大佬能指导一下

$ cat auto.sh 
#include <iostream>TH=$PATH:/usr/local/bin
export PATH
#set -u
#set -x
#set -e
. ~/.bash_profile > /dev/null 2>&1
exec 3>&1 4>&2 1>> tpch-PQ-`date +'%Y%m%d%H%M%S'`.log 2>&1

# 定义要执行的SQL文件存放的目录
SQL_DIR="/data/tpch/SQLs"

# 判断目录是否存在
if [ ! -d "$SQL_DIR" ]; then
    echo "SQL文件目录不存在!"
    exit 1
fi

# 进入SQL文件目录
cd $SQL_DIR


I=1
II=3
while [ $I -le $II ]
do
    # 执行SQL文件
    for file in `ls *.sql`
    do
        echo "正在执行:$file"
        time /usr/localGreatSQL-8.0.25-17/bin/mysql -uroot -S /data/GreatSQL/mysql.sock -Dtpch < $file
        
        echo "SQL:$file,执行完成"
        echo -e
        echo "休息100s"
        sleep 100
        echo -e
    done
    echo "第$I次循环执行完成!"
I=`expr $I + 1`
done
echo "脚本结束"

dss.ddl

-- Sccsid:     @(#)dss.ddl    2.1.8.1
drop database tpch;
create database tpch;
use tpch;
CREATE TABLE NATION  ( N_NATIONKEY  INTEGER NOT NULL,
                            N_NAME       CHAR(25) NOT NULL,
                            N_REGIONKEY  INTEGER NOT NULL,
                            N_COMMENT    VARCHAR(152));

CREATE TABLE REGION  ( R_REGIONKEY  INTEGER NOT NULL,
                            R_NAME       CHAR(25) NOT NULL,
                            R_COMMENT    VARCHAR(152));

CREATE TABLE PART  ( P_PARTKEY     INTEGER NOT NULL,
                          P_NAME        VARCHAR(55) NOT NULL,
                          P_MFGR        CHAR(25) NOT NULL,
                          P_BRAND       CHAR(10) NOT NULL,
                          P_TYPE        VARCHAR(25) NOT NULL,
                          P_SIZE        INTEGER NOT NULL,
                          P_CONTAINER   CHAR(10) NOT NULL,
                          P_RETAILPRICE DECIMAL(15,2) NOT NULL,
                          P_COMMENT     VARCHAR(23) NOT NULL );

CREATE TABLE SUPPLIER ( S_SUPPKEY     INTEGER NOT NULL,
                             S_NAME        CHAR(25) NOT NULL,
                             S_ADDRESS     VARCHAR(40) NOT NULL,
                             S_NATIONKEY   INTEGER NOT NULL,
                             S_PHONE       CHAR(15) NOT NULL,
                             S_ACCTBAL     DECIMAL(15,2) NOT NULL,
                             S_COMMENT     VARCHAR(101) NOT NULL);

CREATE TABLE PARTSUPP ( PS_PARTKEY     INTEGER NOT NULL,
                             PS_SUPPKEY     INTEGER NOT NULL,
                             PS_AVAILQTY    INTEGER NOT NULL,
                             PS_SUPPLYCOST  DECIMAL(15,2)  NOT NULL,
                             PS_COMMENT     VARCHAR(199) NOT NULL );

CREATE TABLE CUSTOMER ( C_CUSTKEY     INTEGER NOT NULL,
                             C_NAME        VARCHAR(25) NOT NULL,
                             C_ADDRESS     VARCHAR(40) NOT NULL,
                             C_NATIONKEY   INTEGER NOT NULL,
                             C_PHONE       CHAR(15) NOT NULL,
                             C_ACCTBAL     DECIMAL(15,2)   NOT NULL,
                             C_MKTSEGMENT  CHAR(10) NOT NULL,
                             C_COMMENT     VARCHAR(117) NOT NULL);

CREATE TABLE ORDERS  ( O_ORDERKEY       INTEGER NOT NULL,
                           O_CUSTKEY        INTEGER NOT NULL,
                           O_ORDERSTATUS    CHAR(1) NOT NULL,
                           O_TOTALPRICE     DECIMAL(15,2) NOT NULL,
                           O_ORDERDATE      DATE NOT NULL,
                           O_ORDERPRIORITY  CHAR(15) NOT NULL,  
                           O_CLERK          CHAR(15) NOT NULL, 
                           O_SHIPPRIORITY   INTEGER NOT NULL,
                           O_COMMENT        VARCHAR(79) NOT NULL);

CREATE TABLE LINEITEM ( L_ORDERKEY    INTEGER NOT NULL,
                             L_PARTKEY     INTEGER NOT NULL,
                             L_SUPPKEY     INTEGER NOT NULL,
                             L_LINENUMBER  INTEGER NOT NULL,
                             L_QUANTITY    DECIMAL(15,2) NOT NULL,
                             L_EXTENDEDPRICE  DECIMAL(15,2) NOT NULL,
                             L_DISCOUNT    DECIMAL(15,2) NOT NULL,
                             L_TAX         DECIMAL(15,2) NOT NULL,
                             L_RETURNFLAG  CHAR(1) NOT NULL,
                             L_LINESTATUS  CHAR(1) NOT NULL,
                             L_SHIPDATE    DATE NOT NULL,
                             L_COMMITDATE  DATE NOT NULL,
                             L_RECEIPTDATE DATE NOT NULL,
                             L_SHIPINSTRUCT CHAR(25) NOT NULL,
                             L_SHIPMODE     CHAR(10) NOT NULL,
                             L_COMMENT      VARCHAR(44) NOT NULL);

dss.ri

-- Sccsid:     @(#)dss.ri    2.1.8.1
-- tpch Benchmark Version 8.0

-- For table REGION
ALTER TABLE tpch.REGION
ADD PRIMARY KEY (R_REGIONKEY);

-- For table NATION
ALTER TABLE tpch.NATION
ADD PRIMARY KEY (N_NATIONKEY);

ALTER TABLE tpch.NATION
ADD FOREIGN KEY NATION_FK1 (N_REGIONKEY) references tpch.REGION(R_REGIONKEY); 

COMMIT WORK;

-- For table PART
ALTER TABLE tpch.PART
ADD PRIMARY KEY (P_PARTKEY);

COMMIT WORK;

-- For table SUPPLIER
ALTER TABLE tpch.SUPPLIER
ADD PRIMARY KEY (S_SUPPKEY);

ALTER TABLE tpch.SUPPLIER
ADD FOREIGN KEY SUPPLIER_FK1 (S_NATIONKEY) references tpch.NATION(N_NATIONKEY);

COMMIT WORK;

-- For table PARTSUPP
ALTER TABLE tpch.PARTSUPP
ADD PRIMARY KEY (PS_PARTKEY,PS_SUPPKEY);

COMMIT WORK;

-- For table CUSTOMER
ALTER TABLE tpch.CUSTOMER
ADD PRIMARY KEY (C_CUSTKEY);

ALTER TABLE tpch.CUSTOMER
ADD FOREIGN KEY CUSTOMER_FK1 (C_NATIONKEY) references tpch.NATION(N_NATIONKEY); 

COMMIT WORK;

-- For table LINEITEM
ALTER TABLE tpch.LINEITEM
ADD PRIMARY KEY (L_ORDERKEY,L_LINENUMBER);

COMMIT WORK;

-- For table ORDERS
ALTER TABLE tpch.ORDERS
ADD PRIMARY KEY (O_ORDERKEY);

COMMIT WORK;

-- For table PARTSUPP
ALTER TABLE tpch.PARTSUPP
ADD FOREIGN KEY PARTSUPP_FK1 (PS_SUPPKEY) references tpch.SUPPLIER(S_SUPPKEY);

COMMIT WORK;

ALTER TABLE tpch.PARTSUPP
ADD FOREIGN KEY PARTSUPP_FK2 (PS_PARTKEY) references tpch.PART(P_PARTKEY);

COMMIT WORK;

-- For table ORDERS
ALTER TABLE tpch.ORDERS
ADD FOREIGN KEY ORDERS_FK1 (O_CUSTKEY) references tpch.CUSTOMER(C_CUSTKEY);

COMMIT WORK;

-- For table LINEITEM
ALTER TABLE tpch.LINEITEM
ADD FOREIGN KEY LINEITEM_FK1 (L_ORDERKEY)  references tpch.ORDERS(O_ORDERKEY);

COMMIT WORK;

ALTER TABLE tpch.LINEITEM
ADD FOREIGN KEY LINEITEM_FK2 (L_PARTKEY,L_SUPPKEY) references 
        tpch.PARTSUPP(PS_PARTKEY,PS_SUPPKEY);

COMMIT WORK;

SQL语句

--SQL1
 select /*+ PQ(16) */
    l_returnflag,
    l_linestatus,
    sum(l_quantity) as sum_qty,
    sum(l_extendedprice) as sum_base_price,
    sum(l_extendedprice * (1 - l_discount)) as sum_disc_price,
    sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge,
    avg(l_quantity) as avg_qty,
    avg(l_extendedprice) as avg_price,
    avg(l_discount) as avg_disc,
    count(*) as count_order
from
    lineitem
where
    l_shipdate <= date '1998-12-01' - interval '88' day
group by
    l_returnflag,
    l_linestatus
order by
    l_returnflag,
    l_linestatus limit 1;

--SQL3
select /*+ PQ(16) */
    l_orderkey,
    sum(l_extendedprice * (1 - l_discount)) as revenue,
    o_orderdate,
    o_shippriority
from
    customer,
    orders,
    lineitem
where
    c_mktsegment = 'MACHINERY'
    and c_custkey = o_custkey
    and l_orderkey = o_orderkey
    and o_orderdate < date '1995-03-01'
    and l_shipdate > date '1995-03-01'
group by
    l_orderkey,
    o_orderdate,
    o_shippriority
order by
    revenue desc,
    o_orderdate limit 10;


--SQL6
select /*+ PQ(16) */
    sum(l_extendedprice * l_discount) as revenue
from
    lineitem
where
    l_shipdate >= date '1993-01-01'
    and l_shipdate < date '1993-01-01' + interval '1' year
    and l_discount between 0.02 - 0.01 and 0.02 + 0.01
    and l_quantity < 24 limit 1;
    



--SQL10
select /*+ PQ(16) */
    c_custkey,
    c_name,
    sum(l_extendedprice * (1 - l_discount)) as revenue,
    c_acctbal,
    n_name,
    c_address,
    c_phone,
    c_comment
from
    customer,
    orders,
    lineitem,
    nation
where
    c_custkey = o_custkey
    and l_orderkey = o_orderkey
    and o_orderdate >= date '1994-05-01'
    and o_orderdate < date '1994-05-01' + interval '3' month
    and l_returnflag = 'R'
    and c_nationkey = n_nationkey
group by
    c_custkey,
    c_name,
    c_acctbal,
    c_phone,
    n_name,
    c_address,
    c_comment
order by
    revenue desc limit 20;





--SQL12
select /*+ PQ(16) */
    l_shipmode,
    sum(case
        when o_orderpriority = '1-URGENT'
            or o_orderpriority = '2-HIGH'
            then 1
        else 0
    end) as high_line_count,
    sum(case
        when o_orderpriority <> '1-URGENT'
            and o_orderpriority <> '2-HIGH'
            then 1
        else 0
    end) as low_line_count
from
    orders,
    lineitem
where
    o_orderkey = l_orderkey
    and l_shipmode in ('TRUCK', 'FOB')
    and l_commitdate < l_receiptdate
    and l_shipdate < l_commitdate
    and l_receiptdate >= date '1996-01-01'
    and l_receiptdate < date '1996-01-01' + interval '1' year
group by
    l_shipmode
order by
    l_shipmode limit 1 ;



--SQL19
select /*+ PQ(16) */
    sum(l_extendedprice* (1 - l_discount)) as revenue
from
    lineitem,
    part
where
    (
        p_partkey = l_partkey
        and p_brand = 'Brand#12'
        and p_container in ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG')
        and l_quantity >= 10 and l_quantity <= 10 + 10
        and p_size between 1 and 5
        and l_shipmode in ('AIR', 'AIR REG')
        and l_shipinstruct = 'DELIVER IN PERSON'
    )
    or
    (
        p_partkey = l_partkey
        and p_brand = 'Brand#22'
        and p_container in ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK')
        and l_quantity >= 15 and l_quantity <= 15 + 10
        and p_size between 1 and 10
        and l_shipmode in ('AIR', 'AIR REG')
        and l_shipinstruct = 'DELIVER IN PERSON'
    )
    or
    (
        p_partkey = l_partkey
        and p_brand = 'Brand#43'
        and p_container in ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG')
        and l_quantity >= 22 and l_quantity <= 22 + 10
        and p_size between 1 and 15
        and l_shipmode in ('AIR', 'AIR REG')
        and l_shipinstruct = 'DELIVER IN PERSON'
    ) limit 1 ;
    

相关问题

参考资料

https://imysql.com/2012/12/21/tpch-for-mysql-manual.html


Enjoy GreatSQL 😃

关于 GreatSQL

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。

相关链接: GreatSQL社区 Gitee GitHub Bilibili

GreatSQL社区:

社区博客有奖征稿详情:https://greatsql.cn/thread-100-1-1.html

使用TPC-H 进行GreatSQL并行查询测试

技术交流群:

微信:扫码添加GreatSQL社区助手微信好友,发送验证信息加群

使用TPC-H 进行GreatSQL并行查询测试文章来源地址https://www.toymoban.com/news/detail-433405.html

到了这里,关于使用TPC-H 进行GreatSQL并行查询测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在Hive/Spark上执行TPC-DS基准测试 (PARQUET格式)

    在上一篇文章:《在Hive/Spark上运行执行TPC-DS基准测试 (ORC和TEXT格式)》中,我们介绍了如何使用 hive-testbench 在Hive/Spark上执行TPC-DS基准测试,同时也指出了该项目不支持parquet格式。 如果我们想要生成parquet格式的测试数据,就需要使用其他工具了。本文选择使用另外一个开源

    2024年02月12日
    浏览(70)
  • 在Hive/Spark上运行执行TPC-DS基准测试 (ORC和TEXT格式)

    《大数据平台架构与原型实现:数据中台建设实战》一书由博主历时三年精心创作,现已通过知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,京东购书链接:https://item.jd.com/12677623.html,扫描

    2024年02月12日
    浏览(56)
  • k8s控制器之job--第九弹 job如何使用扩展进行并行处理

    下面是一个 Job 的模板文件: 与 pod template 不同,此处的 job template 并不是一个 Kubernetes API 对象,而仅仅是 Job 对象的 yaml 文件(其中包含一些占位符)。例子文件中的 $ITEM 对 Kubernetes 并没有任何意义,仅仅是一个占位符,必须在使用时用实际数值替换。 在此例子中,容器唯

    2024年02月10日
    浏览(44)
  • C#中的并行处理、并行查询的方法你用对了吗?

    Parallel.ForEach 是一个用于在集合上并行执行迭代操作的强大工具。它通过有效地利用多核处理器的能力来提高性能。Parallel.ForEach 不仅能够简化并行编程,而且它在执行简单循环时可以提供比传统迭代更好的性能。 下面是一个简单的示例,演示了如何使用 Parallel.ForEach 并行

    2024年02月05日
    浏览(39)
  • PgSQL-并行查询系列-介绍[译]

    PgSQL-并行查询系列-介绍 现代CPU模型拥有大量的CPU核心。多年来,数据库应用程序都是并发向数据库发送查询的。查询处理多个表的行时,若可以使用多核,则可以客观地提升性能。PgSQL 9.6引入了并行查询的新特性,开启并行查询后可以大幅提升性能。 1)若所有CPU核心已经饱

    2024年02月09日
    浏览(41)
  • mysql 指定线程数 并行查询单表

    MySQL是一款开源的关系型数据库管理系统,广泛应用于各种应用场景。在MySQL中,并行查询是一个非常重要的概念,可以加快查询速度。在本文中,我们将介绍如何在MySQL中对一个表进行并行查询。 上述代码创建了一个名为employee的表,该表有id、name、age、title和department五个字

    2024年02月16日
    浏览(35)
  • SpringBoot中进行elasticSearch查询,使用QueryBuilders构建各类条件查询

    BoolQueryBuilder对象使用must方法build,多个and使用多个must BoolQueryBuilder对象使用should方法build,多个or使用多个should使用 本篇文章如有帮助到您,请给「翎野君」点个赞,感谢您的支持。 首发链接:https://www.cnblogs.com/lingyejun/p/17557467.html

    2024年02月16日
    浏览(41)
  • 【Java 进阶篇】使用 SQL 进行排序查询

    在数据库中,我们经常需要对查询的结果进行排序,以便更容易地理解和分析数据。SQL(Structured Query Language)提供了强大的排序功能,允许我们按照指定的列对数据进行升序或降序排序。本文将详细介绍如何使用 SQL 进行排序查询,包括基本的排序语法、多列排序、自定义排

    2024年02月07日
    浏览(48)
  • Elasticsearch 和 Kibana 8.13:简化 kNN 和改进查询并行化

    作者:Gilad Gal, Tyler Perkins, Srikanth Manvi, Aris Papadopoulos, Trevor Blackford 在 8.13 版本中,Elastic 引入了向量搜索的重大增强,并将 Cohere 嵌入集成到其统一 inference API 中。这些更新简化了将大型语言模型(LLM)集成到用户工作流中的过程,并提高了查询效率,使得通过搜索更快、更

    2024年04月14日
    浏览(89)
  • Elasticsearch:使用查询规则(query rules)进行搜索

    在之前的文章 “Elasticsearch 8.10 中引入查询规则 - query rules”,我们详述了如何使用 query rules 来进行搜索。这个交互式笔记本将向你介绍如何使用官方 Elasticsearch Python 客户端来使用查询规则。 你将使用 query rules API 将查询规则存储在 Elasticsearch 中,并使用 rule_query 查询它们。

    2024年02月21日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包