Специалисты по обработке данных и инженеры заслуживают лучшего ноутбука

Специалисты по обработке данных и инженеры по обработке данных недовольны платформой / инфраструктурой / инструментами даже при легком доступе ко всем управляемым сервисам, предоставляемым облаком (например, AWS). Их вопросы (жалобы) варьируются от самого низкого до самого высокого в стеке технологий: «Как я могу развернуть кластер с помощью Spark, который имеет такую ​​же внешнюю зависимость, что и мой ноутбук?». Они также испытывают головную боль от разработки до эксплуатации приложения для обработки данных: «Как я могу автоматически перезапустить несколько записных книжек, зависящих друг от друга, если один из них вышел из строя?»

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

  1. результаты и форма результатов поставки разнообразны: сценарий / код, набор данных, отчет, слайды, диаграмма, информационная панель, модель машинного обучения, API, веб-приложение и т. д.
  2. инструменты обработки и хранения данных разнообразны: есть древние базы данных Oracle, которые работают более 20 лет; есть инструменты с открытым исходным кодом, такие как Hadoop и Spark; Часто несколько языков и их среды разработки используются для одного проекта, Python, SQL, R, Scala и даже Matlab.
  3. навыки членов группы данных разнообразны: с одной стороны спектра инженерных навыков, некоторые инженеры вносят свой вклад в Spark Core и могут управлять кластером Kubernetes; с другой стороны, есть бизнес-аналитики, владеющие SQL и Excel и обладающие глубокими знаниями в предметной области.
  4. пропускная способность инженеров и командная структура групп данных разнообразны: существуют «полноценные» группы обработки данных, которые состоят из инженеров-программистов, инженеров платформ данных, инженеров данных, инженеров машинного обучения, специалистов по данным и бизнес-аналитиков; есть стартапы, которые не могут позволить себе нанять 1 инженера по платформе в Сан-Франциско.

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

Развитие компьютерного оборудования, программного обеспечения и услуг помогло решить эти проблемы за последнее десятилетие. Все облачные провайдеры предлагают экземпляры с большим объемом памяти с предустановленными инструментами с открытым исходным кодом, снимая бремя покупки, обслуживания и настройки оборудования. Внедрение Apache Spark значительно повышает продуктивность групп обработки данных, предоставляя единый инструмент для чтения данных, обработки данных и построения модели машинного обучения в памяти. Стартап из Сан-Франциско предлагает услуги по созданию и поддержке таблиц, готовых к использованию SQL.

В свете таких изменений узким местом науки о данных и инженерии является не экземпляр сверхвысокой памяти объемом 24 ТБ или инфраструктура обработки в памяти, которая уже повысила скорость обработки в 10 раз. Узкое место постепенно смещается от оборудования и программного обеспечения системного уровня к инструментам, созданным для специалистов по данным и инженеров по данным:

  1. Операция игнорируется. Например, когда специалист по обработке данных создает отчет в блокноте, который обновляется каждый день в 6 часов утра, он должен как минимум настроить задание cron, которое запускается в 6 часов утра, повторно запустить его в случае неудачи, отправить отчет по электронной почте. Или он может изучить инструменты рабочего процесса, которые требуют работы самого инструмента рабочего процесса инженерами, например Airflow, разработанный в первую очередь для инженеров по обработке данных. Или он может каждое утро рано приходить в офис и запускать все вручную.
  2. Переключение между несколькими средами разработки, ноутбуком и серверами замедляет разработку. Для обработки данных часто требуется несколько языков, SQL, Python, R, Scala и т. Д., И несколько сред разработки, включая IDE, ноутбук, консоль SQL и инструменты визуализации, переключаются на итеративный характер науки о данных и инженерии. При переносе прототипов ноутбуков с портативных компьютеров на кластеры для производства возникают неожиданные проблемы.
  3. Пробелы в навыках в реальности. В идеале специалист по данным, который строит модель машинного обучения без особо высоких требований к масштабируемости, должен развернуть и контролировать себя, чтобы повысить скорость итерационного цикла. Однако в действительности специалисты по данным, специализирующиеся в статистике или бизнесе, считают, что стоимость обучения таким инженерным навыкам может быть слишком высокой. Дилемма заключается в том, что если инженерная полоса пропускания не выделяется, то модель портативного компьютера для специалистов по данным мало влияет на бизнес, в то время как дополнительная инженерная полоса пропускания часто обходится дорого, особенно в районе залива Сан-Франциско.

Jupyter Notebook, Zeppelin Notebook и другие ноутбуки пользуются большой популярностью среди специалистов по обработке данных и инженеров по обработке данных. Однако эти ноутбуки созданы с ограниченной целью: предоставить интерактивную вычислительную среду, которая решает лишь небольшую часть проблем современных групп обработки данных, особенно отсутствие работы ноутбуков. Разработка и эксплуатация приложения для обработки данных, включая модели приборной панели и машинного обучения, идет медленно, дорого и болезненно.

Представьте, что с помощью интегрированной среды портативных компьютеров специалист по данным может предоставить информационную панель без циклических обращений к IDE, консолям SQL, инструменту приборной панели, облачной веб-консоли и терминалам; Специалист по данным может настроить конвейер для обновления отчета, созданного несколькими записными книжками, зависимыми друг от друга, без изучения другой инфраструктуры / библиотеки Python и борьбы за помощь инженеров. Специалист по данным может разработать и развернуть модель машинного обучения и повторять модель в любое время, не передавая модель группе инженеров.

В дополнение к интерактивной вычислительной среде мы стремимся создать удобную интегрированную среду ноутбука (INE), которая расширяет цели предшественников:

  • Действительно сквозной (например, от раскручиваемых кластеров до предоставления аналитики бизнесу)
  • Сочетает в себе разработку и эксплуатацию ноутбуков (например, запуск ноутбуков в зависимости от фиксированного расписания)
  • Ориентация на конечный результат, создание информационной панели и развертывание модели машинного обучения прямо из записных книжек

Для достижения этой цели мы создаем Bayesnote, который вводит:

  • Поддерживает несколько языков в одной записной книжке с совместным использованием переменных в памяти между ячейками (Python, SQL, R, Scala)
  • Встроенные контейнеры Docker как среда разработки и эксплуатации
  • Компонент рабочего процесса, созданный для ноутбуков (подумайте о Airflow для ноутбуков)
  • Компонент приборной панели и компонент машинного обучения, хорошо интегрированный с записными книжками.

Bayesnote расширяет цель своих предшественников в основном тремя способами:

  1. Только разработка - ›Разработка и эксплуатация
  2. Только ноутбук - ›Блокнот + инструмент рабочего процесса + инструмент панели управления + инструмент машинного обучения + инструмент среды
  3. Один язык - ›Несколько языков

По сути, Bayesnote представляет собой интерактивную вычислительную среду, аналогичную своим предшественникам Jupyter Notebook, Zeppelin notebook и т. Д. Унифицированный уровень записной книжки Bayesnote построен на других ноутбуках в качестве серверной части, так что 1. Другие компоненты, например, Компонент рабочего процесса Bayesnote будет взаимодействовать с этим унифицированным слоем записной книжки, а не с записной книжкой Jupyter, записной книжкой Zeppelin и т. д. 2. Другие инструменты платформы данных, например Airflow также может взаимодействовать с единым слоем ноутбука, что сложно, если вообще возможно, с другими ноутбуками.

Компонент рабочего процесса Bayesnote - это то место, где операция встречается с наукой о данных. Этот рабочий процесс использует ту же философию, что и «определение рабочего процесса как код», в соответствии с передовой инженерной практикой, с другими системами рабочих процессов, созданными для инженеров. Тем не менее, он также признает, что интуитивно понятный пользовательский интерфейс является одним из наиболее важных факторов, учитываемых при проектировании инструментов, созданных для специалистов по данным. Система рабочего процесса построена на ноутбуках, а не на функциях, которые являются единицей планирования других систем рабочего процесса, предназначенных для инженерии данных, например Воздушный поток, снижающий стоимость обучения почти до нуля.

Bayesnote предлагает информационную панель и компонент машинного обучения, который позволяет специалистам по данным создавать информационные панели и повторять модели машинного обучения прямо из записных книжек. Традиционный инструмент панели инструментов предлагает только консоль SQL, поэтому специалисты по данным вынуждены переключаться между другими инструментами обработки данных для языков сценариев и консолью SQL, считывая и записывая данные на диск для обмена данными между инструментами. Это непродуктивно и утомительно, так как замедляет итерационные циклы построения приборной панели. Специалисты по обработке данных сталкиваются с аналогичной ситуацией, когда дело касается повторяющейся модели машинного обучения.

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

Выпущена версия 0.1-alpha. Посмотреть скриншоты можно здесь. Пометьте наше репо, чтобы поддержать нас. Https://github.com/Bayesnote/Bayesnote