使用子群集提高查询吞吐量

提高查询吞吐量会同时增加 Eon 模式数据库处理的查询数量。当您的工作负载包含多个短期运行的查询时,您通常会担心数据库的吞吐量。它们通常被称为“仪表板查询”。该术语描述了当大量用户打开基于 Web 的仪表板页面以监控某种状态时您看到的工作负载类型。这些仪表板往往会频繁更新,使用较简单的短期运行的查询,而不是分析量繁重的长期运行查询。

提高数据库吞吐量的最佳方法是向数据库添加新的子群集或启动任何停止的子群集。然后使用连接负载均衡策略在这些子群集之间分配客户端连接。子群集独立处理查询。通过添加更多子群集,您可以提高数据库的并行度。

为获得最佳性能,应使子群集中的节点数与数据库中的分片数相同。如果您选择的节点数少于分片数,请将节点数设为分片数的偶数除数。当分片数可以被节点数整除时,数据库中的数据就会在子群集中的节点之间平均分配。

添加子群集的最简单方法是使用 MC:

  1. 在 MC 主页中,单击要将子群集添加到的数据库。

  2. 单击管理 (Manage)

  3. 单击添加子群集 (Add Subcluster)

  4. 按照向导中的步骤添加子群集。通常,您需要填写的唯一项目是子群集名称和要添加到其中的实例数。

在吞吐量子群集之间分配客户端

要从添加的子群集中获益,您必须让执行短期查询的客户端连接到子群集包含的节点。查询仅在包含启动程序节点(客户端连接到的节点)的子群集上运行。使用连接负载均衡策略将连接分布在您创建的所有子群集中,以提高查询吞吐量。有关详细信息,请参阅连接负载均衡策略

以下示例创建了一个负载均衡策略,该策略将客户端连接分布在两个名为 query_pool_a 和 query_pool_b 的三节点子群集中。此示例:

  • 在两个子群集中的六个节点上创建网络地址。

  • 从两个子群集中的所有节点创建一个负载均衡组。

  • 创建路由规则以将所有传入连接重定向到两个子群集。

=> CREATE NETWORK ADDRESS node04 ON v_verticadb_node0004 WITH '203.0.113.1';
CREATE NETWORK ADDRESS
=> CREATE NETWORK ADDRESS node05 ON v_verticadb_node0005 WITH '203.0.113.2';
CREATE NETWORK ADDRESS
=> CREATE NETWORK ADDRESS node06 ON v_verticadb_node0006 WITH '203.0.113.3';
CREATE NETWORK ADDRESS
=> CREATE NETWORK ADDRESS node07 ON v_verticadb_node0007 WITH '203.0.113.4';
CREATE NETWORK ADDRESS
=> CREATE NETWORK ADDRESS node08 ON v_verticadb_node0008 WITH '203.0.113.5';
CREATE NETWORK ADDRESS
=> CREATE NETWORK ADDRESS node09 ON v_verticadb_node0009 WITH '203.0.113.6';
CREATE NETWORK ADDRESS

=> CREATE LOAD BALANCE GROUP query_subclusters WITH SUBCLUSTER query_pool_a,
   query_pool_b FILTER '0.0.0.0/0';
CREATE LOAD BALANCE GROUP
=> CREATE ROUTING RULE query_clients ROUTE '0.0.0.0/0' TO query_subclusters;
CREATE ROUTING RULE

创建策略后,任何选择负载均衡的客户端都将重定向到两个子群集中的节点之一。例如,当您使用带有 -C 标志的 vsql 连接到群集中的节点 1(IP 地址为 203.0.113.1)时,您会看到类似如下的输出:

$ vsql -h 203.0.113.1 -U dbadmin -w mypassword -C
Welcome to vsql, the Vertica Analytic Database interactive terminal.

Type:  \h or \? for help with vsql commands
       \g or terminate with semicolon to execute query
       \q to quit

SSL connection (cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, protocol: TLSv1.2)

INFO: Connected using a load-balanced connection.
INFO: Connected to 203.0.113.7 at port 5433.
=>

连接负载均衡策略考虑了在选择节点来处理客户端连接时停止的节点。如果您在低需求期间关闭一个或多个子群集以节省资金,那么只要某些节点仍处于运行状态,您就无需调整负载均衡策略。