AWS Glue并不直接支持轮询文档数据库记录并将其写入存储桶文件的能力。不过,你可以使用AWS Glue结合其他服务来实现这个功能。以下是一个解决方案的代码示例:
import boto3
import time
# 创建DynamoDB客户端
dynamodb = boto3.client('dynamodb')
# 创建S3客户端
s3 = boto3.client('s3')
# 定义DynamoDB表名
table_name = 'your-dynamodb-table-name'
# 定义S3存储桶名称和文件名称
bucket_name = 'your-s3-bucket-name'
file_name = 'your-file-name'
def poll_dynamodb_and_write_to_s3():
# 循环执行直到满足退出条件
while True:
# 执行DynamoDB查询操作
response = dynamodb.scan(
TableName=table_name
)
# 获取查询结果
items = response['Items']
# 如果查询结果不为空,则写入S3文件
if items:
# 将查询结果写入S3文件
s3.put_object(
Body=str(items),
Bucket=bucket_name,
Key=file_name
)
# 退出循环
break
# 休眠一段时间后再次执行查询
time.sleep(5)
# 调用函数开始轮询并写入S3文件
poll_dynamodb_and_write_to_s3()
上述示例代码使用Python编写。它通过AWS SDK创建DynamoDB和S3客户端,并在循环中执行DynamoDB查询操作。如果查询结果不为空,则将其写入指定的S3存储桶文件。
你可以将上述代码部署为AWS Lambda函数,并使用AWS Glue的触发器来定期触发Lambda函数执行。这样,你就可以实现轮询文档数据库记录并将其写入存储桶文件的功能。