Рубрики
Без рубрики

Введение в Twitter обработка данных и хранение на AWS

API Twitter предоставляет доступ к большому объему твитов, которые используют разработчики и исследователи … Теги от AWS, начинающих, Python, учебник.

API Twitter обеспечивает доступ к большому объему твитов, которые разработчики и исследователи используют для изучения публичного разговора, как это происходит в реальном времени. Чтобы потреблять, обрабатывать и хранить этот большой объем данных, разработчики создают проглатывание и обработку и обработку данных для оптимизации потребления данных и хранения данных Twitter. В связи с преимуществами использования вычислительной инфраструктуры, хранения и приложений в облаке, разработчики используют популярные облачные услуги.

В этом руководстве мы посмотрим на введение в Twitter обработку данных и хранение на Amazon Web Services (AWS) Отказ Сначала мы обсудим некоторые популярные услуги по AWS и как те, которые могут быть использованы в качестве компонентов для создания конвейера обработки данных на AWS. Затем мы посмотрим на некоторые примеры эталонных архитектур, которые разработчики могут обратиться к разработке и созданию своих трубопроводов данных для обработки данных Twitter на AWS. Образцы кода (с инструкциями на конфигурациях AWS) для обработки и хранения данных Twitter предоставляются по всему блогам, связано с github и использовать новые конечные точки, которые являются частью нового Twitter API V2 Отказ

Отказ от ответственности: архитектуры и структуры проектирования, перечисленные ниже, должны использоваться в качестве ссылки при наращивании вашего конвейера данных и не предназначены для того, чтобы быть одним разным решением. Основываясь на том объеме данных, которые вы обрабатываете, ваше применение и требования к хранению, вам нужно будет соответственно настроить их. Обратитесь к Калькулятор цен Чтобы получить оценку того, сколько товар будет стоить вам. Twitter не управляет или не работает AWS – пожалуйста, обратитесь к их документация Для ограничений и терминов в отношении использования этих продуктов.

Согласие

Важно иметь в виду, что если вы храните данные Twitter, вы должны сохранить данные, совместимые как часть нашего Политика разработчика . Узнать больше О том, как сохранить ваш набор данных.

Соответствующие услуги и терминология

Ниже приведен список услуг AWS, которые имеют отношение к созданию конвейера данных для обработки и хранения данных из API Twitter.

EC2. Предоставление серверов в облаке Запуск сценариев, чтобы получить данные из API Twitter
Лямбда Функции в облаке. Вы можете выбрать память или язык программирования и код запуска Обработка данных после потоковых, получение исторических данных из Twitter API
Кинетис ДАННЫЕ ДАННЫЕ ПРОЦЕССА В РЕАЛЬНОМУ Переработка потоковых данных, исходящих из PowerTack
S3 Хранение файла / объектов в облаке Хранить Tweet Data.
Динамодб NoSQL база данных / магазин документов на основе ключей на основе ключей Хранить Tweet Data.
Служба реляционной базы данных (RDS) Реляционные базы данных в облаке Хранить Tweet Data.
Менеджер секретов Сервис для хранения паролей и ключей Магазины API ключей или учетные данные для API Twitter
Простая служба очередей (SQS) Оперативная служба для обработки приложений. Для обработки записей в пакете мы можем покинуть их, чтобы его подхватить различными функциями лямбда
Cloudwatch. Регистрация и события в облаке События cloudwatch для запуска функций лямбда периодически

Справочные архитектуры

В этом разделе мы обсудим контрольные архитектуры для обработки и хранения данных Twitter на AWS. Для целей настоящего Руководства мы разбиваем компоненты конвейера обработки данных на четыре компонента.

  1. Вычислить Этот компонент имеет дело с базовой вычислительной инфраструктурой, которую вы будете использовать для подключения к данным и чтению API Twitter. Как правило, когда вы хотите потреблять данные Twitter из потоковой точки конечной точки, такие как выборка потока, отфильтрованный поток, статусы/фильтр или PowerTrack, вам нужно будет запустить код на машине или сервере, чтобы подключиться к потоку и начать потребление данные. Чтобы сделать это, вы можете настроить сервер в облаке, используя EC2 и запустите свой код для подключения к потоковой конечной точке с этого сервера.

  2. Процесс Этот компонент имеет дело с обработкой данных Twitter, как только подключился к потоковым конечным точкам и начните получать данные на нашем сервере. Вы можете использовать решение о очереди, такое как SQS или потоковое решение, такое как Kinesis для обработки этих данных, и вызывает функции Lambda для обработки, фильтрации и преобразовывать эти данные, прежде чем хранить его.

  3. Хранение Этот компонент имеет дело с хранением данных Twitter. AWS предлагает RDS для записи данных в различные реляционные базы данных в облаке. Он также имеет популярный объектный магазин – S3 – а также базы данных NoSQL, такие как Dynamodb.

  4. Анализ Этот окончательный компонент имеет дело с анализом данных, которые мы получаем из Twitter API после его хранения. Такие услуги, как Постичь или Quicksight сделать это легко сделать это. ( Примечание: Мы не будем прикрывать этот компонент в этом руководстве, но мы надеемся обсудить некоторые услуги для этого компонента в будущей статье)

Давайте посмотрим на некоторые ссылочные архитектуры ниже:

Обработка данных от потоковых конечных точек с использованием AWS Kinesis Data Firehose

В этой архитектуре вы можете использовать один (или более) экземпляры EC2 в качестве сервера. На этом сервере вы можете запустить свой код, который вызывает любой из потоковых конечных точек, таких как пробооткрытый поток, отфильтрованный поток или PowerTrack, для подключения к потоку и данные глотает. Затем вы можете настроить DataStream Kinesis в консоли AWS, чтобы доставить твиты в AWS S3. Kinesis позволяет воспроизводить данные при необходимости. Это также позволяет потребляться данные несколькими службами. Это отличается от использования очереди SQS, потому что после подтверждения данных от очереди SQS не существует, нет возможности воспроизведения.

При настройке потока доставки вы должны указать, какое ведро S3 вы хотите написать данные Twitter. Вы также указываете «размер буфера» или «буферный интервал» для твитов доставки до S3. Когда этот буферный критерии выполнены, Kinesis доставит вам твиты в ведро S3. AWS также позволяет преобразовывать записи исходных записей до доставки с помощью функции лямбда. Примечание: Данные KISISEIS Firehose также позволяют преобразовывать данные в формат паркета Apache или ORC для оптимизации.

Чтобы обработать эти данные, которые поставляются в S3, используя поток доставки Kinesis, вы можете настроить функцию лямбда таким образом, чтобы, когда данные добавляются в ведро S3, запускается функция лямбда, и вы можете получить свою логику обработки ( такие как анализ настроений) в этой функции лямбда. В зависимости от вашего случая использования вы можете сохранить эти обработанные данные в растворе NoSQL, такими как DynamOdb или выберите из реляционной базы данных, используя RDS.

Проверьте наш Код образец (Наряду с инструкцией конфигурации AWS) для подключения к конечной точке отбора пробооткрытого потока и доставляя твиты на S3 с помощью потока доставки Kinesis.

Сводка шагов для реализации этой архитектуры на AWS:

  1. Включите экземпляр EC2, на котором вы запускаете свой код для подключения к конечным точкам потоковых.

  2. Настройте поток доставки Kinesis:

    • Укажите пункт назначения ведра S3, где вы хотите, чтобы твиты доставляются
    • Укажите размер буфера и внутренний для доставки твитов к ведрю S3
  3. Настройте функцию Lambda, которая будет запускаться всякий раз, когда данные добавляются в ваше ведро S3. Это функция лямбда, где вы можете делать обработку, такие как анализ настроений.

  4. Если вы хотите сохранить свои результаты с шагов выше в хранилище данных, обязательно настройте их сначала перед записью для этих данных в вашей функции Lambda.

Периодически получать исторические данные об использовании событий Lambda и CloudWatch

Если вы хотите получить исторические данные с использованием конечных точек, таких как недавний поиск или поиск/твиты, вы можете периодически проходить скрипт на экземпляре EC2, который вызывает эти конечные точки, получить данные из них и хранить их. Тем не менее, альтернатива, Смертный Подход представлен в этой справочной архитектуре. Вы можете настроить функцию Lambda, которая запускает скрипт для подключения к API Twitter для получения исторических данных. Вы можете настроить мероприятие CloudWatch, чтобы периодически вызвать функцию лямбда, чтобы получить новые/последние данные. При настройке события CloudWatch вы можете указать частоту, с которой вы хотите вызвать функцию лямбда (например, 15-минутный интервал времени). После получения этих данных вы можете преобразовать и/или хранить его в вашем хранилище данных.

Проверьте это Блог пост Это показывает, как периодически вызвать функцию лямбда и получить твиты, используя недавнюю конечную точку поиска, а затем хранить обработанные идентификаторы Tweet в Dynamodb.

Хранение данных Twitter на AWS

AWS предоставляет различные варианты хранения данных, которые можно использовать при хранении данных Twitter. В этом разделе мы посмотрим на три варианта: а именно S3, Dynamodb и RDS.

Хранение данных в S3

Общий способ хранения данных Tweet – хранить их в партиях в ведрах S3. S3 – популярное решение для строительства Данные озера со структурированными или неструктурированными данными. Если вы хотите сначала собрать все данные и использовать его позже для анализа в таких инструментах, как Python или R, имеет смысл сжать ваши данные, а затем хранить его в S3. Сжатие файла уменьшит размер каждого файла.

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

Название папки: Yyyy-mm-dd

В этой папке вы можете сохранить файлы на молнии в час, как:

Имя файла: Идентификатор-yyyy-mm-dd-hh.json или идентификатор-yyyy-mm-dd-hh.json.gz

Вы можете даже хранить его на 15-минутные окна в течение определенного дня, и в этом случае будет ваше имя файла:

Имя файла: Идентификатор-yyyy-MM-DD-HH-MM.JSON или Идентификатор-ггни-ММ-ДД-HH-MM.JSON.GZ

Затем в вашем Python/r код вы можете прочитать эти данные с S3 и сделать свой анализ.

Проверьте это Код образец (Наряду с инструкциями конфигурации AWS), которые показывают, как хранить твиты, потопившиеся от текущей точки потока в S3.

Хранение данных в dynamodb

Если вам нужно хранить индивидуальные твиты на строку в базе данных, например Tweet_ID в качестве ключа и значение, как объект JSON Tweet, то DynamOdb – хорошая подгонка. Вы также можете хранить обработанные твиты таким образом (после того, как вы сделали анализ в Tweet). Dynamo позволяет читать ключом (Tweet_id в этом случае, который вернет один Tweet Object) или сканировать Таблица (которая вернет каждый твит в таблицу).

Проверьте это Блог пост Это показывает, как хранить обработанные идентификаторы Tweet в Dynamodb.

Хранение данных в реляционной базе данных (используя RDS Если вы не хотите хранить данные в растворе NoSQL, как DynamOdb, и требуют решения для записи схемы, вы можете использовать службу реляционной базы данных Amazon (RDS) для настройки реляционной базы данных по вашему выбору. RDS позволяет вам настроить базы данных MySQL, PostgreSQL и Amazon Aurora (среди прочего) в облаке AWS.

Управляющие ключи и секреты

Чтобы использовать API Twitter, вам нужно использовать ключи API для аутентификации. Вы не должны хранить эти ключи в вашем коде. Если вы используете AWS, один вариант – использовать Менеджер секретов хранить ваши ключи. Используя AWS SDK , вы можете загрузить эти учетные данные в свой код. Проверьте Эта реализация В Java извлечения ключей от AWS Secrets Manager.

Не стесняйтесь добраться до меня на @suhemparack С предложениями о том, какие другие образцы AWS вы хотели бы видеть для обработки и хранения данных Twitter на AWS

Ресурсы

Оригинал: “https://dev.to/twitterdev/introduction-to-twitter-data-processing-and-storage-on-aws-1og”