在 Aurora MySQL 中创建并行查询数据库集群 - Amazon Aurora

在 Aurora MySQL 中创建并行查询数据库集群

要创建具有并行查询的 Aurora MySQL 集群,在其中添加新实例或执行其他管理操作,您可以使用与其他 Aurora MySQL 集群相同的AWS Management Console和 AWS CLI 方法。您可以创建新的集群以使用并行查询。也可以通过从 MySQL 兼容的 Aurora 数据库集群的快照还原,创建一个数据库集群以使用并行查询。如果不熟悉创建新的 Aurora MySQL 集群的过程,您可以在创建 Amazon Aurora 数据库集群中找到背景信息和先决条件。

在选择 Aurora MySQL 引擎版本时,建议您选择可用的最新版本。目前,Aurora MySQL 2.09 及更高版本支持并行查询。如果使用 Aurora MySQL 2.09 及更高版本,则可以更灵活地开启和关闭并行查询,或者将并行查询与现有集群结合使用。

无论是创建新集群还是从快照还原,您都可以使用与其他 Aurora MySQL 集群相同的方法添加新的数据库实例。

可以使用 Amazon RDS 控制台或 AWS CLI 创建并行查询集群。

使用控制台创建并行查询集群

您可以使用控制台创建新的并行查询集群,如下所述。

使用 AWS Management Console 创建并行查询集群
  1. 按照AWS Management Console中的常规 创建 Amazon Aurora 数据库集群过程进行操作。

  2. 选择引擎屏幕上,选择 Aurora MySQL。

    对于引擎版本,选择 Aurora MySQL 2.09 或更高版本。有了这些版本,使用并行查询时的限制最少。这些版本还具有最大的灵活性,可以随时打开或关闭并行查询。

    如果对此集群使用最新 Aurora MySQL 版本不切实际,请选择显示支持并行查询功能的版本。这样做会筛选版本菜单,以仅显示与并行查询兼容的特定 Aurora MySQL 版本。

  3. 对于其他配置,请选择为数据库集群参数组创建的参数组。Aurora MySQL 2.09 和更高版本需要使用这样的自定义参数组。在数据库集群参数组中,指定参数设置 aurora_parallel_query=ONaurora_disable_hash_join=OFF。这样做会为集群开启并行查询,并开启与并行查询结合使用的哈希联接优化。

验证新集群是否可以使用并行查询
  1. 使用上述方法创建集群。

  2. (对于 Aurora MySQL 版本 2 或 3)检查 aurora_parallel_query 配置设置是否为 true。

    mysql> select @@aurora_parallel_query; +-------------------------+ | @@aurora_parallel_query | +-------------------------+ | 1 | +-------------------------+
  3. (对于 Aurora MySQL 版本 2)检查 aurora_disable_hash_join 设置是否为 false。

    mysql> select @@aurora_disable_hash_join; +----------------------------+ | @@aurora_disable_hash_join | +----------------------------+ | 0 | +----------------------------+
  4. 对于一些大型表和数据密集型查询,请检查查询计划以确认某些查询正在使用并行查询优化。为此,请按照验证哪些语句使用 Aurora MySQL 的并行查询中的过程操作。

使用 CLI 创建并行查询集群

您可以使用 CLI 创建新的并行查询集群,如下所述。

使用 AWS CLI 创建并行查询集群
  1. (可选)检查哪些 Aurora MySQL 版本与并行查询集群兼容。为此,请使用 describe-db-engine-versions 命令并检查 SupportsParallelQuery 字段的值。有关示例,请参阅检查并行查询的 Aurora MySQL 版本兼容性

  2. (可选)使用设置 aurora_parallel_query=ONaurora_disable_hash_join=OFF 创建自定义数据库集群参数组。使用如下命令。

    aws rds create-db-cluster-parameter-group --db-parameter-group-family aurora-mysql5.7 --db-cluster-parameter-group-name pq-enabled-57-compatible aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name pq-enabled-57-compatible \ --parameters ParameterName=aurora_parallel_query,ParameterValue=ON,ApplyMethod=pending-reboot aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name pq-enabled-57-compatible \ --parameters ParameterName=aurora_disable_hash_join,ParameterValue=OFF,ApplyMethod=pending-reboot

    如果执行此步骤,请在后续 --db-cluster-parameter-group-name my_cluster_parameter_group 语句中指定 create-db-cluster 选项。替换您自己的参数组的名称。如果省略此步骤,则创建参数组并稍后将其与集群关联,如 在 Aurora MySQL 中开启和关闭并行查询中所述。

  3. 按照AWS CLI中的常规 创建 Amazon Aurora 数据库集群过程进行操作。

  4. 指定以下选项集:

    • 对于 --engine 选项,请使用 aurora-mysql。这些值生成的并行查询集群与 MySQL 5.7 或 8.0 兼容。

    • 对于 --db-cluster-parameter-group-name 选项,请指定您创建并指定参数值 aurora_parallel_query=ON 的数据库集群参数组的名称。如果省略此选项,则可以使用默认参数组创建集群,然后对其进行修改以使用此类自定义参数组。

    • 对于 --engine-version 选项,请使用与并行查询兼容的 Aurora MySQL 版本。如有必要,请使用 在 Aurora MySQL 中优化并行查询中的过程获取版本列表。至少使用版本 2.09.0。这些版本和所有更高版本都包含对并行查询的实质性增强。

      以下代码示例显示了操作方法。用您自己的值替换每个环境变量,如 $CLUSTER_ID。此示例还指定了生成主用户密码并在 Secrets Manager 中对其进行管理的 --manage-master-user-password 选项。有关更多信息,请参阅 使用 Amazon Aurora 和 AWS Secrets Manager 管理密码。或者,您可以使用 --master-password 选项自行指定和管理密码。

      aws rds create-db-cluster --db-cluster-identifier $CLUSTER_ID \ --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.11.1 \ --master-username $MASTER_USER_ID --manage-master-user-password \ --db-cluster-parameter-group-name $CUSTOM_CLUSTER_PARAM_GROUP aws rds create-db-instance --db-instance-identifier ${INSTANCE_ID}-1 \ --engine same_value_as_in_create_cluster_command \ --db-cluster-identifier $CLUSTER_ID --db-instance-class $INSTANCE_CLASS
  5. 验证您创建或还原的集群是否具有可用的并行查询功能。

    检查 aurora_parallel_query 配置设置是否存在。如果此设置的值为 1,则可以使用并行查询。如果此设置的值为 0,请先将其设置为 1,然后才能使用并行查询。无论使用哪种方式,集群都能够执行并行查询。

    mysql> select @@aurora_parallel_query; +------------------------+ | @@aurora_parallel_query| +------------------------+ | 1 | +------------------------+
使用 AWS CLI将快照还原到并行查询集群
  1. 检查哪些 Aurora MySQL 版本与并行查询集群兼容。为此,请使用 describe-db-engine-versions 命令并检查 SupportsParallelQuery 字段的值。有关示例,请参阅检查并行查询的 Aurora MySQL 版本兼容性。确定要用于还原的集群的版本。对于与 MySQL 5.7 兼容的集群,选择 Aurora MySQL 2.09.0 或更高版本。

  2. 找到与 Aurora MySQL 兼容的集群快照。

  3. 按照AWS CLI中的常规 从数据库集群快照还原过程进行操作。

    aws rds restore-db-cluster-from-snapshot \ --db-cluster-identifier mynewdbcluster \ --snapshot-identifier mydbclustersnapshot \ --engine aurora-mysql
  4. 验证您创建或还原的集群是否具有可用的并行查询功能。使用与 使用 CLI 创建并行查询集群中相同的验证过程。