繁体   English   中英

使用 Kinesis Firehose 将 1MM JSON 记录加载到 AWS Redshift 的最佳方法?

[英]Best way to load 1MM JSON records into AWS Redshift with Kinesis Firehose?

我有一堆 JSON 记录,我想通过 Kinesis Firehose 从 S3 添加到 Amazon Redshift 实例。 它有数百个文件,无论是提供还是获取,每个文件都有大约 1,000 条记录,每个文件看起来像下面的示例。 出于我的目的,我不关心info条目,至少现在是这样。 我有一个可用的 Kinesis Firehose 服务,它可以使用示例股票代码数据更新我的 Redshift 数据库,所以这部分没问题。 我的问题是(希望这实际上不应该分成两个不同的帖子):

  1. 这在很大程度上是一个学习练习,所以如果它对我正在尝试做的事情来说太过分了,那没关系。 如果有原因它实际上是一个坏主意,请告诉我。
  2. 如果我只想忽略信息字段,我是否必须使用 Lambda 来剥离它,或者有没有办法做到这一点? 如果是这样,是否有任何技巧与编写脚本以从常规文本文件进行处理不同? 当我输入这个时,我意识到我可能只是将info放在数据库中并且永远不会触摸它,但如果有理由这样做,或者比这更清洁的方式,我会很高兴听到它。
  3. 当我有具有一组features的单个manufacturer ,并且每个manufacturer可能有几十个features时,为features制作单独的数据库表是否有意义,或者我是从 Python dict/Perl hash 的角度来看它是否有意义?当我需要稍后将它们重新连接在一起时,SQL DB 没有意义吗?

样本:

{
    "info": {
        "generated_on": "2022-08-09  19:25:34",
        "version": "v1"
    },
    "manufacturer": [
        {
            "name": "Audi",
            "id":   1,
            "num_features": 2,
            "features": [
                {
                        "name": "seat heaters",
                        "standard": "N",
                        "cost": 100
                },
                {
                        "name": "A/C",
                        "standard": "Y",
                        "cost": 0
                }
            ]
        },
        {
            "name": "BMW",
            "id": 2,
            "num_features": 3,
            "features": [
                {
                        "name": "seat heaters",
                        "standard": "Y",
                        "cost": 0
                },
                {
                        "name": "backup camera",
                        "standard": "N",
                        "cost": 500
                },
                {
                        "name": "A/C",
                        "standard": "Y",
                        "cost": 0
                }
            ]
        }
    ]
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM