Митап Tinkoff DWH Connect

  Рет қаралды 3,539

IT и т.д.

IT и т.д.

Ай бұрын

О чем будем говорить:
🟡 «Рабочий стол» системного аналитика DWH, Анна Мавлютова, руководитель направления распределенного управления данными
Расскажем, как выглядит работа системного аналитика DWH в Тинькофф: с какими задачами нам приходится сталкиваться каждый день и какие инструменты помогают их решать. Посмотрим, каких подходов мы придерживаемся при построении модели и что наиболее ценно. Наглядно рассмотрим несложную задачу и возможные пути ее решения.
🟡 Процесс разработки ETL в Тинькофф, Федор Белоусов, ведущий инженер данных
Проследим путь ETL-задачи от постановки бизнес-требования на витрину данных до появления соответствующих регламентно обновляемых объектов в DWH. Сделаем фокус на процессе разработки, на ETL-инструменте и на сервисах вокруг них, которые призваны оптимизировать работу ETL и поставку ценности в целом.
🟡 Chimera, Арсений Бирюков, архитектор Тинькофф
В Тинькофф мы разработали собственный инструмент для управления изменениями хранилища данных и назвали его Chimera. Зачем? Почему? Как мы дошли до такого варианта? Почему нам не подошли готовые решения? И вообще, что это такое - «управление изменениями хранилища данных»? Ответим на все эти вопросы и рассказать, как Chimera помогает команде ETL-инженеров совместно разрабатывать хранилище и ничего при этом не ломать.
_________________________________________________________________
Дайджесты, статьи и анонсы митапов: t.me/itstinkoff
Группа IT's Tinkoff Вконтакте: itstinkoff
Блог на Хабре: l.tinkoff.ru/habr-tinkoff
Наши вакансии: l.tinkoff.ru/its-career
#dwh #тинькофф

Пікірлер: 20
@Roman_marusyak
@Roman_marusyak Ай бұрын
Химера и Арсений просто огонь!!!
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: есть ли релизный дни, например раз в неделю/две или вывод витрин на прод возможен в любой день? какие этапы согласования проходит задача перед выводом витрины на прод? Ответ: Релиз происходит еженедельно с понедельника по четверг (4 раза в неделю) в рабочее время. Исключения - если есть праздничные дни либо ведутся восстановительные работы после сбоя, если такое вдруг случилось. Иначе, общее правило, релиз проходит, если процессы сейчас стабильны и завтра не выходной. Этапы согласования: таковыми являются успешно пройденные ревью анализа и ревью разработки более опытным коллегой. Иных согласований нет. Релиз возможен на следующий день после перевода задачи в статус Ready to Release.
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: How do you measure tables that are barely used but occupy space within DWH infra? If so, how often? Also, what's the evaluation time for determining a "non-used" table? Ответ: Мы используем в Greenplum, а дальше планируем раскатывать и на другие системы, такой элемент как Consumer. Это усовершенствованная модель, основанная на Ресурсных группах. Consumer содержит в себе квотирование по всем видам ресурсов на группу пользователей, в том числе таблицы, которые им необходимы для аналитики. Если объект новый или используется в ETL, он попадает в технический Consumer. В других случаях пользователи добавляют таблицы в свои собственные Consumer. Если объект не состоит ни в одном Consumer-е, то через пару недель он удаляется за ненадобностью никому.
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: Добрый день. Подскажите - хранится ли в хранилище техническая история объектов? если да, то в каком слое? Ответ: В большинстве кейсов храним техническую историю именно в детальном слое (и DataVault слой, и DDS). Такая история применима для объектов Измерений. Для Фактов обычно не имеет смысла. История может быть как подневная (идет фиксацией датой загрузки), так и внутридневной (это больше можно назвать бизнесовой). В объектах выше детального слоя история хранится, только если это было условием для создания витрины.
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: сколько витрин в каждом продукте? Ответ: Если вести речь только про презентационные витрины в слое EMART, то их немного до 3 витрин на один продукт. Если говорить про размеры MART-слоев, то в одном слое в среднем около 20-25 таблиц. Таких слое несколько десятков.
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: Видно только технические контроли, бизнес-проверки можно сделать? Межвитринные проверки? Ответ: Все, что касается последнего показанного инструмента DQ Tools в конце первого доклада, это про бизнес-проверки в первую очередь. Инструмент предоставляет python-библиотеку, через готовые функции которого в пару строк можно поднять большинство проверок.
@IT_i_td
@IT_i_td Ай бұрын
Отвечаем на вопросы из чата. Вопрос: Кастом витрины - это физические таблицы или вьюхи? Ответ: В большинстве случаев это именно физические таблицы. Для их построения собирается немаленькая логика на большом числе таблиц. В детальном слое мы выставляем более строгие требования к тому, какие операции и связи таблиц разрешены. Здесь задача именно собрать сущности. В Custom-слоях большинство ограничений снимается, и можно уже собрать любые агрегаты.
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: До таблицы в учетной системе можно спуститься? Есть какие-то S2T? Ответ: Источник является зоной ответственности его владельца. Базы в большинстве кейсов боевые, поэтому имеют высокие требования по доступам и критичности. В большинстве кейсов доступа туда нет. Есть размеченный владелец, к которому можно в любой момент времени обратиться. Маппинг, как правило, или 1 в 1 (для BatchOds), или лежит на стороне источника - тут мы оперируем задокументированной avro-схемой.
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: Используете ли Greenplum ? Ответ: Да. Сейчас является основным инструментом для аналитики. Но он далеко не единственный, где храним и обрабатываем данные.
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: Как подключить Debezium к кафке? Ответ: Debezium выступает больше аналогом нашего BatchODS, отличаются внутренним устройством - BatchODS написан нами. Вопрос вероятно возник в контексте упоминания SDP - Streaming Data Platform. Тут можно ответить в общем формате: это собственная разработка, от и до. На входе топик Kafka, cообщения в avro-формате, через использование Schema Registry. На выходе наш движок читает сообщения, и раскладывает в реляционный формат.
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: А как живёт созданная нода? 24/7 пока её не убьют руками или пока не закроется задача? Среды для разработки существуют 24/7 все время пока идет разработка задачи. В принципе их можно удалять и создавать заново без потери изменений, поскольку изменения сохраняются (в git или в файлах пакета), но это просто неудобно. Тестовые среды создаются заново перед каждым запуском тестов, которым они нужны. Опять же, их можно было бы удалять сразу же после окончания теста, но мы оставляем их, чтобы пользователи могли разобраться почему тесты упали.
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: Кто занимается автоматизацией скриптов / отладкой etl и т.д , дата инженеры или аналитики? Ответ: Занимаются все. Бэклог "хотелок" на автоматизацию есть всегда, его наполняют все участники процесса. Делают задачи и аналитики, и разработчики как доп активность в рабочее время между основными задачами, у кого есть просто желание, есть навыки, или хочет больше прокачаться в python-е.
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: Sorry, I can't write in Russian properly. Do you have any reporting tool for Stream data? i.e. close to Real-Time reports/fraud detection tools? Ответ: Есть инструменты для мониторинга процессов, Здоровье систем. Это техническая достаточно история, инструменты одинаковые для всего Тинькофф. Есть визуализаторы процессов в онлайне - process mining. Раньше пользовались Celonis, сейчас используем похожий инструмент собственной разработки. И Федор рассказывал про ETL-инструмент Unicorn. Наш собственный фреймворк для стриминговой обработки данных. Но это больше про процесс на основе данных, а не отчетность.
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: как вы решаете задачу маппинга одной сущности в разных системах-источниках? Поподробнее пожалуйста)) клиенты/транзакции Ответ: Если вопрос касательно схлопывания одного экземпляра из разных систем, то здесь чаще всего все просто: в компании принято везде заводить Интеграционные идентификаторы, через которые системы общаются между собой. На основе интеграционного ID всегда можно легко выйти на нужный экземпляр. Если вопрос был больше про наличие сущностей в нескольких системах, то собственно при разных интеграционных ID собирается новый экземпляр. Генерация ключа из значений родного id + код системы.
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: распределяется ли опыт между членами команды на функциональном уровне, или для конкретных технологий есть конкретные эксперты, которые делятся между командами? Ответ: Как упоминал Федор в докладе - мы стараемся не замыкать функции внутри центральных дата-команд, а распределять экспертизу по всем продуктам, где это необходимо. Поэтому в каждую технологию создаём и стараемся поддерживать актуальной возможность быстрого погружения в технологию для любого инженера продуктовых команд. Для того же NiFi есть отдельный трёхдневный курс молодого бойца, который может пройти любой желающий инженер данных.
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: не был представлен инструмент Оркестратор. Ответ: Планировщик для всех ETL процессов также является собственной разработкой. Достаточно технический продукт, решили не показывать. Не все аналитики, и даже разработчики, сильно погружаются обычно. Планировщик есть основной, который запускается каждую ночь в 00 00. Есть ручные задания. Планировщик собирает все объекты, которые необходимо построить, всех видов и со всех кластеров, выстраивает последовательность запуска, и по мере получения события запускает следующее. Многие объекты строятся параллельно. У планировщика есть свой интерфейс, где можно посмотреть настройки объекты, статус построения последних запущенных, настроить бизнес-задания.
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: Что если под собранную среду понадобились дополнительные таблицы? Ответ: Это очень распространенная ситуация, поэтому мы разрешаем в любой момент вручную добавлять в собранную среду дополнительные таблицы и ETL-процессы. Кроме того, мы позволяем сбрасывать изменения в таблицах, на случай если разработчик что-то испортит или просто захочет убрать добавившиеся строки из таблиц-приемников.
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: На каком языке ведете разработку инструментов? Python ? Ответ: Наша ETL-платформа, которая разрабатывает инструменты для наших инженеров - уже настолько масштабная (десятки инструментов), что не ограничивается одним-двумя языками. Язык стараемся подбирать под конкретную технологию. Что касается ETL-инструментов, то: Apache Airflow - это Python, Apache Flink - Java+Scala, Apache NiFi - в основном Java. Что касается остальных инструментов для инженеров и пользователей хранилища: в основном используется Python, но есть и более специализированные сервисы на Go и, например, JavaScript.
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: Не совсем понял, у вас аналитик решает как с источника загрузить данные в реплику (стейджинг)? Ответ: Да, все так. У загрузки данных с источника есть много нюансов: разобраться, как данные лежат на источнике, какие есть особенности, выбрать инструмент, который даст win-win с тз удобства двум сторонам и оптимальности процессов, убедиться, что схема составлена верно, формат схемы не повлияет на качество данных.
@IT_i_td
@IT_i_td Ай бұрын
Вопрос: Как у вас организованно регрессионное тестирование изменений, вносимых из множества изолированных сред? Ответ: Действительно, каждый разработчик разрабатывает и тестирует только свой кусок изменений в своей пробирке и убеждается, что изменения в его процессах и данных ожидаемы и соответствуют задаче. У нас есть автоматика, которая следит и предупреждает пользователей, если они дорабатывают одни и те же объекты, либо если их доработки влияют друг на друга. Таким образом проблему отсутствия влияния изменений в рамках задач друг на друга мы пока решаем процессным образом - связываем и блокируем задачи, нотифицируем аналитиков и разработчиков о пересечениях. Это действительно не самый надёжный подход, поэтому в ближайшем будущем у нас появится отдельный пред-продакшен контур со своим регламентом, на который будут выкатываться и тестироваться изменения.
Системный аналитик: что это за профессия?
10:07
IT-компания Lad
Рет қаралды 64 М.
[Vowel]물고기는 물에서 살아야 해🐟🤣Fish have to live in the water #funny
00:53
Teenagers Show Kindness by Repairing Grandmother's Old Fence #shorts
00:37
Fabiosa Best Lifehacks
Рет қаралды 42 МЛН
Мой опыт работы аналитиком данных. Реальные задачи
10:30
Аналитика и growth mind-set
Рет қаралды 26 М.
Про Kafka (основы)
49:23
Владимир Богдановский
Рет қаралды 350 М.
Дарья Глубокая,Tinkoff Bank - Эволюция DWH Тинькофф
22:44
Матемаркетинг
Рет қаралды 3,4 М.
ROADMAP / DATA ENGINEER
8:59
loftblog
Рет қаралды 26 М.
Открытое собеседование Tinkoff DWH Connect
1:33:46
Купите ЭТОТ БЮДЖЕТНИК вместо флагманов от Samsung, Xiaomi и Apple!
13:03
Thebox - о технике и гаджетах
Рет қаралды 82 М.
phone charge game #viral #tranding #new #reels
0:18
YODHA GAMING RAAS
Рет қаралды 12 МЛН
Apple, как вас уделал Тюменский бренд CaseGuru? Конец удивил #caseguru #кейсгуру #наушники
0:54
CaseGuru / Наушники / Пылесосы / Смарт-часы /
Рет қаралды 4,1 МЛН
Пленка или защитное стекло: что лучше?
0:52
Слава 100пудово!
Рет қаралды 2 МЛН
Introducing the all-new iPad Pro | Apple
1:29
Apple
Рет қаралды 37 МЛН