elasticsearch 如何从DynamoDB中提取数据并将其插入Elasticsearch,elasticsearch,logstash,amazon-dynamodb,elasticsearch,Logstash,Amazon Dynamodb" /> elasticsearch 如何从DynamoDB中提取数据并将其插入Elasticsearch,elasticsearch,logstash,amazon-dynamodb,elasticsearch,Logstash,Amazon Dynamodb" />

elasticsearch 如何从DynamoDB中提取数据并将其插入Elasticsearch

elasticsearch 如何从DynamoDB中提取数据并将其插入Elasticsearch,elasticsearch,logstash,amazon-dynamodb,elasticsearch,Logstash,Amazon Dynamodb,我使用的是aws elasticsearch,我想将数据从dynamodb导入elasticsearch,我不想使用river,因为elasticsearch river API已被弃用,有其他选择吗 我将在您的表上启用dynamodb streams,然后编写一个lambda函数,从流中读取数据并将其插入elasticsearch。亚马逊有一个将数据从kinesis流到elasticsearch的系统。修改dynamodb流应该很容易 我让它与Python一起工作 请参阅下面的示例,该示例将L

我使用的是aws elasticsearch,我想将数据从dynamodb导入elasticsearch,我不想使用river,因为elasticsearch river API已被弃用,有其他选择吗

我将在您的表上启用dynamodb streams,然后编写一个lambda函数,从流中读取数据并将其插入elasticsearch。亚马逊有一个将数据从kinesis流到elasticsearch的系统。修改dynamodb流应该很容易

我让它与Python一起工作

请参阅下面的示例,该示例将Lambda函数验证为ES。 然后可以使用ElasticSearch Python库

from __future__ import print_function

import json
import boto3
from elasticsearch import Elasticsearch, RequestsHttpConnection
from requests_aws4auth import AWS4Auth

def lambda_handler(event, context):

    session = boto3.session.Session()
    credentials = session.get_credentials()

    print(credentials.access_key)
    print(credentials.secret_key)
    print(credentials.token)
    print(session.region_name)

    awsauth = AWS4Auth(credentials.access_key,
                       credentials.secret_key,
                       session.region_name, 'es',
                       session_token=credentials.token)

    es = Elasticsearch(
        [ "YOUR ES ENDPOINT" ],
        http_auth=awsauth,
        use_ssl=True,
        verify_certs=True,
        connection_class=RequestsHttpConnection
    )

    print(es.info())

    [...]
您需要为Lambda函数指定适当的角色。我建议阅读这个博客,它没有完全更新,但适合IAM角色

我知道博客中提到的Lambda蓝图仍然可用,但目前还没有


希望这个帮助

你可以从DynamoDB拉到ES。我不想使用logstash output elasticsearch,我需要logstash output DynamoDB,但这个插件不存在。好的,所以你应该更新你的问题,上面写着“从DynamoDB到elasticsearch”,这就是为什么我建议使用logstash dynamodb输入。这不只是导入新创建/更新的条目吗?那些已经在数据库中的呢?