elasticsearch - 将DynamoDB与ElasticSearch同步以获取旧数据

标签 elasticsearch amazon-dynamodb-streams

我正在使用此函数https://github.com/bfansports/dynamodb-to-elasticsearch将我的DynamoDB表与ElasticSearch同步。不幸的是,尽管我选择了“新的和旧的图像-项目的新的和旧的图像,但是它仅处理新添加的数据和更新的数据,而不处理表中以前存在的行。
“管理流”部分。

如何解决?

最佳答案

好的,我最后更新了DynamoDB,并触发了Stream,因此可以完成ElasticSearch和DynamoDB之间的同步。
这是我使用的脚本:

import json
import boto3
import random


def lambda_handler(event, context):

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('image-library')

response = table.scan(
    ProjectionExpression='#k',
    ExpressionAttributeNames={
        '#k' : 'id', #partition key
    }
)

items = response['Items']

random_number = random.randint(0,1000)

for item in items:
    response = table.update_item(
        Key=item,
        UpdateExpression='SET #f = :f',
        ExpressionAttributeNames={
            '#f' :'force_update'
        },
        ExpressionAttributeValues={
            ':f' : random_number
        }

    )

关于elasticsearch - 将DynamoDB与ElasticSearch同步以获取旧数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53611402/

相关文章:

mongodb - 我怎样才能处理一个非常大的数据库而不错过性能?

amazon-s3 - AWS Lambda - 有没有办法在事件发生时将参数传递给 lambda 函数

aws-lambda - AWS Amplify 从使用 api 类别创建的 DynamoDB 表获取流 ARN

elasticsearch - 用Elasticsearch搜索/滚动异步等待

r - R中的弹性包装:按版本> v5排序...不起作用

amazon-web-services - AWS Lambda 意外无限循环后的令人担忧的行为

aws-lambda - 如何将 FilterCriteria 添加到由 AWS Amplify 创建的 DynamoDB Stream CloudFormation 模板?

java - 使用AWS开发工具包v2将DynamoDB转换为Elasticsearch?

symfony - 使用FOSElasticaBundle多次搜索关键字

elasticsearch - Hibernate Elasticsearch搜索类型dfs_query_then_fetch