#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, и записал динамический фрейм в целевую таблицу каталога , и это сработало. Это правильный путь?.