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

Потоковое прослушивание

Пакетный прием

Прием потока может иметь три различных типа обработки.

  1. Поток кликов. Охватывает серию взаимодействий пользователя с интерфейсом, таким как мобильное приложение, голосовой помощник или простой рабочий стол. Clickstream в основном записывает эти события с отметкой времени, идентификатором пользователя, деталями запроса, IP-адресами, идентификатором сеанса и т. д. Давайте рассмотрим два инструмента, которые потенциально могут обрабатывать миллионы записей в секунду.

Kafka — это программная платформа с открытым исходным кодом, позволяющая обрабатывать данные в режиме реального времени. Kafka позволяет нам создавать брокеров. Эти брокеры управляют взаимодействием между производителями и потребителями. Например, у нас есть журналы кликов производителя, которые отправляются в какую-то тему Kafka. И затем у нас есть разделы в брокере, и наши потребители могут использовать этот брокер для дальнейшей обработки, такой как хранение или анализ. В случае, если существует много журналов истории посещений, которые наш брокер не может обработать, у нас может быть кластер брокеров, в котором каждый отдельный журнал истории посещений будет отправляться в определенный раздел, а один из брокеров в кластере брокеров будет назначен лидером. . Лидер раздела следит за тем, чтобы все операции чтения и записи проходили через этот раздел, а также реплицирует раздел между другими брокерами в кластерах брокеров. Zookeeper занимается управлением кластером брокера. Zookeeper — это служба, предназначенная для надежной координации распределенных систем с помощью службы именования, управления конфигурацией, синхронизации данных, выбора лидера, очередей сообщений или систем уведомлений. Kafka позволяет нам поддерживать масштабирование брокеров, что, в свою очередь, позволяет нам обрабатывать миллионы журналов истории посещений.

Kinesis. Это продукт AWS, который выполняет ту же работу по обработке данных в реальном времени. Здесь у нас шарды вместо разделов.

2. Сбор измененных данных — процесс записи изменений данных в системе баз данных. Это изменение данных может быть записано и использовано позже для целей анализа или аудита. Примером может быть заемщик, не решивший платить EMI в течение нескольких месяцев. Сбор данных об изменениях использует журнал изменений в конкретной записи и отправляет его в инструмент потоковой передачи, такой как Kafka или Kinesis. Итак, производители будут такими системами хранения, как базы данных, которые отправляют журналы изменений нашим брокерам, а потребители могут хранить эту информацию.

3. Захват видео. То же самое можно применить и к захвату видео. Здесь видео передаются брокерам в виде сжатых кадров. Таким образом, между производителями и брокерами будет сборщик, который будет выполнять эту работу.

Пакетная загрузка — это процесс, в котором мы хотим делать периодические снимки некоторой базы данных. Таким образом, мы не ждем потоков данных здесь. Здесь мы будем рассматривать размер данных, скорость передачи данных, поддерживаемые типы данных и т. д. Вот поток пакетного приема для различных баз данных в качестве источников.

Кроме того, во всех случаях мы должны учитывать высокую доступность, чтобы в случае выхода из строя одного брокера мог подключиться другой.