2단계: Amazon Keyspaces 테이블을 내보내는 AWS Glue 작업 구성 - Amazon Keyspaces(Apache Cassandra용)

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

2단계: Amazon Keyspaces 테이블을 내보내는 AWS Glue 작업 구성

자습서의 두 번째 단계에서는 Github에서 setup-export.sh 사용할 수 있는 스크립트를 사용하여 SigV4 플러그인을 사용하여 Amazon Keyspaces에 연결하는 AWS Glue 작업을 생성하고 구성한 다음 이전 단계에서 생성한 Amazon S3 버킷으로 지정된 테이블을 내보냅니다. 스크립트를 사용하면 Apache Spark 클러스터를 설정하지 않고도 Amazon Keyspaces에서 데이터를 내보낼 수 있습니다.

Amazon Keyspaces 테이블을 Amazon S3 버킷으로 내보내는 AWS Glue 작업을 생성합니다.
  • 이 단계에서는 export-to-s3/ 디렉터리에 있는 setup-export.sh쉘 스크립트를 실행하여 AWS Glue 내보내기 작업을 생성하고 구성하는 AWS CloudFormation 데 사용합니다. 스크립트는 다음 파라미터를 사용합니다.

    PARENT_STACK_NAME, EXPORT_STACK_NAME, KEYSPACE_NAME, TABLE_NAME, S3_URI, FORMAT
    • PARENT_STACK_NAME - 이전 단계에서 생성된 AWS CloudFormation 스택의 이름입니다.

    • EXPORT_STACK_NAME - AWS Glue 내보내기 작업을 생성하는 AWS CloudFormation 스택의 이름입니다.

    • KEYSPACE_NAMETABLE_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" } }

AWS CloudFormation 스택 프로세스가 실패하면 AWS CloudFormation 콘솔에서 실패한 스택에 대한 오류를 검토할 수 있습니다. 왼쪽 메뉴에서 ETL 작업을 선택하여 AWS Glue 콘솔에서 내보내기 작업의 세부 정보를 검토할 수 있습니다.

AWS Glue 내보내기 작업의 세부 정보를 확인한 후 작업을 실행3단계: AWS Glue 작업을 실행하여에서 Amazon Keyspaces 테이블을 Amazon S3 버킷으로 내보냅니다. AWS CLI하여 Amazon Keyspaces 테이블에서 데이터를 내보냅니다.