AWS Glue — Обход Json-файла и вставка в Redshift

#json #amazon-web-services #aws-glue

Вопрос:

Привет, я пытаюсь использовать Aws Glue для загрузки файла S3 в Redshift. Когда я пытаюсь переползти файл Json из моего хранилища S3 в таблицу, это, похоже, не работает: в результате получается таблица с одним столбцом массива, как показано на рисунке ниже. Я уже пробовал использовать классификатор Json с путем » $ [ * ]», но это, похоже, тоже не работает. Есть какие-нибудь идеи?

Структура файла Json выглядит следующим образом:

 [
  {
    "firstname": "andrew",
    "lastname": "johnson",
    "subject": "Mathematics",
    "mark": 49
  },
  {
    "firstname": "mary",
    "lastname": "james",
    "subject": "Physics",
    "mark": ""
  },
  {
    "firstname": "Peter",
    "lastname": "Lloyd",
    "subject": "Soc. Studies",
    "mark": 89
  }
]
 

Ниже приведен снимок экрана для приведенной таблицы, которая представляет собой один столбец массива, который не может быть сопоставлен с таблицей в красном смещении:

введите описание изображения здесь

Комментарии:

1. Используете ли вы правильный инструмент для этого случая использования? Зачем использовать клей поверх лямбда-функции и AWS SDK? Вы можете написать функцию Лямбда, которая использует API Amazon S3 для чтения содержимого, анализа JSON, а затем использует API клиента данных Redshift для выполнения операций с базой данных

2. Спасибо за вопрос. Зачем вам использовать лямбду вместо клея? Спрашиваю только из интереса…

3. Обычно клей используется, когда набор данных настолько велик — это приведет к тайм-ауту Лямбды. Если набор данных меньше, вы можете использовать API-интерфейсы Lambda/AWS SDK для выполнения операций с данными. Чтобы считывать данные из корзины Amazon S3, вы можете использовать API Amazon S3 для чтения содержимого и API клиента данных Redshift для размещения данных в базе данных Redshift.

4. Когда вы щелкаете массив в столбце тип данных, что он показывает? Похоже, что искатель взамен выдает вам сложный тип, что, скорее всего, соответствует ожиданиям. Часто вы будете работать над тем, чтобы превратить этот сложный тип в нечто более приемлемое для цели.