Как загрузить данные об отношениях между родителями и детьми с помощью AWS Glue

#amazon-web-services #foreign-keys #amazon-rds #parent-child #aws-glue

#amazon-веб-сервисы #внешние ключи #amazon-rds #родитель-ребенок #aws-клей

Вопрос:

Я новичок в AWS glue и хотел бы знать стандартный способ загрузки родительских и дочерних данных из json в корзине S3 в RDS(MySQL).Итак, допустим, у нас есть две таблицы MySQL: «пользователь» и «пользователь_контакт». Таблица » пользователь’ содержит столбцы: идентификатор(int) pk, автоматически сгенерированные значения, имя(varchar). И таблица «user_contact» содержит столбцы: идентификатор(int) , автоматически сгенерированные значения, идентификатор пользователя(FK), адрес(varchar). И у нас есть два соответствующих файла JSON в S3 в качестве пользователя.json: [ { «имя_пользователя»: «u1» }, { «имя_пользователя»: «u2» }, { «имя_пользователя»: «u3» } ]

и user_contact.json: [ { «имя пользователя»: «u1», «адрес»: «adr1» }, { «имя пользователя»: «u2», «адрес»: «adr2» }, { «имя пользователя»: «u3», «адрес»: «adr3» } ]

Я хочу создать задание AWS glue для загрузки данных из user.json в таблицу «пользователь», а также загрузить user_contact.json в таблицу «user_contact». Я создал обходчики для создания исходной и целевой таблиц в каталоге клея, и таблицы выглядят нормально. Но мне все еще неясно, как загрузить данные с помощью DynamicFrame с помощью сценария задания. Например, то, как динамически вставлять значения PK из таблицы «пользователь» в значения FK в таблице «user_contact», было моим главным препятствием. Пожалуйста, дайте мне знать псевдокод для задания(критические шаги для преобразования).

Задание, наконец, заполнит данные в таблицы следующим образом:

пользователь

#идентификатор #имя

1 u1

2 u2

3 u3

контакт с пользователем

#идентификатор #идентификатор пользователя #адрес

 1 1 adr1  2 2 adr2  3 3 adr3  

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

1. Так что в принципе я смог создать эту работу. Сначала я заполнил родительскую таблицу (пользователя), сохранив в ней динамический кадр. Затем я создал новый динамический фрейм, используя его в качестве источника,и соединил этот фрейм с фреймом user_contact, используя (имя, имя_пользователя). Теперь в этом кадре у нас есть значения первичного ключа, но они находятся в поле «идентификатор». Теперь я переименовал «идентификатор» в «идентификатор пользователя», поскольку это столбец FK в таблице user_contact. Затем я выбрал поля, соответствующие таблице каталога user_contact, и записал динамический фрейм в целевую таблицу каталога , и это сработало. Это правильный путь?.