Как стать автором
Обновить
111.62

Data Engineering *

Обсуждаем вопросы сбора и подготовки данных

Сначала показывать
Порог рейтинга

Когда строишь потоки обработки в Apache Nifi в основном требуется результат записать в базу данных. Бывают случаи, когда запись в целевую таблицу не проходит по причине несоответствия данных в записи и полей в таблице. Это возникает в случае, если на источнике размер поля увеличился, либо изменился порядок знаков после занятой, либо вы ожидаете "uniqueidentifier" а приходит пустая строка.

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

Для этого предлагаю скрипт для ScriptedTransformRecord, позволяющий разобрать запись на массив записей, каждая из которых содержит только одно значение, остальные проставляются "null".

results = []

fields = record.getRawFieldNames()
schema = record.getSchema()
fields.each{key -> {
    log.debug("Got key: ${key}")
    nMap = new java.util.HashMap<String, Object>()
    log.debug("create map")
    nMap.put(key,record.getValue(key))
    log.debug("Put to map value")
    newrecord = new org.apache.nifi.serialization.record.MapRecord(schema, nMap)
    log.debug("Сreate new record with field ${key}")
    results.add(newrecord)
}}

results

Полезные ссылки:

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Хабр, привет!

Хотим напомнить, что сегодня в 11:00 МСК у нас пройдет вебинар «Управление базами данных в Greenplum: мониторинг и удаление мусора». Расскажем, как правильно собирать и удалять мусор в реляционных СУБД вообще и в Greenplum в частности.

?‍? Спикеры:

Алексей Пономаревский, ведущий администратор БД ITSumma
Иван Хозяинов, руководитель направления больших данных ITSumma

? О чём:

Вакуумирование данных и для чего оно нужно
Инструменты и специфика вакуумирования в Greenplum
Мониторинг раздутых таблиц и стратегии вакуумирования
Решения и практики, которые минимизируют возможные проблемы

Регистрация: https://clck.ru/38NWH7

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Переварил и делюсь ключевыми идеями Tristan Handy (CEO dbtLabs) о новом опыте работы с dbt

(выпуск My first week with the new dbt, рассылка Analytics Engineering Roundup)

Старт разработки без головной боли

Это замечательно и то, что нужно. Фокус аналитика - на создании аналитических приложений, а не на борьбу с зависимостями, version upgrades и поиск error codes на stackoverflow. Чем больше чистого времени у аналитика, тем больше результатов можно получить.

Я уже давно использую devcontainers и даже писал об этом для тех же целей - это бесплатно и не требует иметь лицензию dbtCloud.

Auto-deferral

Я давно использую defer в рамках CI tests (= прогон и тесты только изменяемых graph nodes). Теперь, в рамках dev это ускоряет процессы разрабтки на порядок.

Жаль, что удобно использовать это можно пока только в dbtCloud.

Из связанного, на ум сразу приходит фича Snowflake zero-copy clone.

Data Mesh

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

Называйте это Microservices в Data.

Задействованы и технические аспекты (как это реализовать) и организационные (кто владеет ownership).

Это скорее релевантно крупным компаниям, в которых как минимум несколько отделов-ветвей заинтересованы в data services, у них есть свои ресурсы на разработку и устоявшиеся правила. По моим оценкам, доля таких компаний среди пользователей dbt пока не очень велика. Но это тренд!

Теги:
Рейтинг0
Комментарии0

❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_10

?Вопрос_10: Что такок Tarantool и как он устроен ? (Часть_2)

  1. Replication: Tarantool предлагает механизм репликации, который позволяет создавать реплики базы данных для обеспечения отказоустойчивости и масштабируемости. Репликация Tarantool основана на механизме репликации мастер-слейв (master-slave) и поддерживает асинхронное и синхронное реплицирование.

  2. Sharding: Tarantool поддерживает горизонтальное масштабирование с помощью шардинга данных. Шардинг позволяет распределить данные по нескольким узлам-серверам, что позволяет обрабатывать большие объемы данных и повышает производительность.

  3. Индексы: Tarantool предоставляет различные типы индексов для оптимизации запросов и обеспечения быстрого доступа к данным. Включая хеш-индексы, деревья и индексы, основанные на отсортированных списках.

    t.me/DenoiseLAB (Еесли вы хотите быть в курсе всех последних новостей и знаний в области анализа данных);

Теги:
Рейтинг0
Комментарии0

❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_3

?Вопрос_3: Что такое преобразование Бокса-Кокса?

Преобразование Бокса-Кокса (Box-Cox transformation) - это преобразование, которое преобразует "ненормальные" зависимые переменные в нормальные переменные, так как нормальность является наиболее распространенным предположением при использовании многих статистических методов. Оно было предложено Георгом Боксом и Дэвидом Коксом в 1964 году.

Преображование Бокса-Кокса (Общий вид)
Преображование Бокса-Кокса (Общий вид)

Оно имеет параметр лямбда, который при значении "0" означает, что это преобразование эквивалентно лог-трансформации. Оно используется для стабилизации дисперсии, а также для нормализации распределения. Выбор оптимального значения параметра (лямбда) при использовании преобразования Бокса-Кокса может быть выполнен с использованием различных методов:

  1. Метод максимального правдоподобия: В этом подходе подбирается значение (лямбда), которое максимизирует правдоподобие модели. Это можно сделать с помощью численных методов оптимизации, таких как метод Ньютона-Рафсона или метод Брента;

  2. Критерии информационного критерия: можно использовать информационные критерии, такие как критерий Акаике (AIC) или критерий Шварца (BIC);

  3. Кросс-валидация: При этом данные разбиваются на обучающую и проверочную выборки, и производится оценка преобразования Бокса-Кокса для различных значений (лямбда) на обучающей выборке. Затем оцениваются результаты на проверочной выборке и выбирается лучшее значение.

    https://t.me/DenoiseLAB

Теги:
Рейтинг0
Комментарии0

❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_2

?Вопрос_2: Объясните, что такое One-hot encoding и Label Encoding. Как они влияют на размерность заданного набора данных ?

✔️Ответ:

One-hot encoding - это представление категориальных переменных в виде двоичных векторов, при котором каждая уникальная категория переменной преобразуется в новый бинарный столбец, называемый "фиктивной переменной". В этом новом столбце значение 1 указывает на принадлежность к соответствующей категории, а значение 0 - на принадлежность к другим категориям. Таким образом, каждая уникальная категория представлена отдельным столбцом. Это позволяет алгоритмам машинного обучения интерпретировать категориальные значения и использовать их в расчетах. Не создает ложного упорядочения или отношения между значениями категориальных переменных и помогает избежать проблемы ложной корреляции между категориями переменных. Однако, использование one-hot encoding увеличивает размерность набора данных ("проклятие размерности").

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

#work #coding #testing #optimization #ml #learning

Телеграмм: https://t.me/DenoiseLAB

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_1

?Вопрос_1: Чем ковариация и корреляция отличаются друг от друга?

✔️Ответ:

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

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

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

Корреляция, с другой стороны, учитывает не только направление, но и силу отношения между двумя переменными. Коэффициент корреляции может принимать значения от -1 до 1. Значение +1 для корреляции означает, что две переменные имеют прямую связь и полностью коррелируют. Значение -1 для корреляции означает, что две переменные находятся в обратной пропорциональной связи. Значение 0 для корреляции означает, что между двумя переменными нет связи.

#work #coding #testing #optimization #ml #learning

Телеграмм: https://t.me/DenoiseLAB

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

Online dbt meetup - нас больше и доклады всё интереснее

Привет. Рады сообщить, что наконец мы набрались сил и докладов и готовы поделиться ими с вами :)

Митапы пройдут 20 июля в 19:00 (GMT+3) и 27 июля в 19:00 (GMT+3).

Программа 20 июля, 19:00:

  1. Оркестрация dbt jobs для Dev, Test, Prod без головной боли – Артемий Козырь, Analytics Engineer at Wheely

  2. Modern Data Stack, а стоит ли игра свеч? – Nik B, ex-Senior Data Engineer at NabuMinds

  3. Описание метрик в dbt – Венера Насырова, BI Analyst at Space307

  4. CI/CD и оркестрация онпрем когда адаптеров много – Станислав Лысиков, Data Platform Engineer at Space307

Программа 27 июля, 19:00:

  1. DataVault в GreenPlum на основе автоматизированного создания dbt-моделей – Дмитрий Тирских, Data Engineer at X5 Digital

  2. Любовь и восторг: как мигрировать 40+ DS/PA на dbt – Алмаз, Data Engineer at Picsart

  3. Автоматическое создание exposures в dbt – Кирилл Романихин, Data Engineer at Space307

  4. Автоматизация вокруг dbt (чего не хватает в коробке) – Станислав Лысиков, Data Platform Engineer at Space307

Подробности о докладах и регистрация на митапы по ссылке: https://cutt.ly/bwi8covj

Важно! На каждый митап нужно регистрироваться отдельно.

Рейтинг0
Комментарии0
2