【问题标题】:already stored zipped S3 data to ElasticSearch Aws已将压缩 S3 数据存储到 ElasticSearch Aws
【发布时间】:2020-02-23 08:37:36
【问题描述】:

我一直在研究如何将压缩的 S3 数据移动到 Elasticsearch。在 Aws 网站上有信息,您可以在其中创建解压缩文件并重新上传然后将其移动到 ES 的 lambda。现在,由于我没有太大的数据集,我正在将数据下载到本地计算机并以正确的格式将其发送到 ElasticSearch。这两种方法似乎效率低下,我想知道是否有办法解压缩文件,然后将其移动到 Elasticsearch,无需下载或重新上传数据。

现在这是我的代码:

s3 = boto3.resource('s3')
s3.Bucket(bucket).download_file(key, 'download_path')
ip_pattern = re.compile('(\d+\.\d+\.\d+\.\d+)')
time_pattern = re.compile('\[(\d+\/\w\w\w\/\d\d\d\d:\d\d:\d\d:\d\d\s\+\d\d\d\d)\]')
message_pattern = re.compile('\"(.+)\"')

with gzip.open('download_path') as files:
    data = ""

    document = {}
    for line in files:
        line = line.decode("utf-8") # decode byte to str

        ip = ip_pattern.search(line).group(0)
        timestamp = time_pattern.search(line).group(0)
        message = message_pattern.search(line).group(0)

        document = { "ip": ip, "timestamp": timestamp, "message": message }

如果没有更好的方法我会使用上面的代码。

【问题讨论】:

  • elasticsearch 实例托管在哪里 - 也在 AWS 上?我假设 lambda 无需下载和重新上传就可以工作,不是吗,因为它将在同一个 AWS 区域内运行?为什么你认为这是低效的?或者,如果您不想使用 lambda,您可以创建一个临时 EC2 实例并在那里运行您的脚本。
  • 是的,ES 托管在 AWS 上。 lambda 在有事件时工作,所以我找不到使用 lambda 移动以前存储的文件的方法,只有新来的数据。 1.我认为重新上传然后移动到es效率低 2.下载所有我要删除的文件似乎效率低下。
  • 您可以从 AWS 控制台触发 lambda 以立即运行。我认为你必须给他们假数据,但你可以发布一个“hello world”JSON 样本。好的,但我是说如果您使用 lambda 或从 EC2 实例运行脚本,那么您将不会从 AWS 区域下载数据或重新上传数据。

标签: amazon-web-services amazon-s3 amazon-elasticsearch


【解决方案1】:

在 Aws 网站上有可以创建 lambda 的信息 解压缩文件并重新上传,然后将其移动到 ES。

除非出于任何其他目的需要,否则您无需将分解后的数据重新上传回 S3

从 zip 中提取的文件中的数据的解压缩和索引无法在最大 lambda 执行时间内发送到 elasticcache。

我相信提取它们并推送到单独的 S3 存储桶的原因可能是扫描 lamda 的一次执行以使其成为逻辑执行单元,并且适合 lambda 最大可用执行时间。

Unzip zip files from S3

【讨论】:

  • 我已经阅读了 AWS 网站上的资源,但它似乎适用于新传入的数据而不是以前添加的数据。
  • @makewhite 您可以使用任何 sdk 在 lambda 中读取 s3 文件。有什么你指的吗?
  • 我找不到任何关于现有数据的资源,但这里是用于流数据的。docs.aws.amazon.com/elasticsearch-service/latest/developerguide/…
  • 我添加了一个带有代码的链接,用于从 S3 存储桶中解压缩数据,您可以从您提到的亚马逊链接中获取代码,以便在 elasticsearch 中推送数据。它需要一些编码,不要将所有解决方案放在一个地方
猜你喜欢
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 2020-11-09
  • 2022-09-23
  • 2011-05-09
  • 2019-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多