

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 步驟 2：設定匯出 Amazon Keyspaces 資料表 AWS Glue 的任務
<a name="S3-tutorial-step2"></a>

在教學課程的第二個步驟中，您可以使用 [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 AWS Glue 的任務，然後將指定的資料表匯出至上一個步驟中建立的 Amazon S3 儲存貯體。使用指令碼可讓您從 Amazon Keyspaces 匯出資料，而無需設定 Apache Spark 叢集。

**建立 AWS Glue 任務，將 Amazon Keyspaces 資料表匯出至 Amazon S3 儲存貯體。**
+ 在此步驟中，您會執行位於 `export-to-s3/`目錄中的 `setup-export.sh` shell 指令碼，以用來 CloudFormation 建立和設定 AWS Glue 匯出任務。指令碼會採用下列參數。

  ```
  PARENT_STACK_NAME, EXPORT_STACK_NAME, KEYSPACE_NAME, TABLE_NAME, S3_URI, FORMAT
  ```
  + `PARENT_STACK_NAME` – 在上一個步驟中建立的 CloudFormation 堆疊名稱。
  + `EXPORT_STACK_NAME` – 建立 AWS Glue 匯出任務的 CloudFormation 堆疊名稱。
  + `KEYSPACE_NAME` 和 `TABLE_NAME` – 要匯出之金鑰空間和資料表的完整名稱。在本教學課程中，我們使用 `catalog.book_awards`，但您可以將此取代為您自己的完整資料表名稱。
  + `S3URI` – Amazon 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"
      }
  }
  ```

如果 CloudFormation 堆疊程序失敗，您可以在 CloudFormation 主控台中檢閱失敗堆疊的錯誤。您可以在左側選單中選擇 ETL 任務，以在 AWS Glue 主控台中檢閱匯出任務的詳細資訊。 ****

在您確認 AWS Glue 匯出任務的詳細資訊後，請繼續[步驟 3：執行 AWS Glue 任務，將 Amazon Keyspaces 資料表從 匯出至 Amazon S3 儲存貯體 AWS CLI](S3-tutorial-step3.md)執行任務以從 Amazon Keyspaces 資料表匯出資料。