elasticsearch 如何从DynamoDB中提取数据并将其插入Elasticsearch
我使用的是aws elasticsearch,我想将数据从dynamodb导入elasticsearch,我不想使用river,因为elasticsearch river API已被弃用,有其他选择吗 我将在您的表上启用dynamodb streams,然后编写一个lambda函数,从流中读取数据并将其插入elasticsearch。亚马逊有一个将数据从kinesis流到elasticsearch的系统。修改dynamodb流应该很容易 我让它与Python一起工作 请参阅下面的示例,该示例将Lambda函数验证为ES。 然后可以使用ElasticSearch Python库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
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输入。这不只是导入新创建/更新的条目吗?那些已经在数据库中的呢?