universalnotificationplatform 001 etl что это

Высвободил более 5 Гигабайт на диске, удалив файлы etl. Что это и можно ли удалять?

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Заметил, что накопился существенный объем файлов с расширение etl в папке C:\ProgramData\Microsoft\Diagnosis\ETLLogs. Откуда они берутся и можно ли их безболезненно удалить?

Сама аббревиатура ETL расшифровывается как Extract, Transform и Load, то есть извлечение, преобразование и загрузка. Подобные файлы накапливают в себе разные системные события, журналы обращений к диску, различные события ядра операционной системы и объединяют их в единое хранилище. Windows 10 хранит в них данные телеметрии, что наводит на мысль о их никчёмности для конечного пользователя.

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

Теоретически, Windows записывает туда различные предупреждения, ошибки или другие события, которые должны использоваться для устранения потенциальных проблем. По заверениям Майкрософт, отправляется только минимальный объем данных, необходимый для защиты Windows. Что там происходит на практике, остаётся только догадываться, но объём этих данных я бы не назвал маленьким. Так на терминальном сервере с 20 пользователями за месяц набегает около 1.5 Гигабайт данных!

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Конфигурация компьютера > Административные шаблоны > Компоненты Windows > Сборки для сбора данных и предварительные сборки

(Computer Configuration > Administrative Templates > Windows Components > Data Collection and Preview Builds.)

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Параметру «Разрешить телеметрию» (Allow Telemetry) выставляем значение 0 или «Отключена». Насколько я понимаю, полностью отключить телеметрию в Windows всё-таки не получится, но таким образом можно существенно снизить объёмы накопление логов.

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Комментариев: 2

Большое вам спасибо

Жаль, что не предусмотрели Reg-файл для Windows Home

Источник

Universalnotificationplatform 001 etl что это

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Вопрос

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Накопился большой объем файлов C:\ProgramData\Microsoft\Diagnosis\ETLLogs с расширение etl

Гуглю. но пока в голове не очень укладывается что это.

Что, это, как с ними быть? Чистить? И можно ли отрегулировать политиками?

Ответы

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Нашел еще в шедулере задачи Microsoft Compatibility Appraiser «Сбор телеметрических данных программы при участии в программе улучшения качества ПО»

Могли бы уточнить, если указанная задача активна?

Сообщите пожалуйста если следующие службы на сервере активны?

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

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

Avis de non-responsabilité:
Mon opinion ne peut pas coïncider avec la position officielle de Microsoft.

Источник

Основные функции ETL-систем

ETL – аббревиатура от Extract, Transform, Load. Это системы корпоративного класса, которые применяются, чтобы привести к одним справочникам и загрузить в DWH и EPM данные из нескольких разных учетных систем.

Вероятно, большинству интересующихся хорошо знакомы принципы работы ETL, но как таковой статьи, описывающей концепцию ETL без привязки к конкретному продукту, на я Хабре не нашел. Это и послужило поводом написать отдельный текст.

Хочу оговориться, что описание архитектуры отражает мой личный опыт работы с ETL-инструментами и мое личное понимание «нормального» применения ETL – промежуточным слоем между OLTP системами и OLAP системой или корпоративным хранилищем.
Хотя в принципе существуют ETL, который можно поставить между любыми системами, лучше интеграцию между учетными системами решать связкой MDM и ESB. Если же вам для интеграции двух зависимых учетных систем необходим функционал ETL, то это ошибка проектирования, которую надо исправлять доработкой этих систем.

Зачем нужна ETL система

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

Как работает ETL система

Все основные функции ETL системы умещаются в следующий процесс:

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

В разрезе потока данных это несколько систем-источников (обычно OLTP) и система приемник (обычно OLAP), а так же пять стадий преобразования между ними:

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Особенности архитектуры

Реализация процессов 4 и 5 с точки зрения архитектуры тривиальна, все сложности имеют технический характер, а вот реализация процессов 1, 2 и 3 требует дополнительного пояснения.

Процесс загрузки

При проектировании процесса загрузки данных необходимо помнить о том что:

Процесс валидации

Данный процесс отвечает за выявление ошибок и пробелов в данных, переданных в ETL.
Само программирование или настройка формул проверки не вызывает вопросов, главный вопрос – как вычислить возможные виды ошибок в данных, и по каким признакам их идентифицировать?
Возможные виды ошибок в данных зависят от того какого рода шкалы применимы для этих данных. (Ссылка на прекрасный пост, объясняющий, какие существуют виды шкал — http://habrahabr.ru/post/246983/).

Ближе к практике в каждом из передаваемых типов данных в 95% случаев возможны следующие ошибки:

Соответственно проверки на ошибки реализуются либо формулами, либо скриптами в редакторе конкретного ETL-инструмента.
А если вообще по большому счету, то большая часть ваших валидаций будет на соответствие справочников, а это [select * from a where a.field not in (select…) ]
При этом для сохранения аудиторского следа разумно сохранять в системе две отдельные таблицы – rawdata и cleandata с поддержкой связи 1:1 между строками.

Процесс мэппинга

Процесс мэппинга так же реализуется с помощью соответствующих формул и скриптов, есть три хороших правила при его проектировании:

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Заключение

В принципе это все архитектурные приемы, которые мне понравились в тех ETL инструментах, которыми я пользовался.

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

Источник

Бесплатный удобный ETL инструмент с открытым кодом на основе Python — фантастика или нет?

Мы давно ищем идеальный ETL инструмент для наших проектов. Ни один из существующих инструментов нас полностью не удовлетворял, и мы попробовали собрать из open-source компонентов идеальный инструмент для извлечения и обработки данных. Кажется, у нас это получилось! По крайней мере, уже многие аналитики попробовали эту технологию и отзываются очень позитивно. Сборку мы назвали ViXtract и опубликовали на GitHub под BSD лицензией. Под катом — рассуждения о том, каким должен быть идеальный ETL, рассказ о том, почему его лучше делать на Python (и почему это совсем не сложно) и примеры решения реальных задач на ViXtract. Приглашаю всех заинтересованных к дискуссии, обсуждению, использованию и развитию нового решения для старых проблем!

Визуализация результатов анализа — это очень важно, но роль загрузки данных нельзя недооценивать. За последние 5 лет, которые я занимаюсь BI (как с технической, так и с бизнесовой стороны), я провел более 500 интервью с клиентами, на которых мы обсуждали задачи и потребности конкретных компаний. И в большинстве из них мои собеседники подчеркивали, что визуализация — это очень нужная и полезная вещь, но самые большие проблемы и трудозатраты возникают при загрузке и очистке данных.

80% времени аналитика уходит на преобразование, очистку, выгрузку и сверку данных

Мы в Visiology в основном работаем с крупными предприятиями, промышленностью и госорганизациями, но в разговорах с коллегами я убедился, что проблемы везде одни и те же. Аналитики могут уделить анализу и визуализации только 20% своего времени, потому что 80% уходит на преобразование, очистку, выгрузку и сверку данных. Чтобы эффективно решать эту проблему, мы постоянно ищем новые методы и инструменты работы с данными, тестируем, пробуем на реальных задачах. Что же мы называем идеальным ETL инструментом?

Итак, вот 5 основных критериев, которым должен соответствовать идеальный ETL (Extract-Transform-Load) инструмент:

ETL-инструмент должен быть простым в освоении. Речь не о том, что с ним должны уметь работать совсем неопытные люди. Просто специалист не должен тратить полжизни на изучение нового ПО, а просто взять и практически сразу начать работать с ним.

В нём должно быть предусмотрено максимальное количество готовых коннекторов. Ведь в сущности, мы все пользуемся плюс-минус одними и теми же системами: от 1С до SAP, Oracle, AmoCRM, Google Analytics. И никто не хочет программировать коннекторы к ним с нуля.

Инструмент должен быть универсальным и работать с разными BI системами. Это облегчает переход аналитиков и разработчиков из одной компании в другую — если на прошлом месте работы, например, использовали QlikView, а на новом — Visiology, желательно сохранить возможность пользоваться тем же ETL-инструментом.

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

Наконец, естественное желание — получить недорогой (а лучше — полностью бесплатный) инструмент, причем не только на время “пробного периода”, а насовсем, чтобы пользоваться им без ограничений.

Что может предложить нам рынок?

В поиске ответа на этот вопрос для себя самих и для наших клиентов. мы отметили на диаграмме наиболее известные решения, подходящие для этой задачи. Они расположены от бесплатных к дорогим, от простых до корпоративных систем Enterprise-класса.

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

В категории наиболее сложных и дорогих систем доминируют Oracle и Informatica. Microsoft SSIS — чуть более демократичный. Рядом с ними — Apache Airflow. Это открытый продукт, не требующий оплаты, но зато кривая входа для него оказывается довольно крутой. Кроме этого существуют ETL-инструменты, встроенные или связанные с конкретными BI-системами. В их число входят, например, Tableau Prep или Power Query, который используется совместно с Power BI. В числе бесплатных и демократичных решений — Pentaho Data Integration, бывший Kettle, и Loginom.

Но, увы, ни одна из этих систем не удовлетворяет перечисленным 5 критериям. Oracle и Informatica оказываются слишком дорогими и сложными. С Airflow не так уж просто сразу начать работать. EasyMorph не дотягивает по функциональности, а все инструменты, оказавшиеся в центре нашей диаграммы, прекрасно работают, но не являются универсальными. Фактически, я называл бы достаточно сбалансированными решениями Loginom и Pentaho, но тут возникает ещё один важный момент, о котором обязательно нужно поговорить.

Визуальный или скриптовый ETL?

Если копнуть глубже, то все эти (и другие) ETL-инструменты можно разбить на два больших класса — визуальные и скриптовые. Визуальный ETL позволяет делать схемы из готовых блоков, а скриптовый позволяет задавать параметры на специальном языке программирования, уже оптимизированном для обработки данных.

Выбор между визуальным и скриптовым ETL — это настоящий холивар, достойный противостояния «Android vs iOS». Лично я отношусь к той категории, которая считает, что за скриптовыми ETL — будущее. Конечно, визуальный ETL имеет свои преимущества — это наглядность и простота, но только на первом этапе. Как только возникает потребность сделать что-то сложное, картинки становятся слишком запутанными, и мы все равно начинаем писать код. А поскольку в визуальных ETL нет отладчиков и других полезных примочек для кодинга, делать это приходится в откровенно неудобных условиях.

Pentaho и Loginom относятся к визуальному типу. Я считаю, что это очень хорошие системы для своих задач, и если вы сторонник визуальной ETL — на них можно остановиться. Но я всё-таки всегда делаю выбор в пользу скриптового подхода, потому что он позволяет задавать параметры без графических ограничений, и с ним можно значительно ускорить работу — когда ты уже в этом разобрался.

Конечно, стоит учитывать, что все ETL-инструменты тяготеют к смешанному варианту работы, когда либо визуальный дополняется кодом, либо код дополняется визуальными. Но всё равно в ДНК системы может быть что-то одно. И если мы хотим получить хороший скриптовый ETL, нужно ответить на вопрос — каким он должен быть?

Если мы хотим, чтобы ETL был открытым, бесплатным и уже с экосистемой, значит инструмент должен быть на Python. Почему? Потому что, во-первых, Python — это простой язык, сейчас даже дети учатся программировать на Python чуть ли ни с первого класса. Например, в “Алгоритмике” начинают курс программирования именно с Python, а не с Basic или визуального языка Google. Так что подрастающее поколение разработчиков уже знакомо с ним. Во-вторых, огромная экосистема готовых технологий и библиотек уже создана: от каких-то банальных коннекторов до очень серьёзных вещей, связанных с Data Science и так далее. Можно начинать развиваться в этом направлении: здесь ограничений никаких нет.

Конечно, у Python есть и минусы. При столкновении с экосистемой “один на один” будет серьёзная кривая входа. Новичкам разбираться с темой оказывается достаточно сложно. Как минимум, нужно иметь компетенции по работе с Linux, и это для многих сразу становится стоп-фактором. Именно поэтому нам часто говорят: «Нет, мы хотим что-нибудь простое, готовое, с Python мы разбираться не готовы».

Решение = JupyterHub + PETL + Cronicle

Но поскольку во всём остальном готовый инструмент на Python получается хорош, для решения проблемы входа мы подобрали набор технологий, которые помогают упростить работу с системой. Это уже доказавшие свою эффективность зрелые open-source решения, которые можно запросто объединить и использовать:

JupyterHub — интерактивная среда выполнения Python-кода. По сути, это среда разработки, которая позволяет работать с кодом в интерактивном режиме. Она очень удобна для тех, кто не является профессиональным разработчиком, не накопил готовых навыков программирования на уровне спинномозговых рефлексов. JupyterHub помогает, когда ты разбираешься с кодом, пробуешь что-то новое, экспериментируешь.

Библиотека PETL была разработана на Python специально для обработки данных. Она берёт на себя огромное количество рутинных задач, например, разбор CSV файлов различных форматов или создание схемы в БД при выгрузке данных.

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

Чтобы всем этим было проще пользоваться, мы объединили три инструмента в ViXtract. Речь идет о сборке набора open-source технологий, которая позволяет легко установить решение одной командой и использовать ETL, не заморачиваясь по поводу Linux, по поводу прав, нюансов интеграций и других тонкостей.

Кроме трех основных, сборка включает в себя вспомогательные технические компоненты, такие как PostgreSQL для хранения обработанных данных и Nginx для организации веб-доступа. Кроме этого в дистрибутиве есть уроки и туториалы, в том числе, готовые примеры интеграций, с которых можно начать работу. В планах — добавить в пакет обучающие видеоролики, и я надеюсь, что вы тоже захотите подключиться к этому проекту, ведь ViXtract — это полностью открытый продукт, выпущенный под open-source лицензией.

И ещё несколько слов о самой оболочке

Давайте посмотрим на интерфейс нашего инструмента. На стартовой странице находятся кнопки запуска редактора, планировщика и переходы на полезные ресурсы — сайт, telegram-канал, сообщество и библиотека PETL. Это документация, в которой описаны все функции преобразования, загрузки файлов. Когда вы начинаете работать с ViXtract, эту страницу логично держать всё время под рукой. Сейчас документация на английском, но одно из направлений развития — это перевод всего набора информации на русский язык.

В ViXtract имеется сразу несколько ядер (aka настроенных окружений). Например, одно из них можно использовать для разработки, а другое — для продуктива. Таким образом, вы можете установить много различных библиотек в одном окружении, а для продуктива оставить только проверенные. Окружения можно легко добавлять и изменять, а если вам интересно узнать о самом процессе работы с данными через ViXTract, вы всегда можете задать вопрос в Telegram сообществе ViXtract.

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

В интерфейсе Jupyter можно сформулировать задачу на преобразование данных. Для этого мы просто создаем тетрадку (набор коротких блоков кода, которые можно запускать интерактивно) и загружаем при необходимости исходные файлы данных.

Загрузка данных

PETL поддерживает множество источников данных, мы рассмотрим несколько типовых примеров. Эти же примеры доступны в виде готовых тетрадок на GitHub или в установленном ViXtract, там их можно попробовать.

Загрузка из xlsx-файла

Использование открытых источников через API

Работа с базой данных

Данные из xlsx-файла

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Видим, что данные загрузились без ошибок, однако заголовки столбцов не определились, потому что в начале файла есть лишняя пустая строка. Исправим это, используя функцию skip и поместим результат в переменную olympics

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Теперь заголовки у столбцов корректные, однако не достаточно информативны, исправим это, задав заголовки вручную.

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

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

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Сохраним полученные результаты в новый xlsx-файл.

Готово! Теперь обработанный файл можно скачать или загрузить в BI-систему.

Данные из открытого источника рынка акций

Посмотрим, что мы получили в ответ. Мы увидим данные в формате JSON, которые нужно будет промотать до конца

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Используем column_names в качестве значения параметра header функции fromcolumns

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

В этом примере мы используем List comprehension, инструмент Python, который позволяет делать довольно сложные преобразования в наглядном функциональном стиле и без циклов.

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Сохраним полученную табличку в csv-файл.

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

Данные из БД (PostgreSQL)

В состав ViXtract входит предустановленная СУБД PostgreSQL, её удобно использовать как промежуточное хранилище данных, из которого их уже забирает BI-система. Похожие подходы могут быть использованы и с любой другой СУБД.

Рассмотрим следующий пример.
Доступны данные о состояниях различных типов транспортных средств. В базе есть 2 таблицы:

status_ts содержит информацию о состояниях различных ТС

ts_types содержит наименования типов ТС

Необходимо подготовить таблицу, содержащую валидные данные по бульдозерам:

В данных не должно быть пропусков

Время указано в формате datetime

Кроме данных по бульдозерам других нет

Все состояния, кроме отсутствия данных

Для каждого состояния рассчитана продолжительность

Чтобы исключить строки с пропусками, используем функцию select и определенный выше фильтр row_without_nones

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Объединим обе таблицы и выберем данные только по бульдозерам, сразу уберём строки с состоянием «Отсутствие данных».

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Проверим, что таблица создалась. Обратите внимание, что схема таблицы (типы полей, их названия и так далее) была создана полностью автоматически.

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Так мы не зря выбрали Python?

Я по-прежнему часто слышу мнение: “Python, вся эта экосистема — это ужас какой-то, это что-то необъятное!”. Но на самом деле для того, чтобы выгружать данные, требуется лишь небольшое подмножество этого Python, примерно такое же, как с любым другим ETL-инструментом. Когда вы разберетесь с теми функциями, которые действительно нужны, появляется возможность развиваться дальше, переходить к обработке больших данных, потому что все стеки Big Data уже имеют обёртки на Python — качественные, нативные и удобные. А те технологии, которые используются в ViXtract, применяются и для обработки больших данных, за исключением, может быть, PETL, который ориентирован на средние объёмы информации.

Кстати, продвинутая аналитика и Data Science тоже строятся на экосистеме Python. И если что-то было предварительно создано на Python, результаты можно легко передать разработчику уже для внедрения в продуктив. Другими словами, проведенная в ViXtract работа на Python может быть дальше использована в AirFlow для развития в Enterprise-системе. Возможно, разработчику нужно будет переписать код в соответствии со стандартами продуктива, но затраты на коммуникации уменьшаются на порядок.

В ходе нашего Beta-тестирования ViXtract аналитики начали сами решать задачи по загрузке данных из разных источников и их очистке. Раньше эти люди предпочитали написать задачу и отдать её разработчикам — мол, пусть готово будет через неделю, но зато без проблем. А сейчас они могут сами сделать все необходимое за полчаса. И мне хотелось бы, чтобы вы тоже оценили ViXtract, оставили свое мнение о нём, а может быть — подключились к разработке этого инструмента. Так что если вам тоже интересна эта тема, подписывайтесь на наш блог и подключайтесь к обсуждению.

Сайт ViXtract, на котором можно посмотреть видео-демонстрацию и попробовать ViXtract без установки на свой сервер

Источник

Введение в Data Engineering. ETL, схема «звезды» и Airflow

Способность data scientist-а извлекать ценность из данных тесно связана с тем, насколько развита инфраструктура хранения и обработки данных в компании. Это значит, что аналитик должен не только уметь строить модели, но и обладать достаточными навыками в области data engineering, чтобы соответствовать потребностям компании и браться за все более амбициозные проекты.

При этом, несмотря на всю важность, образование в сфере data engineering продолжает оставаться весьма ограниченным. Мне повезло, поскольку я успел поработать со многими инженерами, которые терпеливо объясняли мне каждый аспект работы с данными, но не все обладают такой возможностью. Именно поэтому я решил написать эту статью — введение в data engineering, в которой я расскажу о том, что такое ETL, разнице между SQL- и JVM-ориентированными ETL, нормализации и партиционировании данных и, наконец, рассмотрим пример запроса в Airflow.

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Data Engineering

Maxime Beauchemin, один из разработчиков Airflow, так охарактеризовал data engineering: «Это область, которую можно рассматривать как смесь бизнес-аналитики и баз данных, которая привносит больше элементов программирования. Эта сфера включает в себя специализацию по работе с распределенными системами больших данных, расширенной экосистемой Hadoop и масштабируемыми вычислениями».

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

ETL: Extract, Transform, Load

Extract, Transform и Load — это 3 концептуально важных шага, определяющих, каким образом устроены большинство современных пайплайнов данных. На сегодняшний день это базовая модель того, как сырые данные сделать готовыми для анализа.

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Extract. Это шаг, на котором датчики принимают на вход данные из различных источников (логов пользователей, копии реляционной БД, внешнего набора данных и т.д.), а затем передают их дальше для последующих преобразований.

Transform. Это «сердце» любого ETL, этап, когда мы применяем бизнес-логику и делаем фильтрацию, группировку и агрегирование, чтобы преобразовать сырые данные в готовый к анализу датасет. Эта процедура требует понимания бизнес задач и наличия базовых знаний в области.

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

Какой ETL-фреймворк выбрать?

В мире batch-обработки данных есть несколько платформ с открытым исходным кодом, с которыми можно попробовать поиграть. Некоторые из них: Azkaban — open-source воркфлоу менеджер от Linkedin, особенностью которого является облегченное управление зависимостями в Hadoop, Luigi — фреймворк от Spotify, базирующийся на Python и Airflow, который также основан на Python, от Airbnb.

У каждой платформы есть свои плюсы и минусы, многие эксперты пытаются их сравнивать (смотрите тут и тут). Выбирая тот или иной фреймворк, важно учитывать следующие характеристики:

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Конфигурация. ETL-ы по своей природе довольно сложны, поэтому важно, как именно пользователь фреймворка будет их конструировать. Основан ли он на пользовательском интерфейсе или же запросы создаются на каком-либо языке программирования? Сегодня все большую популярность набирает именно второй способ, поскольку программирование пайплайнов делает их более гибкими, позволяя изменять любую деталь.

Мониторинг ошибок и оповещения. Объемные и долгие batch запросы рано или поздно падают с ошибкой, даже если в самой джобе багов нет. Как следствие, мониторинг и оповещения об ошибках выходят на первый план. Насколько хорошо фреймворк визуализирует прогресс запроса? Приходят ли оповещения вовремя?

Обратное заполнение данных (backfilling). Часто после построения готового пайплайна нам требуется вернуться назад и заново обработать исторические данных. В идеале нам бы не хотелось строить две независимые джобы: одну для обратного а исторических данных, а вторую для текущей деятельности. Насколько легко осуществлять backfilling c помощью данного фреймворка? Масштабируемо и эффективно ли полученное решение?

2 парадигмы: SQL против JVM

Как мы выяснили, у компаний есть огромный выбор того, какие инструменты использовать для ETL, и для начинающего data scientist-а не всегда понятно, какому именно фреймворку посвятить время. Это как раз про меня: в Washington Post Labs очередность джобов осуществлялась примитивно, с помощью Cron, в Twitter ETL джобы строились в Pig, а сейчас в Airbnb мы пишем пайплайны в Hive через Airflow. Поэтому перед тем, как пойти в ту или иную компанию, постарайтесь узнать, как именно организованы ETL в них. Упрощенно, можно выделить две основные парадигмы: SQL и JVM-ориентированные ETL.

JVM-ориентированные ETL обычно написаны на JVM-ориентированном языке (Java или Scala). Построение пайплайнов данных на таких языках означает задавать преобразования данных через пары «ключ-значение», однако писать пользовательские функции и тестировать джобы становится легче, поскольку не требуется использовать для этого другой язык программирования. Эта парадигма весьма популярна среди инженеров.

SQL-ориентированные ETL чаще всего пишутся на SQL, Presto или Hive. В них почти все крутится вокруг SQL и таблиц, что весьма удобно. В то же время написание пользовательских функций может быть проблематично, поскольку требует использования другого языка (к примеру, Java или Python). Такой подход популярен среди data scientist-ов.

Поработав с обеими парадигмами, я все-таки предпочитаю SQL-ориентированные ETL, поскольку, будучи начинающим data scientist-ом, намного легче выучить SQL, чем Java или Scala (если, конечно, вы еще с ними не знакомы) и сконцентрироваться на изучении новых практик, чем накладывать это поверх изучения нового языка.

Моделирование данных, нормализация и схема «звезды»

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

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

С другой стороны, гораздо легче писать запросы к денормализованным таблицам, поскольку все измерения и метрики уже соединены. Однако, учитывая больший размер таблиц, обработка данных становится медленнее (“Тут можно поспорить, ведь все зависит от того, как хранятся данные и какие запросы бывают. Можно, к примеру, хранить большие таблицы в Hbase и обращаться к отдельным колонкам, тогда запросы будут быстрыми” — прим. пер.).

Среди всех моделей данных, которые пытаются найти идеальный баланс между двумя подходами, одной из наиболее популярных (мы используем ее в Airbnb) является схема «звезды». Данная схема основана на построении нормализованных таблиц (таблиц фактов и таблиц измерений), из которых, в случае чего, могут быть получены денормализованные таблицы. В результате такой дизайн пытается найти баланс между легкостью аналитики и сложностью поддержки ETL.

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Таблицы фактов и таблицы измерений

Чтобы лучше понять, как строить денормализованные таблицы из таблиц фактов и таблиц измерений, обсудим роли каждой из них:

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

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

Ниже представлен простой пример того, как таблицы фактов и таблицы измерений (нормализованные) могут быть соединены, чтобы ответить на простой вопрос: сколько бронирований было сделано за последнюю неделю по каждому из рынков?

Партиционирование данных по временной метке

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

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

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

Обратное заполнение (backfilling) исторических данных

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

Backfilling настолько распространен, что в Hive есть встроенная возможность динамического партиционирования, чтобы выполнять одни и те же SQL запросы по нескольким партициям сразу. Проиллюстрируем эту идею на примере: пусть требуется заполнить количество бронирований по каждому рынку для дашборда, начиная с earliest_ds и заканчивая latest_ds. Одно из возможных решений выглядит примерно так:

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

Отметим, что мы добавили ds в SELECT и GROUP BY выражения, расширили диапазон в операции WHERE и изменили синтаксис с PARTITION (ds= ‘<>’) на PARTITION (ds). Вся прелесть динамического партиционирования в том, что мы обернули GROUP BY ds вокруг необходимых операций, чтобы вставить результаты запроса во все партиции в один заход. Такой подход очень эффективен и используется во многих пайплайнах в Airbnb.

Теперь, рассмотрим все изученные концепции на примере ETL джобы в Airflow.

Направленный ациклический граф (DAG)

Казалось бы, с точки зрения идеи ETL джобы очень просты, однако на деле они часто очень запутаны и состоят из множества комбинаций Extract, Transform и Load операций. В этом случае очень полезно бывает визуализировать весь поток данных, используя граф, в котором узел отображает операцию, а стрелка — взаимосвязь между операциями. Учитывая, что каждая операция выполняется единожды, а данные идут дальше по графу, то он является направленным и ациклическим, отсюда и название.

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Одна из особенностей интерфейса Airflow — это наличие механизма, который позволяет визуализировать пайплайн данных через DAG. Автор пайплайна должен задать взаимосвязи между операциями, чтобы Airflow записал спецификацию ETL джоба в отдельный файл.

При этом помимо DAG-ов, которые определяют порядок запуска операций, в Airflow есть операторы, которые задают, что необходимо выполнить в рамках пайплайна. Обычно есть 3 вида операторов, каждый из которых имитирует один из этапов ETL-процесса:

Простой пример

Ниже представлен простой пример того, как объявить DAG-файл и определить структуру графа, используя операторы в Airflow, которые мы обсудили выше:

Когда граф будет построен, можно увидеть следующую картинку:

universalnotificationplatform 001 etl что это. Смотреть фото universalnotificationplatform 001 etl что это. Смотреть картинку universalnotificationplatform 001 etl что это. Картинка про universalnotificationplatform 001 etl что это. Фото universalnotificationplatform 001 etl что это

Итак, надеюсь, что в данной статье мне удалось максимально быстро и эффективно погрузить вас в интересную и многообразную сферу — Data Engineering. Мы изучили, что такое ETL, преимущества и недостатки различных ETL-платформ. Затем обсудили моделирование данных и схему «звезды», в частности, а также рассмотрели отличия таблиц фактов от таблиц измерений. Наконец, рассмотрев такие концепции как партиционирование данных и backfilling, мы перешли к примеру небольшого ETL джоба в Airflow. Теперь вы можете самостоятельно изучать работу с данными, наращивая багаж своих знаний. Еще увидимся!

Роберт отмечает недостаточное количество программ по data engineering в мире, однако мы таковую проводим, и уже не в первый раз. В октябре у нас стартует Data Engineer 3.0, регистрируйтесь и расширяйте свои профессиональные возможности!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *