在 Aurora MySQL 中创建并行查询数据库集群 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

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

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

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

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

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

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

  2. 对于引擎类型,选择“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 创建新的并行查询集群,如下所述。

使用 Amazon 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-mysql8.0 --db-cluster-parameter-group-name pq-enabled-80-compatible aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name pq-enabled-80-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-80-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. 按照Amazon 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 中优化并行查询中的过程获取版本列表。

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

      aws rds create-db-cluster --db-cluster-identifier $CLUSTER_ID \ --engine aurora-mysql --engine-version 8.0.mysql_aurora.3.04.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 | +------------------------+
使用 Amazon CLI将快照还原到并行查询集群
  1. 检查哪些 Aurora MySQL 版本与并行查询集群兼容。为此,请使用 describe-db-engine-versions 命令并检查 SupportsParallelQuery 字段的值。有关示例,请参阅检查并行查询的 Aurora MySQL 版本兼容性。确定要用于还原的集群的版本。

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

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

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