Узнайте, как загружать данные из S3 в Snowflake и обслуживать модель TensorFlow в сборщике данных StreamSets, механизме быстрого приема данных, конвейере данных для оценки данных, поступающих из S3 в Snowflake.

Данные и аналитика помогают нам становиться быстрее и умнее, чтобы оставаться здоровыми. Открытые наборы данных и аналитика в облачном масштабе являются ключом к раскрытию точности, необходимой для реального воздействия в области медицины. Облака данных, такие как Snowflake, являются основными инструментами для открытия аналитики с самостоятельным доступом к данным и масштабированием, отражающим динамический характер данных сегодня. Одним из известных шаблонов и ключевым начальным шагом является загрузка данных из S3 в Snowflake для быстрого извлечения выгоды из вашего облака данных. Однако ценность вашего облака данных Snowflake Data Cloud никогда не будет реализована, если вы не сможете полностью загрузить его своими реляционными и потоковыми источниками. Умные конвейеры данных позволяют отправлять и синхронизировать данные из всех уголков вашего бизнеса и размещать их в облаке данных в нужном формате, готовом для аналитики. Это означает, что вы можете предоставлять готовые данные для обработки данных и машинного обучения.

Вариант использования

Вариант использования, который мы собираемся рассмотреть, заключается в классификации опухолей молочной железы как или и для демонстрации того, что мы будем использовать набор данных о раке молочной железы штата Висконсин, доступный как часть scikit-learn. Чтобы узнать, как я обучил и экспортировал простую модель TensorFlow в Python, ознакомьтесь с моим кодом на GitHub. Как вы заметили, архитектура модели сведена к минимуму и довольно проста, всего пара слоев. Важным аспектом кода, на который следует обратить внимание, является то, как модель экспортируется и сохраняется с помощью TensorFlow SavedModelBuilder*.

*Примечание. Чтобы использовать модели TensorFlow в сборщике данных, их необходимо экспортировать/сохранить с помощью TensorFlow SavedModelBuilder на выбранном вами поддерживаемом языке, таком как Python.

Что такое ТензорФлоу?

TensorFlow — это среда машинного обучения с открытым исходным кодом, созданная для Deep Neural Networks. Он был создан командой Google Brain. TensorFlow поддерживает масштабируемое и переносимое обучение на ЦП, ГП и ТПУ. На сегодняшний день это самый популярный и активный проект машинного обучения на GitHub.

Обзор конвейера данных

Вот обзор конвейера данных.

  • Получение данных об опухолях молочной железы из Amazon S3
  • Выполнение преобразований
  • Используйте модель машинного обучения TensorFlow, чтобы классифицировать опухоль как доброкачественную или злокачественную.
  • Храните данные об опухолях рака молочной железы вместе с классификацией рака в Snowflake.

Загрузить данные из S3 в Snowflake

Амазонка S3

  • Происхождение загрузит записи о раке молочной железы, хранящиеся в файле .csv на Amazon S3. Некоторые из важных настроек включают в себя:
  • Учетные данные AWS — для аутентификации можно использовать либо профиль экземпляра, либо ключи доступа AWS.
  • Название корзины Amazon S3
  • Имя объекта/файла или шаблоны имен файлов, содержащие входные данные для загрузки из Amazon S3.

Преобразователь поля

  • Этот процессор преобразует все входные столбцы из String в Float. В этом случае все поля должны быть включены в список, поскольку все они являются функциями, которые будут использоваться моделью TensorFlow.

Оценщик TensorFlow

  • Путь к сохраненной модели: расположение предварительно обученной модели TF, которая будет использоваться.
  • Теги модели: установите значение serve, поскольку метаграф (в нашей экспортированной модели) предназначался для использования при обслуживании. Подробнее см. в tag_constants.py.
  • Входные конфигурации: информация о входном тензоре, настроенная во время обучения и экспорта модели. (См. раздел Обучение модели и ее сохранение/экспорт с помощью TensorFlow SavedModelBuilder.)
  • Конфигурации вывода: информация о выходном тензоре, настроенная во время обучения и экспорта модели. (См. раздел Обучение модели и ее сохранение/экспорт с помощью TensorFlow SavedModelBuilder.)
  • Поле вывода: поле записи вывода, в котором мы хотели бы сохранить значения классификации.

Переименование поля

  • Этот процессор позволит нам переименовывать столбцы, чтобы сделать их более понятными.

Оценщик выражений

  • Этот процессор будет использовать выражение ${record:value(‘/classification’) == 0 ? "Доброкачественное" : "Злокачественное" для оценки значения столбца "состояние" и создания нового столбца со значениями "Доброкачественное" или "Злокачественное" в зависимости от классификации опухоли.

Средство удаления полей

  • Этот процессор позволит нам удалить столбцы, которые нам не нужно хранить в Snowflake.

Снежинка

  • Преобразованные данные сохраняются в Снежинке. Некоторые из важных настроек включают в себя:
  • Учетная запись Snowflake, имя пользователя, пароль, хранилище, база данных, схема и имя таблицы. Примечание. Конвейер автоматически создаст таблицу, если она еще не существует. Поэтому нет необходимости предварительно создавать его в Snowflake.
  • При обработке новых данных вы можете настроить назначение Snowflake для использования команды COPY для загрузки данных в таблицы Snowflake.
  • При обработке данных отслеживания измененных данных (CDC) можно настроить назначение Snowflake для использования команды MERGE для загрузки данных в таблицы Snowflake.

Выполнение конвейера данных

После выполнения конвейера входные записи опухолей рака молочной железы проходят через описанный выше конвейер данных, включая оценку в реальном времени с использованием модели TensorFlow. Выходные записи, отправляемые в облако данных Snowflake, включают характеристики опухоли рака молочной железы, используемые моделью для классификации, выходное значение модели 0 или 1 и соответствующее состояние опухоли доброкачественная или >Злокачественный. См. ниже.

Вывод

Интеграция между StreamSets и Snowflake позволяет инженерам данных создавать интеллектуальные конвейеры данных для загрузки данных как синхронно, так и асинхронно. Хорошим примером синхронной нагрузки является многотабличная репликация в реальном времени с использованием сбора измененных данных (CDC), а для асинхронных, высокопроизводительных и чисто вставных рабочих нагрузок инженеры данных могут использовать интеграцию Snowpipe в StreamSets.

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

Первоначально опубликовано на https://streamsets.com 11 марта 2021 г.