

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 步骤 2：配置导出 Amazon Keyspaces 表的 Amazon Glue 任务
步骤 2：配置作 Amazon Glue 业

在本教程的第二步中，您将使用 [Github](https://github.com/aws-samples/amazon-keyspaces-examples/blob/main/scala/datastax-v4/aws-glue/export-to-s3/setup-export.sh) 上`setup-export.sh`提供的脚本创建和配置使用 SigV4 插件连接到 Amazon Keyspaces 的 Amazon Glue 作业，然后将指定的表导出到您在上一步中创建的 Amazon S3 存储桶。使用该脚本可以让您在不设置 Apache Spark 集群的情况下从 Amazon Keyspaces 导出数据。

**创建 Amazon Glue 任务以将 Amazon Keyspaces 表导出到 Amazon S3 存储桶。**
+ 在此步骤中，您将运行位于`export-to-s3/`目录中的 `setup-export.sh` shell 脚本， Amazon CloudFormation 用于创建和配置 Amazon Glue 导出作业。该脚本采用以下参数。

  ```
  PARENT_STACK_NAME, EXPORT_STACK_NAME, KEYSPACE_NAME, TABLE_NAME, S3_URI, FORMAT
  ```
  + `PARENT_STACK_NAME`— 在上一步中创建的 Amazon CloudFormation 堆栈的名称。
  + `EXPORT_STACK_NAME`— 创建 Amazon Glue 导出任务的 Amazon CloudFormation 堆栈的名称。
  + `KEYSPACE_NAME`an `TABLE_NAME` d — 要导出的密钥空间和表的完全限定名称。在本教程中，我们使用`catalog.book_awards`，但您可以将其替换为自己的完全限定表名。
  + `S3URI`— 亚马逊 S3 存储桶的可选 URI。默认为父堆栈中的 Amazon S3 存储桶。
  + `FORMAT`— 可选的数据格式。默认值为 `parquet`。在本教程中，为了简化数据加载和转换，我们使用默认值。

  例如，您可以使用以下 命令。

  ```
  setup-export.sh cfn-setup cfn-glue catalog book_awards
  ```

  要确认任务已创建，可以使用以下语句。

  ```
  aws glue list-jobs
  ```

  语句的输出应如下所示。

  ```
  {
      "JobNames": [
          "AmazonKeyspacesExportToS3-cfn-setup-cfn-glue"
      ]
  }
  ```

  要查看作业的详细信息，您可以使用以下命令。

  ```
  aws glue get-job --job-name AmazonKeyspacesExportToS3-cfn-setup-cfn-glue
  ```

  命令的输出显示了任务的所有细节。这包括运行作业时可以覆盖的默认参数。

  ```
  {
      "Job": {
          "Name": "AmazonKeyspacesExportToS3-cfn-setup-cfn-glue",
          "JobMode": "SCRIPT",
          "JobRunQueuingEnabled": false,
          "Description": "export to s3",
          "Role": "iam-export-role",
          "CreatedOn": "2025-01-30T15:53:30.765000+00:00",
          "LastModifiedOn": "2025-01-30T15:53:30.765000+00:00",
          "ExecutionProperty": {
              "MaxConcurrentRuns": 1
          },
          "Command": {
              "Name": "glueetl",
              "ScriptLocation": "s3://s3-keyspaces/scripts/cfn-setup-cfn-glue-export.scala",
              "PythonVersion": "3"
          },
          "DefaultArguments": {
              "--write-shuffle-spills-to-s3": "true",
              "--S3_URI": "s3://s3-keyspaces",
              "--TempDir": "s3://s3-keyspaces/shuffle-space/export-sample/",
              "--extra-jars": "s3://s3-keyspaces/jars/spark-cassandra-connector-assembly_2.12-3.1.0.jar,s3://s3-keyspaces/jars/aws-sigv4-auth-cassandra-java-driver-plugin-4.0.9-shaded.jar,s3://s3-keyspaces/jars/spark-extension_2.12-2.8.0-3.4.jar,s3://s3-keyspaces/jars/amazon-keyspaces-helpers-1.0-SNAPSHOT.jar",
              "--class": "GlueApp",
              "--user-jars-first": "true",
              "--enable-metrics": "true",
              "--enable-spark-ui": "true",
              "--KEYSPACE_NAME": "catalog",
              "--spark-event-logs-path": "s3://s3-keyspaces/spark-logs/",
              "--enable-continuous-cloudwatch-log": "true",
              "--write-shuffle-files-to-s3": "true",
              "--FORMAT": "parquet",
              "--TABLE_NAME": "book_awards",
              "--job-language": "scala",
              "--extra-files": "s3://s3-keyspaces/conf/keyspaces-application.conf",
              "--DRIVER_CONF": "keyspaces-application.conf"
          },
          "MaxRetries": 0,
          "AllocatedCapacity": 4,
          "Timeout": 2880,
          "MaxCapacity": 4.0,
          "WorkerType": "G.2X",
          "NumberOfWorkers": 2,
          "GlueVersion": "3.0"
      }
  }
  ```

如果 Amazon CloudFormation 堆栈过程失败，则可以在 Amazon CloudFormation 控制台中查看失败堆栈的错误。通过选择左侧菜单上的 **ETL 作业，可以在 Amazon Glue 控制台中查看导出任务**的详细信息。

确认 Amazon Glue 导出任务的详细信息后，继续运行任务[步骤 3：运行 Amazon Glue 任务将 Amazon Keyspaces 表从中导出到 Amazon S3 存储桶 Amazon CLI](S3-tutorial-step3.md)以从 Amazon Keyspaces 表中导出数据。