user

Авторизация

Добро пожаловать!

Регистрация

Undefined666

Кодинг

Запись данных в DynamoDB с помощью awswrangler и boto3

 DynamoDB — это быстрая и гибкая служба базы данных NoSQL с производительностью в миллисекунды. Он полностью управляемый и бессерверный, он позволяет запускать высокопроизводительные приложения в любом масштабе.

 Наиболее распространенные варианты использования:

  • программные приложения
  • создавать хранилища метаданных мультимедиа
  • обеспечить беспрепятственный розничный опыт
  • масштабировать игровые платформы

 В этой статье я покажу вам, как записывать данные в DynamoDB с помощью библиотек Python. Один из них boto3 — хорошо известный AWS SDK (SDK — Software Development Kit), который позволяет создавать, настраивать и управлять сервисами AWS . Я собираюсь использовать его для создания таблицы DynamoDB.

 Вторая библиотека называется awswrangler — AWS SDK для pandas. Он позволяет записывать файлы pandas DataFrame, csv, json или parquet непосредственно в таблицы DynamoDB или корзины S3 и многое другое, см . официальную документацию .

Создание таблицы с помощью boto3

 Давайте посмотрим на код Python ниже:

 В функции create_albums_table есть несколько специфических мест, о которых стоит упомянуть и объяснить:

  1. строка 4–8: функция принимает один аргумент — dyn_resource s, для которого по умолчанию установлено значение None. Если оператор в строках 7 и 8 проверяет, имеет ли аргумент dyn_resources значение None, если да, то для создания клиента DynamoDB используется пакет boto3 (клиент DynamoDB — это класс Python, вот методы, принадлежащие этому классу)
  2. строка 12–29: схема — это python dict, который содержит данные, необходимые для создания таблицы .
  3. строка 31: создание таблицы (обратите внимание, что словарь распаковывается по синтаксису с двойными звездочками )
  4. строка 33: метод .wait_untill_exists() просто ждет, пока не будет создана таблица
  5. наконец, функция возвращает таблицу в строке 35

 После выполнения функции create_albums_table в DynamoDB создается таблица. Чтобы проверить это, вы можете перейти в Консоль управления AWS и выполнить поиск службы DynamoDB . Затем перейдите на вкладку «Таблицы». Вы должны увидеть таблицу Альбомы , как на скриншоте ниже:

Запись данных с помощью awswrangler

 Давайте посмотрим на пример набора данных с альбомами:

 Мы видим, что набор данных выше содержит два столбца:

  • Album_id — тип: целое число
  • имя_альбома — тип:строка

 Данные хранятся в формате csv. Воспользуемся библиотекой awswrangler, чтобы записать ее в DynamoDB прямо из csv-файла. Следующий код Python позволяет сделать это:

 Одна вещь, о которой стоит упомянуть в приведенном выше коде, это строки 10–13: здесь библиотека awswrangler используется для записи данных в DynamoDB из файла csv.

 Когда функция write_data_to_albums_table выполняется, мы можем проверить, были ли данные записаны в таблицу альбомов . Для этого выполните следующие шаги.

 1.Перейдите в Консоль управления AWS, снова перейдите к сервису DynamoDB и щелкните Таблицы.

 2.Нажмите на название таблицы Альбомы. Это выделено на скриншоте ниже:

 3.Вы должны увидеть навигационную панель для таблицы Album , теперь, чтобы просмотреть элементы таблицы, нажмите кнопку, выделенную на снимке экрана ниже:

 4.После нажатия этой кнопки вы должны увидеть следующую таблицу внизу страницы :

Дополнительная информация

 Для DynamoDB существует больше методов, позволяющих записывать данные.

 В день, когда я пишу эту статью — пакет awswrangler 2022.12.27 предоставляет 6 методов для DynamoDB :

delete_items — удалить все элементы в указанной таблице DynamoDB.

get_table — Получить объект таблицы DynamoDB для указанного имени таблицы.

put_csv — записывает все элементы из CSV-файла в DynamoDB.

put_df — Записывает все элементы из DataFrame в DynamoDB

put_items — вставить все элементы в указанную таблицу DynamoDB. Items в данном случае это список словарей.

put_json — записать все элементы из файла JSON в DynamoDB.

 Код для этой статьи находится в этом репозитории .