AWS Glue の Spark ジョブで Amazon DynamoDB のテーブルから別のテーブルにデータをコピーしてみた。
手順
DynamoDB のテーブルを作成する
- src_table
- プライマリキー: key
- 3件ほどItemを追加する
- dst_table
- プライマリキー: key
- テーブルは空のままにしておく
Glue Spark ジョブを作成する
- Glue Spark ジョブを作成、以下以外はデフォルト。
- ジョブ名: ddb2ddb_job
- Type: Spark
- Spark 2.4, Python 3 (Glue Version 2.0)
import sys from pyspark.context import SparkContext from awsglue.context import GlueContext from awsglue.job import Job from awsglue.utils import getResolvedOptions args = getResolvedOptions(sys.argv, ["JOB_NAME"]) glue_context= GlueContext(SparkContext.getOrCreate()) job = Job(glue_context) job.init(args["JOB_NAME"], args) dyf = glue_context.create_dynamic_frame.from_options( connection_type="dynamodb", connection_options={ "dynamodb.input.tableName": "src_table", "dynamodb.throughput.read.percent": "1.0", "dynamodb.splits": "100" } ) print(dyf.getNumPartitions()) glue_context.write_dynamic_frame_from_options( frame=dyf, connection_type="dynamodb", connection_options={ "dynamodb.output.tableName": "dst_table", "dynamodb.throughput.write.percent": "1.0" } ) job.commit()