

# 在 Aurora MySQL 中创建并行查询数据库集群
<a name="aurora-mysql-parallel-query-creating-cluster"></a>

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

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

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

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

**Contents**
+ [使用控制台创建并行查询集群](#aurora-mysql-parallel-query-creating-cluster-console)
+ [使用 CLI 创建并行查询集群](#aurora-mysql-parallel-query-creating-cluster-cli)

## 使用控制台创建并行查询集群
<a name="aurora-mysql-parallel-query-creating-cluster-console"></a>

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

**使用 Amazon Web Services 管理控制台 创建并行查询集群**

1.  按照Amazon Web Services 管理控制台中的常规 [创建 Amazon Aurora 数据库集群](Aurora.CreateInstance.md)过程进行操作。

1. 对于**引擎类型**，选择“Aurora MySQL”。

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

**验证新集群是否可以使用并行查询**

1. 使用上述方法创建集群。

1. （对于 Aurora MySQL 版本 2 或 3）检查 `aurora_parallel_query` 配置设置是否为 true。

   ```
   mysql> select @@aurora_parallel_query;
   +-------------------------+
   | @@aurora_parallel_query |
   +-------------------------+
   |                       1 |
   +-------------------------+
   ```

1. （对于 Aurora MySQL 版本 2）检查 `aurora_disable_hash_join` 设置是否为 false。

   ```
   mysql> select @@aurora_disable_hash_join;
   +----------------------------+
   | @@aurora_disable_hash_join |
   +----------------------------+
   |                          0 |
   +----------------------------+
   ```

1.  对于一些大型表和数据密集型查询，请检查查询计划以确认某些查询正在使用并行查询优化。为此，请按照[验证哪些语句使用 Aurora MySQL 的并行查询](aurora-mysql-parallel-query-verifying.md)中的过程操作。

## 使用 CLI 创建并行查询集群
<a name="aurora-mysql-parallel-query-creating-cluster-cli"></a>

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

**使用 Amazon CLI 创建并行查询集群**

1.  （可选）检查哪些 Aurora MySQL 版本与并行查询集群兼容。为此，请使用 `describe-db-engine-versions` 命令并检查 `SupportsParallelQuery` 字段的值。有关示例，请参阅[检查并行查询的 Aurora MySQL 版本兼容性](aurora-mysql-parallel-query-optimizing.md#aurora-mysql-parallel-query-checking-compatibility)。

1.  （可选）使用设置 `aurora_parallel_query=ON` 和 `aurora_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 中开启和关闭并行查询](aurora-mysql-parallel-query-enabling.md)中所述。

1.  按照Amazon CLI中的常规 [创建 Amazon Aurora 数据库集群](Aurora.CreateInstance.md)过程进行操作。

1. 指定以下选项集：
   + 对于 `--engine` 选项，请使用 `aurora-mysql`。这些值生成的并行查询集群与 MySQL 5.7 或 8.0 兼容。
   +  对于 `--db-cluster-parameter-group-name` 选项，请指定您创建并指定参数值 `aurora_parallel_query=ON` 的数据库集群参数组的名称。如果省略此选项，则可以使用默认参数组创建集群，然后对其进行修改以使用此类自定义参数组。
   + 对于 `--engine-version` 选项，请使用与并行查询兼容的 Aurora MySQL 版本。如有必要，请使用 [在 Aurora MySQL 中优化并行查询规划并行查询集群](aurora-mysql-parallel-query-optimizing.md#aurora-mysql-parallel-query-planning)中的过程获取版本列表。

     以下代码示例显示了操作方法。用您自己的值替换每个环境变量，如 *\$1CLUSTER\$1ID*。此示例还指定了生成主用户密码并在 Secrets Manager 中对其进行管理的 `--manage-master-user-password` 选项。有关更多信息，请参阅 [使用 Amazon Aurora 和 Amazon Secrets Manager 管理密码](rds-secrets-manager.md)。或者，您可以使用 `--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
     ```

1. 验证您创建或还原的集群是否具有可用的并行查询功能。

   检查 `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 版本兼容性](aurora-mysql-parallel-query-optimizing.md#aurora-mysql-parallel-query-checking-compatibility)。确定要用于还原的集群的版本。

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

1. 按照Amazon CLI中的常规 [从数据库集群快照还原](aurora-restore-snapshot.md)过程进行操作。

   ```
   aws rds restore-db-cluster-from-snapshot \
     --db-cluster-identifier mynewdbcluster \
     --snapshot-identifier mydbclustersnapshot \
     --engine aurora-mysql
   ```

1.  验证您创建或还原的集群是否具有可用的并行查询功能。使用与 [使用 CLI 创建并行查询集群](#aurora-mysql-parallel-query-creating-cluster-cli)中相同的验证过程。