【发布时间】:2020-07-02 11:06:21
【问题描述】:
我正在使用 AWS Glue 将数据从 DynamoDB 复制到 S3。我已经编写了以下代码以将 DyanmoDB 表复制到同一帐户中的 S3。它工作正常,用 6 亿条记录复制我的表,没有任何问题。大约需要20分钟。
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from datetime import datetime
# inputs
dataset_date = datetime.strftime(datetime.now(), '%Y%m%d')
table_name = "table-name"
read_percentage = "0.5"
output_location = 's3://'+dataset_date
fmt ="json"
# glue setup
sc = SparkContext()
glueContext = GlueContext(sc)
# scan the DDB table
table = glueContext.create_dynamic_frame.from_options("dynamodb",
connection_options={
"dynamodb.input.tableName": table_name,
"dynamodb.throughput.read.percent": read_percentage,
"dynamodb.splits": "100"
}
)
# write to S3
glueContext.write_dynamic_frame.from_options(frame=table,
connection_type="s3",
connection_options={"path": output_location},
format=fmt,
transformation_ctx="datasink"
)
但现在我想使用上述脚本进行跨账户 S3 转储。 DynamoDB 表位于账户 A(prod 账户)中,用于从 DynamoDB 表和 S3 存储桶中读取数据以转储该数据的 Glue 作业位于账户 B(DW 账户)中。我不知道是否可以使用我的脚本,但提供跨账户 Glue 访问权限,以便它可以从账户 A 读取 DynamoDB 表
【问题讨论】:
标签: amazon-web-services amazon-s3 amazon-dynamodb aws-glue