首页 > 解决方案 > 在 Lambda 而不是 EC2 上为 AWS Glue 使用 ETL

问题描述

我有一个工作流程,我需要使用 ETL 函数才能读取 AWS Athena 中的 json 文件(存储在 S3 中),但是,由于 JSON 文件包含嵌套数组,Athena 拒绝继续查询。我知道我们可以在 EC2 机器上使用 Zeppelin 来运行 ETL,但我不想运行 EC2 机器,想知道是否可以使用 Lambda 代替?有没有人试过这个?

我正在使用的嵌套 json:

{
  "version": "0.1.0",
  "generated": "Wed, 1 May 2021 02:11:23",
  "site": [
    {
      "name": "Alaska",
      "host": "example.com",
      "port": "443",
      "ssl": "true",
      "details": [
        {
          "name": "alaska",
          "record": "0000100",
          "type": "example",
          "count": 11
          "description": [
            {
              "meta": "meta",
              "method": "GET",
              "key": "abc"
            },
           ]
        }
    }
  ]
}

例如,我需要的查询:如何查询所有类型及其计数?

这是我尝试查询时的错误

您的查询有以下错误:HIVE_PARTITION_SCHEMA_MISMATCH:表和分区架构不匹配。类型不兼容,不能强制。表 'sampledb.codebuildprojectname' 中的列 'site' 声明为类型 array<struct<...

标签: amazon-web-servicesamazon-ec2aws-glueamazon-athena

解决方案


推荐阅读