Разработчик etl: ETL-системы для анализа больших данных
Введение в Data Engineering. ETL, схема «звезды» и Airflow / Блог компании New Professions Lab / Хабр
Способность data scientist-а извлекать ценность из данных тесно связана с тем, насколько развита инфраструктура хранения и обработки данных в компании. Это значит, что аналитик должен не только уметь строить модели, но и обладать достаточными навыками в области data engineering, чтобы соответствовать потребностям компании и браться за все более амбициозные проекты.
При этом, несмотря на всю важность, образование в сфере data engineering продолжает оставаться весьма ограниченным. Мне повезло, поскольку я успел поработать со многими инженерами, которые терпеливо объясняли мне каждый аспект работы с данными, но не все обладают такой возможностью. Именно поэтому я решил написать эту статью — введение в data engineering, в которой я расскажу о том, что такое ETL, разнице между SQL- и JVM-ориентированными ETL, нормализации и партиционировании данных и, наконец, рассмотрим пример запроса в Airflow.
Data Engineering
Maxime Beauchemin, один из разработчиков Airflow, так охарактеризовал data engineering: «Это область, которую можно рассматривать как смесь бизнес-аналитики и баз данных, которая привносит больше элементов программирования. Эта сфера включает в себя специализацию по работе с распределенными системами больших данных, расширенной экосистемой Hadoop и масштабируемыми вычислениями».
Среди множества навыков инженера данных можно выделить один, который является наиболее важным — способность разрабатывать, строить и поддерживать хранилища данных. Отсутствие качественной инфраструктуры хранения данных приводит к тому, что любая активность, связанная с анализом данных, либо слишком дорога, либо немасштабируема.
ETL: Extract, Transform, Load
Extract, Transform и Load — это 3 концептуально важных шага, определяющих, каким образом устроены большинство современных пайплайнов данных. На сегодняшний день это базовая модель того, как сырые данные сделать готовыми для анализа.
Extract. Это шаг, на котором датчики принимают на вход данные из различных источников (логов пользователей, копии реляционной БД, внешнего набора данных и т.д.), а затем передают их дальше для последующих преобразований.
Transform. Это «сердце» любого ETL, этап, когда мы применяем бизнес-логику и делаем фильтрацию, группировку и агрегирование, чтобы преобразовать сырые данные в готовый к анализу датасет. Эта процедура требует понимания бизнес задач и наличия базовых знаний в области.
Load. Наконец, мы загружаем обработанные данные и отправляем их в место конечного использования. Полученный набор данных может быть использован конечными пользователями, а может являться входным потоком к еще одному ETL.
Какой ETL-фреймворк выбрать?
В мире batch-обработки данных есть несколько платформ с открытым исходным кодом, с которыми можно попробовать поиграть. Некоторые из них: Azkaban — open-source воркфлоу менеджер от Linkedin, особенностью которого является облегченное управление зависимостями в Hadoop, Luigi — фреймворк от Spotify, базирующийся на Python и Airflow, который также основан на Python, от Airbnb.
У каждой платформы есть свои плюсы и минусы, многие эксперты пытаются их сравнивать (смотрите тут и тут). Выбирая тот или иной фреймворк, важно учитывать следующие характеристики:
Конфигурация. 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.
Таблицы фактов и таблицы измерений
Чтобы лучше понять, как строить денормализованные таблицы из таблиц фактов и таблиц измерений, обсудим роли каждой из них:
Таблицы фактов чаще всего содержат транзакционные данные в определенные моменты времени. Каждая строка в таблице может быть чрезвычайно простой и чаще всего является одной транзакцией. У нас в Airbnb есть множество таблиц фактов, которые хранят данные по типу транзакций: бронирования, оформления заказов, отмены и т.д.
Таблицы измерений содержат медленно меняющиеся атрибуты определенных ключей из таблицы фактов, и их можно соединить с ней по этим ключам. Сами атрибуты могут быть организованы в рамках иерархической структуры. В Airbnb, к примеру, есть таблицы измерений с пользователями, заказами и рынками, которые помогают нам детально анализировать данные.
Ниже представлен простой пример того, как таблицы фактов и таблицы измерений (нормализованные) могут быть соединены, чтобы ответить на простой вопрос: сколько бронирований было сделано за последнюю неделю по каждому из рынков?
SELECT
b.dim_market
, SUM(a.m_bookings) AS m_bookings
FROM (
SELECT
id_listing
, 1 AS m_bookings
, m_a # not used (for illustration only)
, m_b # not used (for illustration only)
, m_c # not used (for illustration only)
FROM
fct_bookings
WHERE
ds BETWEEN '{{ last_sunday }}' AND '{{ this_saturday }}'
) a
JOIN (
SELECT
id_listing
, dim_market
, dim_x # not used (for illustration only)
, dim_y # not used (for illustration only)
, dim_z # not used (for illustration only)
FROM
dim_listings
WHERE
ds BETWEEN '{{ latest_ds }}'
) b
ON (a.id_listing = b.id_listing)
GROUP BY
b.dim_market
;
Партиционирование данных по временной метке
Сейчас, когда стоимость хранения данных очень мала, компании могут себе позволить хранить исторические данные в своих хранилищах, вместо того, чтобы выбрасывать. Обратная сторона такого тренда в том, что с накоплением количества данных аналитические запросы становятся неэффективными и медленными. Наряду с такими принципами SQL как «фильтровать данные чаще и раньше» и «использовать только те поля, которые нужны», можно выделить еще один, позволяющий увеличить эффективность запросов: партиционирование данных.
Основная идея партиционирования весьма проста — вместо того, чтобы хранить данные одним куском, разделим их на несколько независимых частей. Все части сохраняют первичный ключ из исходного куска, поэтому получить доступ к любым данным можно достаточно быстро.
В частности, использование временной метки в качестве ключа, по которому проходит партиционирование, имеет ряд преимуществ. Во-первых, в хранилищах типа S3 сырые данные часто сортированы по временной метке и хранятся в директориях, также отмеченных метками. Во-вторых, обычно batch-ETL джоб проходит примерно за один день, то есть новые партиции данных создаются каждый день для каждого джоба. Наконец, многие аналитические запросы включают в себя подсчет количества событий, произошедших за определенный временной промежуток, поэтому партиционирование по времени здесь очень кстати.
Обратное заполнение (backfilling) исторических данных
Еще одно важное преимущество использования временной метки в качестве ключа партиционирования — легкость обратного заполнения данных. Если ETL-пайплайн уже построен, то он рассчитывает метрики и измерения наперед, а не ретроспективно. Часто нам бы хотелось посмотреть на сложившиеся тренды путем расчета измерений в прошлом — этот процесс и называется backfilling.
Backfilling настолько распространен, что в Hive есть встроенная возможность динамического партиционирования, чтобы выполнять одни и те же SQL запросы по нескольким партициям сразу. Проиллюстрируем эту идею на примере: пусть требуется заполнить количество бронирований по каждому рынку для дашборда, начиная с earliest_ds и заканчивая latest_ds. Одно из возможных решений выглядит примерно так:
INSERT OVERWRITE TABLE bookings_summary PARTITION (ds= '{{ earliest_ds }}')
SELECT
dim_market
, SUM(m_bookings) AS m_bookings
FROM
fct_bookings
WHERE
ds = '{{ earliest_ds }}'
GROUP BY
dim_market
;
# after many insertions from '{{ earliest_ds + 1 day }}' to '{{ latest_ds - 1 day }}'
INSERT OVERWRITE TABLE bookings_summary PARTITION (ds= '{{ latest_ds }}')
SELECT
dim_market
, SUM(m_bookings) AS m_bookings
FROM
fct_bookings
WHERE
ds = '{{ latest_ds }}'
GROUP BY
dim_market
;
Такой запрос возможен, однако он слишком громоздкий, поскольку мы выполняем одну и ту же операцию, только над разными партициями. Используя динамическое партиционирование мы можем все упростить до одного запроса:
INSERT OVERWRITE TABLE bookings_summary PARTITION (ds)
SELECT
dim_market
, SUM(m_bookings) AS m_bookings
, ds # For Hive to know we are using dynamic partitions
FROM
fct_bookings
WHERE
ds BETWEEN '{{ earliest_ds }}' AND '{{ latest_ds }}'
GROUP BY
dim_market
, ds
;
Отметим, что мы добавили ds в SELECT и GROUP BY выражения, расширили диапазон в операции WHERE и изменили синтаксис с PARTITION (ds= ‘{{ds}}’) на PARTITION (ds). Вся прелесть динамического партиционирования в том, что мы обернули GROUP BY ds вокруг необходимых операций, чтобы вставить результаты запроса во все партиции в один заход. Такой подход очень эффективен и используется во многих пайплайнах в Airbnb.
Теперь, рассмотрим все изученные концепции на примере ETL джобы в Airflow.
Направленный ациклический граф (DAG)
Казалось бы, с точки зрения идеи ETL джобы очень просты, однако на деле они часто очень запутаны и состоят из множества комбинаций Extract, Transform и Load операций. В этом случае очень полезно бывает визуализировать весь поток данных, используя граф, в котором узел отображает операцию, а стрелка — взаимосвязь между операциями. Учитывая, что каждая операция выполняется единожды, а данные идут дальше по графу, то он является направленным и ациклическим, отсюда и название.
Одна из особенностей интерфейса Airflow — это наличие механизма, который позволяет визуализировать пайплайн данных через DAG. Автор пайплайна должен задать взаимосвязи между операциями, чтобы Airflow записал спецификацию ETL джоба в отдельный файл.
При этом помимо DAG-ов, которые определяют порядок запуска операций, в Airflow есть операторы, которые задают, что необходимо выполнить в рамках пайплайна. Обычно есть 3 вида операторов, каждый из которых имитирует один из этапов ETL-процесса:
- Сенсоры: открывают поток данных по истечении определенного времени, либо когда данные из входного источника становятся доступны (по аналогии с Extract).
- Операторы: запускают определенные команды (выполни Python-файл, запрос в Hive и т.д.). По аналогии с Transform, операторы занимаются преобразованием данных.
- Трансферы: переносят данные из одного места в другое (как и на стадии Load).
Простой пример
Ниже представлен простой пример того, как объявить DAG-файл и определить структуру графа, используя операторы в Airflow, которые мы обсудили выше:
"""
A DAG docstring might be a good way to explain at a high level
what problem space the DAG is looking at.
Links to design documents, upstream dependencies etc
are highly recommended.
"""
from datetime import datetime, timedelta
from airflow.models import DAG # Import the DAG class
from airflow.operators.sensors import NamedHivePartitionSensor
from airflow.operators.hive_operator import HiveOperator
### You can import more operators as you see fit!
# from airflow.operators.bash_operator import BashOperator
# from airflow.operators.python_operator import PythonOperator
# setting some default arguments for the DAG
default_args = {
'owner': 'you',
'depends_on_past': False,
'start_date': datetime(2018, 2, 9),
}
# Instantiate the Airflow DAG
dag = DAG(
dag_id='anatomy_of_a_dag',
description="This describes my DAG",
default_args=default_args,
schedule_interval=timedelta(days=1)) # This is a daily DAG.
# Put upstream dependencies in a dictionary
wf_dependencies = {
'wf_upstream_table_1': 'upstream_table_1/ds={{ ds }}',
'wf_upstream_table_2': 'upstream_table_2/ds={{ ds }}',
'wf_upstream_table_3': 'upstream_table_3/ds={{ ds }}',
}
# Define the sensors for upstream dependencies
for wf_task_id, partition_name in wf_dependencies.iteritems():
NamedHivePartitionSensor(
task_id=wf_task_id,
partition_names=[partition_name],
dag=dag
)
# Put the tasks in a list
tasks = [
('hql', 'task_1'),
('hql', 'task_2'),
]
# Define the operators in the list above
for directory, task_name in tasks:
HiveOperator(
task_id=task_name,
hql='{0}/{1}.hql'.format(directory, task_name),
dag=dag,
)
# Put the dependencies in a map
deps = {
'task_1': [
'wf_upstream_table_1',
'wf_upstream_table_2',
],
'task_2': [
'wf_upstream_table_1',
'wf_upstream_table_2',
'wf_upstream_table_3',
],
}
# Explicitly define the dependencies in the DAG
for downstream, upstream_list in deps.iteritems():
for upstream in upstream_list:
dag.set_dependency(upstream, downstream)
Когда граф будет построен, можно увидеть следующую картинку:
Итак, надеюсь, что в данной статье мне удалось максимально быстро и эффективно погрузить вас в интересную и многообразную сферу — Data Engineering. Мы изучили, что такое ETL, преимущества и недостатки различных ETL-платформ. Затем обсудили моделирование данных и схему «звезды», в частности, а также рассмотрели отличия таблиц фактов от таблиц измерений. Наконец, рассмотрев такие концепции как партиционирование данных и backfilling, мы перешли к примеру небольшого ETL джоба в Airflow. Теперь вы можете самостоятельно изучать работу с данными, наращивая багаж своих знаний. Еще увидимся!
————
Роберт отмечает недостаточное количество программ по data engineering в мире, однако мы таковую проводим, и уже не в первый раз. В октябре у нас стартует Data Engineer 3.0, регистрируйтесь и расширяйте свои профессиональные возможности!
НОУ ИНТУИТ | Лекция | Проектирование и разработка процесса ETL
Аннотация: В настоящей лекции рассматриваются общие принципы организации процесса извлечения, преобразования и загрузки данных (Extract, Transform, Load — ETL) для ХД, приводится классификация систем – источников данных, обсуждаются некоторые методы извлечения данных. Рассмотрена в общих чертах методика проектирования ETL-процессов с использованием CASE-инструментов.
Цель лекции
Изучив материал настоящей лекции, вы будете знать:
- что такое процесс ETL;
- место процесса ETL в архитектуре системы бизнес аналитики на основе хранилищ данных;
- что такое реализация ETL-процесса с использованием промежуточной области;
- что такое реализация ETL-процесса без использования промежуточной области;
- основные элементы ETL-процесса ;
и научитесь:
- строить диаграммы движения данных, диаграммы преобразования данных, диаграммы управления потоком преобразования данных ;
- выполнять общее планирование реализации ETL-процесса;
- проектировать ETL-процессы.
Литература: [3], [14], [33], [
[
32
]
32], [51].
Введение
Для того чтобы заставить ХД заработать, необходимо не просто обеспечить взаимодействие многих источников данных – важно тщательно спланировать это взаимодействие. Поэтому процессы извлечения, преобразования и загрузки данных играют важную роль в создании и эксплуатации ХД.
Чтобы процесс преобразования данных протекал без сбоев, необходимо обеспечить наличие необходимой документации и метаданных. Процесс извлечения данных влияет на производительность других систем, поэтому его следует рассматривать в аспекте управления изменениями и конфигурацией систем – источников данных.
Под аббревиатурой ETL (extraction, transformation, loading — извлечение, преобразование и загрузка данных ) понимается составной процесс переноса данных одного приложения или автоматизированной информационной системы в другие.
Процесс ETL реализуется путем либо разработки приложения ETL, либо создания комплекса встроенных программных процедур, либо использования ETL-инструментария. Приложения ETL извлекают информацию из исходных БД источников, преобразуют ее в формат, поддерживаемый БД назначения, а затем загружают в эту БД преобразованные данные.
Цель любого ETL-приложения состоит в том, чтобы своевременно доставить данные из внешних систем в систему, с которой работают пользователи. Как правило, ETL-приложения используются при переносе данных внешних источников в ХД систем бизнес-аналитики. Поэтому организация процесса ETL является составной частью проекта разработки практически любого ХД.
Проектирование и разработка ETL-процесса является одной из самых важных задач проектировщика ХД. Для ХД процесс ETL имеет следующие свойства. Во-первых, объем данных, который выбирается из систем источников данных и помещается в ХД, как правило, бывает достаточно большим, до десятков Гб. Во-вторых, процесс ETL является необходимой составной частью эксплуатации ХД. Периодичность процесса ETL определяется не только потребностью пользователя в своевременных данных, но и размером загружаемой порции данных. По оценкам специалистов, ETL-процесс может занимать до 80% времени. В-третьих, на разных стадиях процесса ETL формируются метаданные ХД и обеспечивается качество данных. В-четвертых, во время процесса ETL может произойти потеря данных, поэтому необходимо обеспечивать контроль за поступлением данных в ХД. В-пятых, процесс ETL обладает свойством восстанавливаемости после сбоев без потери данных.
На
рис.
15.1 показано место процесса ETL в архитектуре системы бизнес-аналитики на основе ХД.
Как видно из рисунка, на процесс ETL возложена вся работа по подготовке данных для доставки их в ХД, формирование и обновление метаданных ХД, а также управление данными, извлеченными в результате Data mining.
Таким образом, процесс ETL состоит из трех основных стадий.
- Извлечение данных На этой стадии отбираются и описываются данные внешних источников (начинают формироваться метаданные ХД), которые должны храниться в ХД (релевантные данные).
- Преобразование данных На этой стадии релевантные данные преобразуются в формат представления данных в ХД, правила преобразования сохраняются в метаданных ХД, формируются ключевые поля таблиц физической структуры ХД, выполняется очистка данных.
- Загрузка данных На этой стадии данные загружаются в ХД, выполняется построение агрегатов.
Подходы к реализации ETL-процесса
Существует несколько подходов к реализации процесса ETL. Общепринятый подход состоит в извлечении данных из систем источников, размещении их в промежуточной области дисковой памяти (Data Staging Area), выполнении в этой промежуточной области процедур преобразования и очистки данных, а затем загрузки данных в ХД, как показано на
рис.
15.2.
Рис.
15.2.
Реализация ETL-процесса с использованием промежуточной области
Размещение извлеченных данных в промежуточной области означает запись данных в БД или файлы дисковой подсистемы. Альтернативным подходом к реализации процесса ETL является выполнение преобразований в оперативной памяти ETL-сервера и непосредственную загрузку в ХД, как показано на
рис.
15.3.
Рис.
15.3.
Реализация ETL-процесса без использования промежуточной области
Преобразование данных в оперативной памяти выполняется быстрее, чем при размещении их предварительно на диске. Однако применение такого подхода лимитируется размером порции загружаемых данных. Если размер порции загружаемых данных достаточно большой, то необходимо использовать промежуточную область.
Иногда применяется еще один подход к реализации процесса ETL, когда преобразование данных выполняется на сервере ХД, в процессе их загрузки. Использование такого подхода определяется вычислительными возможностями сервера ХД. Обычно такой подход применяется для MPP серверов ХД.
В зависимости от того, кто извлекает данные из систем источников, реализация ETL-процесса может быть выполнена следующими способами.
- ETL-сервер периодически подключается к системам, источникам данных, опрашивает их, извлекает результаты выполнения запросов и размещает их у себя для дальнейшей обработки.
- Триггеры систем источников данных отслеживают изменения в данных и размещают измененные данные в отдельных таблицах, которые затем экспортируются на ETL-сервер.
- Специально разработанное приложение в системах источниках данных периодически опрашивает их и экспортирует данные на ETL-сервер.
- Используются log-журналы БД систем источников, которые содержат все транзакции изменения данных. Измененные данные извлекаются из log-журналов и сохраняются на сервере системы источника данных для последующего импорта в ETL-сервер.
В зависимости от того, где выполняется процесс извлечения данных из систем источников, реализация ETL-процесса может быть выполнена следующими способами.
- ETL-процесс выполняется на выделенном ETL-сервере, который располагается между системами источниками данных и сервером ХД. В этом случае процесс ETL не использует вычислительных ресурсов сервера ХД и серверов систем источников данных.
- ETL-процесс выполняется на сервере ХД. В этом случае сервер ХД должен иметь достаточное дисковое пространство для выполнения ETL-процесса, использование ресурсов сервера не должно сильно влиять на производительность запросов пользователей к ХД.
- ETL-процесс выполняется на серверах систем источников данных для ХД. В этом случае изменения в данных сразу же отражаются в ХД. Такой подход используется при разработке ХД реального времени.
Таким образом, при проектировании процесса ETL проектировщик ХД должен на основе анализа требований к функционированию ХД совместно с руководителем ИТ-проекта выбрать программно-аппаратное решение для реализации ETL-процесса, а именно – точно определить, где и каким способом будет выполняться ETL-процесс. На это решение может сильно повлиять бюджет проекта. Например, может быть недостаточно финансовых средств, чтобы реализовать процесс ETL на выделенном сервере.
Разработка ETL-процесса
Как правило, при конструировании процесса ETL для ХД придерживаются следующей последовательности действий.
- Планирование ETL-процесса, которое включает в себя разработку диаграммы потоков данных от систем-источников, определение преобразований, метода генерации ключей и последовательности операций для каждой таблицы назначения.
- Конструирование процесса заполнения таблиц измерений, которое включает в себя разработку и верификацию процесса заполнения статических таблиц измерений, разработку и верификацию механизмов изменения для каждой таблицы измерений.
- Конструирование процесса заполнения таблиц фактов, которое включает в себя разработку и верификацию процесса первоначального заполнения и периодического дополнения таблиц фактов, построение агрегатов и разработку процедур автоматизации процесса ETL.
Планирование ETL-процесса
Процесс преобразования данных играет весьма важную роль в достижении успеха реализации проекта ХД, поэтому он должен быть хорошо спланирован. Разработка плана носит интерактивный характер.
Сначала создается обобщенный план, в котором отражается перечень систем –источников данных и указываются планируемые целевые области данных (данных, которые будут размещаться в ХД). Источник целевых данных определяется на основе сформулированных бизнес-требований к ХД. Как правило, источники данных существенно различаются: от БД и текстовых файлов до SMS-сообщений. Это обстоятельство может значительно усложнить задачу преобразования данных.
Назначение таких высокоуровневых описаний источников дает, с одной стороны, разработчикам представление и о создаваемой системе, и о существующих источниках данных, а с другой, руководству организации, — понимание сложности, связанной с процессами преобразования данных.
К составлению обобщенного плана лучше всего приступать, когда разработана многомерная модель ХД. Тогда для каждой таблицы многомерной схемы можно определить таблицы – источники данных.
Рассмотрим пример многомерной схемы ХД системы поддержки принятия решений на
рис.
15.4.
Связи между таблицами многомерной схемы ХД и таблицами – источниками данных можно указать с помощью стрелочек, как на диаграмме на
рис.
15.5.
Каждую стрелочку на диаграмме следует пронумеровать и сопроводить комментарием, который должен служить напоминанием разработчикам о необходимости следить за целостностью ссылочных данных или других определенных бизнес-правилами особенностях обработки каждой таблицы источника.
На этой стадии планирования необходимо зафиксировать все обнаруженные расхождения в определениях данных и схемах кодирования.
Детальное планирование ETL-процесса во многом зависит от использования выбранных ETL-инструментов. К настоящему времени разработано достаточно много таких инструментов как компаниями производителями комплексных решений в области ХД (IBM, Oracle, MicroSoft), так и сторонними производителями программного обеспечения (Sunopsis). Поэтому задача выбора подходящих ETL-инструментов должна быть решена до того, как приступать к детальному планированию.
Программное обеспечение этого класса предназначено для извлечения, приведения к общему формату, преобразованию, очистки и загрузки данных в хранилище. Существуют два подхода к написанию ETL-процедур: 1) их можно написать вручную; 2) можно воспользоваться специализированными средствами ETL.
Каждый из подходов имеет ряд преимуществ и недостатков, поэтому выбор того или иного метода реализации процедур ETL определяется требованиями к подсистеме загрузки данных в каждом конкретном случае. Выделим наиболее важные достоинства каждого из способов написания ETL-процедур.
Написание вручную:
- возможность использования широко распространенных парадигм программирования, например, объектно-ориентированного программирования;
- возможность применения многих существующих методик и программных средств, позволяющих автоматизировать процесс тестирования разрабатываемых процедур загрузки данных ;
- доступность человеческих ресурсов;
- возможность построения наиболее производительного решения с использованием при программировании всех преимуществ систем управления базами данных (СУБД), задействованных в проекте;
- возможность построения наиболее гибкого решения.
Применение ETL-инструментов:
- упрощение процесса разработки, и, главное, процесса поддержания и модификации процедур ETL;
- ускорение процесса разработки системы, возможность использования готовых наработок, поставляемых вместе со средствами ETL;
- возможность использования встроенных систем управления метаданными, позволяющих синхронизовать метаданные между СУБД, средством ETL, а также инструментами визуализации данных;
- возможность автоматической документации написанных процедур;
- многие средства ETL предоставляют собой средства увеличения производительности подсистемы загрузки данных, которые включают в себя возможность распараллеливания вычислений на различных узлах системы, использование хеширования и многие другие.
Следует обратить внимание на выбор технологии для реализации процедур ETL, в случае если одной из систем-источников данных выступает ERP-система. Системы данного класса являются наиболее сложными, так как обладают очень запутанной моделью данных и зачастую содержат десятки тысяч таблиц. Для реализации процедур загрузки данных из ERP-систем в команду разработчиков должен быть включен специалист, хорошо знакомый с данной системой-источником, так как анализ подобного рода систем с нуля занимает слишком длительное время. Кроме того, большинство поставщиков средств ETL предоставляют коннекторы ко многим ERP-системам, позволяющим импортировать метаданные ERP-систем и работать с ними на более высоком уровне.
Наличие коннекторов к ERP-системам предоставляет специализированным средствам ETL большое преимущество над написанием вручную процедур загрузки данных, в случае если в качестве источника данных выступает ERP-система.
После выполнения предварительного планирования приступают к детальному планированию.
Детализированные планы преобразования данных составляются для всех таблиц, участвующих в процессе преобразования.
В настоящей лекции мы не даем рекомендаций по формированию детального плана, поскольку в каждом конкретном случае детальное планирование выполняется руководителем проекта создания ХД и включает в себя учет различных факторов, связанных со спецификой предметной области ХД. Так, например, для банковских ХД, возможно, будет необходимо выполнить проверку корректности бухгалтерской базы по бизнесправилам (провести в процессе ETL подсчет остатков и оборотов по отдельным лицевым и/или балансовым счетам).
ETL: обзор и роль в развитии компаний
Библиографическое описание:
Коновалов, М. В. ETL: обзор и роль в развитии компаний / М. В. Коновалов. — Текст : непосредственный // Технические науки в России и за рубежом : материалы VII Междунар. науч. конф. (г. Москва, ноябрь 2017 г.). — Москва : Буки-Веди, 2017. — С. 31-34. — URL: https://moluch.ru/conf/tech/archive/286/13149/ (дата обращения: 09.10.2020).
В статье рассматриваются понятия ETL, ETL-инструмент, а также OLTP и OLAP. Проводится краткий обзор ETL-инструментов от крупнейших мировых компаний разработчиков их роль в современном мире и развитии бизнеса крупных компаний.
Ключевые слова: ETL, ETL-инструменты, хранилище данных, ХД, DWH, OLTP, OLAP, анализ, бизнес-процесс, бизнес-анализ, ИТ
Введение
Последние десятилетия технологии и ИТ-индустрия в частности развиваются по экспоненте, оказывая влияние не только на смежные, но и, пожалуй, на все виды деятельности человека. В геометрической прогрессии растут объемы обрабатываемых данных, разнообразие инструментариев для создания и усовершенствования систем и приложений, используемых в промышленных целях.
Разнообразие программного обеспечения направлено, с одной стороны на упрощение ручного труда, автоматизацию бизнес-процессов, сокращение издержек и расходов компаний, но, вместе с этим значительно усложняется ИТ-инфраструктура и архитектура системного ландшафта в организациях. Это бросает вызовы ИТ-персоналу и требует все более высокой квалификации от специалистов, ответственных за информационные системы компании.
Вместе с тем растет количество источников и потребителей данных. Это обусловлено не только тенденциями внутри компании, но и увеличением количества внешних провайдеров информации, таких как, например, web-ресурсы государственных органов или коммерческих организаций, агрегирующих и предоставляющих справочные данные юридическим лицам.
Понятие ETL
Данные, загружаемые из каких-либо источников, как правило, требуется не просто хранить внутри одной системы, а передавать для обработки и анализа в другие системы. Для этого существуют, так называемые, хранилища данных (ХД или DWH — Data Warehouse). ХД — это базы данных для сбора и обработки различной информации, разработанные и ориентированные специально для подготовки отчетов и бизнес-анализа, с целью поддержки принятия решений на предприятии. [1]
Из-за множества используемых технологий, различий в системах с точки зрения архитектуры и структуры данных, при передаче информации в системы потребители, ее необходимо преобразовывать.
Таким образом, учитывая вышесказанное, можно выделить три этапа в процессе работы с данными:
- Извлечение (Extract),
- Преобразование (Transform),
- Загрузка (Load).
Эти три этапа и составляют аббревиатуру ETL — одного из основных процессов в управлении данными при получении их из множества систем источников и загрузки в ХД, с целью получения достоверной информации (см. Рис.1).
Рис.1. ETL-процесс
Рассмотрим подробнее выделенные этапы:
- Извлечение. На этом этапе данные извлекаются из систем источников без преобразований (как есть, произвольного качества) и загружаются в промежуточную область.
- Преобразование. Данные группируются, преобразуются к формату, соответствующему структуре хранилища данных. Выполняются очистка, проверка данных на полноту, формируются отчеты об ошибках для дальнейшего исправления.
- Загрузка. Данные загружаются из промежуточной области в хранилище данных. Причем загружается не вся информация, а только новая или измененная части, с поддержкой версионности. Это необходимо для возможности получить актуальную версию записи на произвольную дату.
Часто ETL является промежуточным слоем между OLTP системами и OLAP системой или хранилищем данных.
OLTP (Online Transaction Processing) — понятие относится к транзакционным системам сравнительно небольшого размера, обрабатывающих большие потоки данных в реальном времени.
OLAP (Online analytical processing) — понятие относится к системам для динамического построения отчетов и документов, составления сложных запросов к базе данных для глубокого анализа.
Краткие сравнительные характеристики OLTP и OLAP систем приведены в Таблица 1.
Таблица 1
Сравнительные ихарактеристики OLTP иOLAP [2]
№ | Характеристика | OLTP | OLAP |
1 | Источник данных | Деятельность компании | Внутренние и внешние данные |
2 | Объем данных | Как правило, необходимо за последние несколько месяцев | На порядки больше, чем для OLTP-систем. Необходимо, как правило, за несколько лет. |
3 | Качество данных | Эквивалентная информация может быть в разных форматах, и даже противоречивая | Единообразная, согласованная и очищенная информация. |
4 | Набор запросов | Для конкретных задач и выборки относительно небольшого объема данных. Набор может быть заранее известен. | Заранее предсказать набор невозможно (нерегламентированные запросы). Выбираются большие объемы данных. |
5 | Изменчивость | Сильная изменчивость, данные не упорядочены | Малая изменчивость, упорядоченность данных |
6 | Защита | Защита на уровне таблиц | Большая грануляция защиты из-за большой критичности для компании |
ETL-инструменты
Вообще, для реализации ETL-процесса можно использовать большинство современных языков программирования. Но, если требуется не просто выполнить разовую конвертацию данных, а речь идет о реализации постоянного процесса интеграции данных из нескольких разнородных источников, то имеет смысл рассмотреть использование специализированных инструментов, облегчающих автоматизацию типовых операций, поддержку основных используемых форматов и наиболее распространенных информационных систем. При этом следует принимать во внимание параметры масштабируемости, скорости и расширяемости таких инструментов.
Наиболее распространенными разработчиками ETL-инструментов на сегодняшний день можно назвать Oracle, Informatica и IBM. Как правило, системы таких производителей перекрывают потребности бизнеса настолько, что большинство клиентов не используют и половины имеющегося функционала. Поэтому имеет смысл выбирать ETL-инструменты, основываясь на требуемых задачах решения и имеющейся платформе предприятия.
К примеру, если в компании доминируют системы от компании IBM — то можно рассмотреть решение Data Stage от IBM. С приобретением в 2008 году канадской компании Cognos, у IBM появилось и второе решение Data Manager, к одному из достоинств которого можно отнести наличие OLAP, чего нет у ряда других систем. Это позволяет обходиться без построения сложных ХД, что сильно экономит средства компании.
При использовании Unix/Linux подобных операционных систем часто используются решения от Informatica или Oracle. К преимуществам решений PowerCenter и PowerMart от Informatica можно отнести следование за новыми технологиями, регулярные релизы и, как следствие, наибольший набор инструментов для интеграции данных. Гибкости системе добавляет возможность программировать на языке разработки Java. [3,4] Для Oracle Data Integrator характерна возможность масштабирования от небольшой организации до целого предприятия, наличие специальных технологии для манипулирования большими объемами данных. Также для поддержки разработчиков в системе имеются специальные модули знаний для многих других систем, содержащие шаблоны кода. [5]
Если в компании преобладают системы от компании Microsoft, то ETL могут быть построены на продукте SSIS от Microsoft. Данный продукт имеет развитый пользовательский интерфейс, предоставляет широкую библиотеку стандартных компонентов потоков данных. В дополнении к ним, SSIS предоставляет инфраструктуру для создания пользовательских компонентов. Это позволяет компаниям разрабатывать узкоспециализированные высокоэффективные компоненты обработки данных. Но продукт не является кроссплатформенным и ориентирован на взаимодействие с продуктами Miscosoft. [6]
Заключение
Сегодня ETL-системы рассматриваются не только как инструмент для создания отчетов или исправления ошибок, которые могут возникать на уровне ввода, переноса данных, по причине системных ошибок или различий в данных между смежными ИТ-системами. Эти задачи действительно крайне важны для бизнеса, т. к. при наличии огромного количества различных систем в компании с противоречивыми данными, критичной является возможность получать достоверные и качественные данные, приведенные к единой системе значений и детализации. Но в понятие ETL-система сегодня вкладывается значительно больший смысл, т. к. решаемые задачи стали одними из наиболее приоритетных для компаний. Бизнес осознал необходимость внедрения подобных интеллектуальных систем для принятия своевременных решений и успешного ведения конкурентной борьбы. А это значит, что разработчики и интеграторы подобных решений и впредь должны все больше стремиться к тому, чтобы предлагать бизнесу новые инновационные решения с еще более развитым и интеллектуальным функционалом.
Литература:
- Ralph Kimball, Joe Caserta. The Data Warehouse ETL Toolkit: Practical Techniques for Extracting, Cleaning, Conforming, and Delivering Data. — John Wiley & Sons, 2004.
- Проектирование баз данных: Распределенные базы и хранилища данных. Лекция 2: Многомерное представление данных. Общая схема организации хранилища данных. Характеристики, типы и основные отличия технологий OLAP и OLTP. Схемы звезда и снежинка. Агрегирование // Национальный Открытый Университет «ИНТУИТ». URL: http://www.intuit.ru/studies/professional_retraining/953/courses/214/lecture/5508/ (дата обращения: 23.10.2017).
- PowerCenter // DIS Group. URL: http://www.dis-group.ru/products/informatica/powercenter/ (дата обращения: 23.10.2017)
- Informatica Basic Features- Power Centre,Power Mart // DATAWAREHOUSE CONCEPTS. URL: http://dwhlaureate.blogspot.ru/2012/08/informatica-basic-features.html (дата обращения: 23.10.2017).
- Oracle Data Integrator Enterprise Edition // ORACLE. URL: http://www.oracle.com/us/products/middleware/data-integration/odi-ee-11g-ds-168065.pdf (Дата обращения: 23.10.2017).
- Бергер А. Б. Microsoft SQL Server 2005 Analysis Services. OLAP и многомерный анализ данных / Бергер А. Б., Горбач И. В., Меломед Э. Л., Щербинин В. А., Степаненко В. П. / Под общ. Ред. А. Б. Бергера, И. В. Горбач. — СПб.: БХВ-Петербург, 2007.
- Основные функции ETL-систем // Хабрахабр. URL: https://habrahabr.ru/post/248231/ (Дата обращения: 23.10.2017).
Основные термины (генерируются автоматически): OLAP, OLTP, ETL, IBM, система, DWH, SSIS, данные, хранилище данных, компания.
Похожие статьи
Обзор и сравнительный анализ промышленных хранилищ…
SQL, IBM, данные, хранилище данных, решение, OLAP, баз данных, DBMS, база данных, объем данных. база данных, хранилище данных, БД, ХД, СУБД, DWH, OLTP, OLAP, информационная система, анализ, фронт-офис…
Реализация хранилищ данных в системах поддержки принятия…
Системы OLAP(online analytical processing) — системы аналитической обработки в реальном времени [3]. Целью создания системы является анализ огромных объемов данных
ETL («Extract — Transform — Load») — один из основных процессов в управлении хранилищами…
Компьютерная технология автоматизирования информационной…
Ключевые слова: база данных, хранилище данных, БД, ХД, СУБД, DWH, OLTP, OLAP, информационная система, анализ, фронт-офис, бизнес-приложение, ПО, ИС, ИТ. О способе интеграции системы обнаружения аномалий в SQL…
Разработка бизнес-аналитики с использованием SQL SERVER…
Хранение данных осуществляется в системах оперативной обработки транзакций — OLTP—системах.
OLAP, SQL, данные, MOLAP, интеллектуальный анализ данных, OLTP, таблица измерений, хранилище данных, автоматизированная сортировочная, куб.
Введение в BI-технологии | Статья в журнале «Молодой ученый»
OLTP—система («Online Transaction Processing») — обработка транзакций в реальном режиме.
ETL («Extract — Transform — Load») — один из основных процессов в управлении хранилищами данных, включающий извлечение данных, их преобразование и очистку, а…
Выбор платформы интеллектуального анализа данных для…
Достоинствами системы являются визуализация процесса анализа данных и представления результатов, так же возможна загрузка и сохранение данных в
Репозиторий — это хранилище данных, создаваемое на диске средой и содержащее в себе все данные и процессы.
Автоматизация системы управления с использованием Deductor…
Реализация хранилищ данных в системах поддержки принятия… Очевидно, что принятие решений должно основываться на
Такая информация обычно хранится в оперативных базах данных систем оперативной обработки транзакций (online transaction processing — OLTP)…
Создание хранилища данных для распределённой системы
В данной работе рассматривается реализация модуля хранения данных в распределённой системе, решающей задачи хранения и анализа файлов, содержащих данные в виде текста. Задачами модуля являются размещение файлов, а также управление загруженными файлами.
Системы поддержки приятия решений для мониторинга работы ЛВС
Системы OLAP(online analytical processing) — системы аналитической обработки в реальном времени [3]. Целью создания системы является
Данные из OLTP—системы копируются в хранилище данных таким образом, чтобы при построении отчётов и OLAP-анализе не…
ETL: обзор инструментов | Статья в журнале «Молодой ученый»
Библиографическое описание:
Черняев, А. С. ETL: обзор инструментов / А. С. Черняев, М. А. Балова. — Текст : непосредственный // Молодой ученый. — 2019. — № 1 (239). — С. 23-26. — URL: https://moluch.ru/archive/239/55368/ (дата обращения: 09.10.2020).
В статье рассматриваются понятия ETL, OLTP и OLAP. Проводится обзор ETL-инструментов от ведущих разработчиков и перспективы их применения в бизнесе.
Ключевые слова: ETL, ETL-инструмент, хранилище данных, ХД, DWH, OLTP, OLAP, ИТ.
Последние несколько десятилетий характеризуются экспоненциальным ростом мирового технологического развития в общем и ИТ-сферы, в частности. Подобное явление оказывает сильное влияние на все виды деятельности.
Такими же большими темпами растёт и объём обрабатываемых данных, что ведёт к количественному и качественному улучшению арсенала средств создания и совершенствования информационных систем и приложений. С одной стороны, широкий выбор ПО позволяет упростить рутинные действия, автоматизировать бизнес-процессы, а также способствует сокращению издержек предприятия, однако, в то же время, обратной стороной медали является усложнение ИТ-инфраструктуры архитектуры системного ландшафта компании.
Как следствие, сложившаяся ситуация ведёт к повышению необходимого уровня квалификации ИТ-персонала. Параллельно увеличивается и численность потребителей и источников данных. Причинами этого, на ряду с внутренними изменениями в самой компании, является рост числа внешних провайдеров информации, например, государственные или частные интернет-ресурсы, являющиеся агрегаторами полезной справочной информации.
Понятие ETL
В большинстве случаев, при загрузке данных из источников возникает необходимость хранения этих данных в одной системе и их передачи в другую систему для дальнейшей обработки и анализа. С целью осуществления этого процесса создаются хранилища данных (ХД или DWH — Data Warehouse). Хранилище данных представляет собой базу данных для сбора и обработки информации, поступающей из различных источников. Спецификой хранилищ данных является ориентированность на подготовку отчётов с целью поддержки принятия решений в организациях [1].
Поскольку в данное время существует большое количество технологий и систем, различных по своей по структуре данных и архитектуре, данные при передаче из одной системы в другую, нуждаются в преобразовании. Основываясь на вышесказанном, можно выделить три последовательных этапа процесса работы с данными:
1. Извлечение (Extract)
2. Преобразование (Transform)
3. Загрузка (Load)
Эти этапы принято обозначать аббревиатурой ETL, которая описывает один из основных процессов управления данными при их извлечении из источников и последующей загрузки в хранилище данных с целью получения достоверной информации (Рис. 1.).
Рис. 1. ETL-процесс
Остановимся на более подробном рассмотрении вышеуказанных этапов.
Извлечение данных. Этап заключается в извлечении данных из источников, при этом данные не изменяются независимо от их качества и загружаются в промежуточную область.
Преобразование данных. В процессе преобразования, данные подергаются группировке, а также преобразуются в нужный формат, согласно структуре хранилища данных. Также выполняется очистка данных, проверка на полноту, и формируются отчёты для дальнейшего исправления ошибок.
Загрузка данных. На данном этапе осуществляется загрузка трансформированных данных из промежуточной области в хранилище данных. Стоит отметить, что загрузке подвергаются не все данные, а только те, которые являются новыми или были изменены. В процессе загрузки поддерживается версионность. Это является необходимым условием получения актуальной версии записи на произвольную дату.
Довольно часто ETL становится промежуточным слоем между системами класса OLTP и хранилищем данных или OLAP-системой.
Online Transaction Processing (OLTP) — относительные небольшие транзакционные системы, обрабатывающие большие потоки данных в реальном времени.
Online analytical processing (OLAP) — системы динамического построения отчетов и документов, составления сложных запросов к базе данных для глубокого анализа.
Инструменты ETL
Вообще, для осуществления ETL-процесса допустимо использовать почти любой современный язык программирования. Однако, если требуется не разовая конвертация, а постоянно выполнять интеграцию данных, то целесообразно рассмотреть специализированное ПО. При этом стоит учитывать скорость, расширяемость и масштабируемость выбранного инструмента. Среди лидеров на рынке ETL-инструментов выделяются Oracle, Informatica и IBM. Обычно системы, созданные указанными компаниями, перекрывают потребности большинства компаний в области ETL. Исходя их этого, целесообразно выбирать ETL-инструмент основываясь на поставленных задачах, а также существующей платформе компании.
В случае преобладания продуктов IBM, стоит обратить внимание на решение Data Stage и Data Manager. Отличительной особенностью является наличие OLAP, что позволяет не строить сложные хранилища данных.
При преобладании Unix операционных систем, целесообразны решения PowerCenter и PowerMart от Informatica. Стоит отметить возможность разработки на языке Java [2,3].
При преобладании продуктов Microsoft, целесообразно применение SSIS от Microsoft. Указанный продукт располагает развитым пользовательским интерфейсом, однако не является кроссплатформенным [4].
Заключение
Сейчас системы, которые относятся к ETL, являются не только решением проблем, возникающих при вводе данных, их переносе, возникающих при появлении системных ошибок или различиях между информационными системами, которые являются источниками и потребителями данных. Стоит отметить, что указанные задачи очень важны для бизнеса, поскольку в случае наличия в компании большого количества различных ИС вероятно возникновение ошибок при передаче данных между системами, что приводит к снижению качества и достоверности данных. ETL-системы со временем стали включат в себя более широкий смысл, поскольку решаемые такими системами задачи получили высоки приоритет в компаниях. В конечном итоге бизнес пришёл к выводу о важности внедрения подобных информационных систем с целью повышения скорости принятия решений и ведения успешного конкурентного противостояния. Резюмируя вышесказанное, можно сделать вывод о том, что разработчики описанных систем должны стремиться к совершенствованию разрабатываемых систем и повышению распространённости таких систем на рынке.
Литература:
- Проектирование баз данных: Распределенные базы и хранилища данных. Лекция 2: Многомерное представление данных. Общая схема организации хранилища данных. Характеристики, типы и основные отличия технологий OLAP и OLTP. Схемы звезда и снежинка. Агрегирование // Национальный Открытый Университет «ИНТУИТ». URL: http://www.intuit.ru/studies/professional_retraining/953/courses/214/lecture/5508/ (дата обращения: 04.01.2019).
- PowerCenter // DIS Group. URL: http://www.dis-group.ru/products/informatica/powercenter/ (дата обращения: 23.10.2017) Informatica Basic Features- Power Centre,Power Mart // DATAWAREHOUSE CONCEPTS. URL: http://dwhlaureate.blogspot.ru/2012/08/informatica-basic-features.html (дата обращения: 04.01.2019).
- Oracle Data Integrator Enterprise Edition // ORACLE. URL: http://www.oracle.com/us/products/middleware/data-integration/odi-ee-11g-ds-168065.pdf (Дата обращения: 04.01.2019).
- Бергер А. Б. Microsoft SQL Server 2005 Analysis Services. OLAP и многомерный анализ данных / Бергер А. Б., Горбач И. В., Меломед Э. Л., Щербинин В. А., Степаненко В. П. / Под общ. Ред. А. Б. Бергера, И. В. Горбач. — СПб.: БХВ-Петербург, 2007.
- Основные функции ETL-систем // Хабрахабр. URL: https://habrahabr.ru/post/248231/ (Дата обращения: 04.01.2019).
Основные термины (генерируются автоматически): ETL, OLAP, OLTP, хранилище данных, система, DWH, IBM, данные, SSIS, промежуточная область.
Процесс ETL · Loginom Wiki
Синонимы: ETL, Extract-Transform-Load, Извлечение-преобразование-загрузка
Разделы: Бизнес-задачи
Процесс ETL представляет собой комплекс операций, реализующих процесс переноса первичных данных из различных источников в аналитическое приложение или поддерживающее его хранилище данных. Является составной частью этапа консолидации в анализе данных.
ETL-приложения извлекают информацию из одного или нескольких источников, преобразуют ее в формат, поддерживаемый системой хранения и обработки, которая является получателем данных, а затем загружают в нее преобразованную информацию.
Изначально ETL-системы использовались для переноса информации из более ранних версий различных информационных систем в более новые. В настоящее время они находят все более широкое применение именно для консолидации данных с целью их дальнейшего анализа.
Очевидно, что поскольку хранилища данных могут строиться на основе различных моделей данных (многомерных, реляционных, гибридных), то и процесс ETL должен разрабатываться с учетом всех особенностей используемой в хранилище модели. Кроме этого, желательно, чтобы ETL-система была универсальной, т.е. могла извлекать и переносить данные как можно большего числа типов и форматов.
Независимо от особенностей построения и функционирования ETL-система должна обеспечивать выполнение трех основных этапов процесса переноса данных:
- Извлечение данных — на этом шаге данные извлекаются из одного или нескольких источников и подготавливаются к этапу преобразования. При этом следует отметить, что для корректного представления данных после их загрузки в хранилище должны быть извлечены не только сами данные, но и информация, описывающая их структуру, из которой будут сформированы метаданные для хранилища.
- Преобразование данных — производится преобразование форматов и кодировки данных, а также их интеграция и очистка;
- Загрузка данных — запись преобразованных, интегрированных и очищенных данных в соответствующую систему хранения.
Все операции над данными в процессе ETL производятся в так называемой промежуточной области, где для этого создаются временные таблицы.
Обработать | Данные преобразуются на промежуточном сервере и затем передаются в базу данных Datawarehouse. | Данные остаются в БД хранилища данных. |
Использование кода | Используется для
| Используется для больших объемов данных |
преобразование | Преобразования выполняются в сервере ETL / области подготовки. | Преобразования выполняются в целевой системе |
Время-Load | Данные сначала загружаются в промежуточную, а затем загружаются в целевую систему. Время интенсивно. | Данные загружаются в целевую систему только один раз. Быстрее. |
Время-трансформация | Процесс ETL должен ждать завершения преобразования. По мере увеличения размера данных время преобразования увеличивается. | В процессе ELT скорость никогда не зависит от размера данных. |
Время обслуживания | Это требует высокого обслуживания, так как вам нужно выбрать данные для загрузки и преобразования. | Низкие эксплуатационные расходы, так как данные всегда доступны. |
Сложность реализации | На ранней стадии проще реализовать. | Для реализации процесса ELT организация должна иметь глубокие знания инструментов и экспертных навыков. |
Поддержка хранилища данных | Модель ETL, используемая для локальных, реляционных и структурированных данных. | Используется в масштабируемой облачной инфраструктуре, которая поддерживает структурированные, неструктурированные источники данных. |
Поддержка озера данных | Не поддерживает. | Позволяет использовать озеро данных с неструктурированными данными. |
сложность | Процесс ETL загружает только важные данные, определенные во время разработки. | Этот процесс включает в себя разработку из вывода в обратном направлении и загрузку только соответствующих данных. |
Стоимость | Высокие затраты для малого и среднего бизнеса. | Низкие входные расходы при использовании онлайн-ПО в качестве сервисной платформы. |
Lookups | В процессе ETL как факты, так и измерения должны быть доступны в области подготовки. | Все данные будут доступны, поскольку извлечение и загрузка выполняются одним действием. |
Скопления | Сложность возрастает с дополнительным объемом данных в наборе данных. | Мощь целевой платформы позволяет быстро обрабатывать значительные объемы данных. |
вычисления | Перезаписывает существующий столбец или Необходимо добавить набор данных и отправить на целевую платформу. | Легко добавить вычисляемый столбец в существующую таблицу. |
зрелость | Процесс используется более двух десятилетий. Это хорошо документировано, и лучшие практики легко доступны. | Относительно новая концепция и комплекс для реализации. |
аппаратные средства | Большинство инструментов имеют уникальные требования к оборудованию, которые стоят дорого. | Быть стоимостью оборудования Saas не проблема. |
Поддержка неструктурированных данных | В основном поддерживает реляционные данные | Поддержка неструктурированных данных легко доступны. |
Срочно работа: Разработчик etl — Октябрь 2020 — 24174+ вакансий
Результаты поиска:
Разработчик ETL
Визави Консалт
…выполнения;
подготовка отчетов по итогам тестирования.
Пожелания к кандидатам:
уверенные знания Oracle PL/SQL;
опыт работы с ETL-инструментами;
опыт работы с DWH;
Плюсом будет:
знание предметной области — банковская сфера, финансы;
опыт работы с…
4 дня назад
Полезная ли была для вас вакансия?
Да, я отправил резюме
Да, я позвонил
Не подошла
Пожаловаться
Что произошло?
Вакансия не открылась
Это мошенники!
Не понял что произошло
Другое
Спасибо за отзыв, Вы нам очень помогли!
Разработчик ETL
Почтовые технологии
Мы строим единую аналитическую платформу, включающую в себя централизованное корпоративное хранилище данных, витрины отчетности и BI-инструменты, аналитические «песочницы» данных и инфраструктуру для применения моделей искусственного интеллекта.
Задачи, которые…
8 дней назад
Полезная ли была для вас вакансия?
Да, я отправил резюме
Да, я позвонил
Не подошла
Пожаловаться
Что произошло?
Вакансия не открылась
Это мошенники!
Не понял что произошло
Другое
Спасибо за отзыв, Вы нам очень помогли!
Разработчик DWH / ETL Informatica
Сетелем Банк
…ближайшие годы! Интересные задачи для владельцев продукта, аналитиков, разработчиков и тестировщиков гарантированы — вам предстоит определить новый… …клиенты банка уже через год!
Обязанности:
• Разработка потоков ETL (Informatica PC) для наполнения аналитического хранилища данных…
2 дня назад
Полезная ли была для вас вакансия?
Да, я отправил резюме
Да, я позвонил
Не подошла
Пожаловаться
Что произошло?
Вакансия не открылась
Это мошенники!
Не понял что произошло
Другое
Спасибо за отзыв, Вы нам очень помогли!
ETL разработчик
Ozon
…Сейчас мы ищем ETL разработчика
Мы ожидаем, что Вы:
Имеете опыт проектирования хранилищ данных, опыт построения и поддержки ETL процесса.
Имеете опыт поиска и анализа данных в разнородных информационных системах.
Владеете в совершенстве: MS SQL…
2 дня назад
Полезная ли была для вас вакансия?
Да, я отправил резюме
Да, я позвонил
Не подошла
Пожаловаться
Что произошло?
Вакансия не открылась
Это мошенники!
Не понял что произошло
Другое
Спасибо за отзыв, Вы нам очень помогли!
Разработчик ETL
FAYGROUP
Требуются опытные ETL — разработчики на проект по разработке решения для сбора данных из внешних источников (Базы данных, FTP/SFTP, SOAP/REST API, и др.) в единое хранилище данных и кластер Hadoop.
Стек:
— Apache Kafka, Apache Airflow, Apche NiFi, Apache Atlas…
22 часа назад
Полезная ли была для вас вакансия?
Да, я отправил резюме
Да, я позвонил
Не подошла
Пожаловаться
Что произошло?
Вакансия не открылась
Это мошенники!
Не понял что произошло
Другое
Спасибо за отзыв, Вы нам очень помогли!
Разработчик ETL
Московский Кредитный Банк
…Обязанности:
Разработка ETL-процессов для взаимодействия различных банковских систем в том числе для выгрузки информации в Хранилище данных (СУБД ORACLE, СУБД VERTICA) средствами Informatica Power Center; PL/SQL;
Решение задач оптимизации/рефакторинга;
Решение…
2 дня назад
Полезная ли была для вас вакансия?
Да, я отправил резюме
Да, я позвонил
Не подошла
Пожаловаться
Что произошло?
Вакансия не открылась
Это мошенники!
Не понял что произошло
Другое
Спасибо за отзыв, Вы нам очень помогли!
Разработчик ETL
IconSoft
…IconSoft – разработчик, который может предложить своим клиентам инновационные решения совместно с АО «ГЛОНАСС». Наш основной продукт — сложная… …на основе данных.
Мы ищем в нашу команду Разработчика ETL , который будет вовлечен в проект построения хранилища данных,…
метро Деловой центр, Москва
Что такое ETL-разработчик: обязанности и навыки
Время чтения: 9 минут
Около 14 лет назад Клайв Хамби, математик и специалист по обработке данных, сказал: « Data — это новое масло ». Одержимость данными сегодня в моде, поскольку все компании борются за получение данных. Однако, в отличие от нефти, данные сами по себе ничего не стоят, но они бесполезны, если вы не понимаете их.
Специалисты-практики инженерии данных и науки о данных — сегодняшние золотодобытчики, которые находят новые методы сбора, обработки и хранения данных.Используя определенные инструменты и практики, компании внедряют эти методы для получения ценной информации. Один из наиболее распространенных способов использования данных предприятиями — это бизнес-аналитика (BI), набор методов и технологий, которые преобразуют необработанные данные в полезную информацию.
Данные могут использоваться для различных целей: для анализа или создания моделей машинного обучения. Но его нельзя использовать в исходном формате. Любая система, имеющая дело с обработкой данных, требует перемещения информации из хранилища и преобразования ее в процессе для использования людьми или машинами.Этот процесс известен как Извлечение, Преобразование, Загрузка или ETL . И обычно этим занимается конкретный инженер — ETL-разработчик .
В этой статье мы обсудим роль разработчика ETL в группе инженеров данных. Мы расскажем об их основных обязанностях и навыках, разоблачая распространенные неправильные толкования разработчика ETL и связанных ролей.
Кто такой разработчик ETL?
Разработчик ETL — это инженер-программист, который управляет процессами Extract, Transform, и Load , внедряя для этого технические решения.Процесс разбит на три основных этапа:
Выписка . Компании хранят историческую информацию или передают данные в реальном времени во многие системы. Эта информация разбросана по разному программному обеспечению и структурирована в различных форматах. Этап извлечения влечет за собой определение необходимых источников данных, будь то ERP, CRM или сторонняя система, и сбор данных из них.
Преобразовать . Когда данные собираются из источников, они обычно помещаются во временное хранилище, которое называется Staging Area .При размещении в этой области данные форматируются в соответствии с определенными стандартами и моделями. Например, финансовые числовые значения разных форматов 34,50 доллара, 0,90 цента, 01,65 будут преобразованы в единый согласованный формат: 34,50 доллара, 0,90 доллара, 1,65 доллара.
Нагрузка . Заключительный этап процесса ETL — загрузка структурированных и отформатированных данных в базу данных. Если объем данных невелик, можно использовать любую базу данных. Особый тип базы данных, используемый в бизнес-аналитике, обработке больших данных и машинном обучении, называется хранилищем данных .
Хранилище отличается от обычной базы данных своей структурой: оно может включать в себя несколько инструментов для представления данных из нескольких измерений и сделать их доступными для каждого пользователя. Представление данных Инструменты подключены к хранилищу, чтобы пользователи могли перетаскивать его и манипулировать им. Инструменты представления — это фактические инструменты бизнес-аналитики, которые предлагают аналитические данные через интерактивные информационные панели и инструменты отчетности.
Краткое описание обработки данных и описание шагов ETL
Данные проходят через многочисленные технические формы, прежде чем попасть в конечный пункт назначения, чтобы пользователь мог получить к ним доступ.Чтобы переместить данные, нам нужно построить конвейер, и это как раз работа сантехника, разработчика ETL.
Обычно разработчик ETL является частью группы инженеров данных — классных ребят из блока, отвечающих за извлечение, обработку, хранение и поддержку соответствующей инфраструктуры. Основная задача группы инженеров данных — получить необработанные данные, решить, как они должны выглядеть, чтобы они были потребляемыми, сделать их потребляемыми, а затем где-то хранить.
Состав команды зависит от масштабов проекта, целей, этапов обработки данных и необходимых технологий.Таким образом, группа инженеров данных может включать в себя следующие роли:
- Архитектор данных. Можно быть частью команды по обработке и анализу данных. Роль архитектора данных заключается в проектировании инфраструктуры, которую разработают инженеры по данным.
- Инженер по данным . Это особый тип программистов, которые разрабатывают интерфейсы и экосистему, чтобы получить доступ к информации.
- Аналитик данных. Этот член команды определяет методы сбора данных, модели данных, типы и описывает процесс преобразования.
- Разработчик базы данных / склада . Данные, как и любая другая информация, должны где-то храниться. Это может быть обычная база данных SQL или особый тип хранилища — Data Warehouse. Разработчик БД / хранилища отвечает за моделирование, разработку и обслуживание хранилищ данных.
- DBA или администратор базы данных. Это человек, отвечающий за управление базами данных при наличии нескольких баз данных или за структуру базы данных / хранилища, столь же сложную, как ракетостроение.
- Аналитики данных . Проекты, связанные с машинным обучением, также включают специалиста по науке о данных или даже специальный отдел.
- Разработчик бизнес-аналитики. Это инженер-программист, специализирующийся на разработке интерфейсов бизнес-аналитики.
- Разработчик ETL — инженер-программист, который охватывает этапы извлечения, преобразования и загрузки данных путем разработки соответствующей инфраструктуры и управления ею.
Сосредоточившись на проектах бизнес-аналитики как на основном бизнес-сценарии обработки данных, давайте подробно рассмотрим обязанности разработчика ETL.
Каковы обязанности разработчика ETL?
С точки зрения проекта бизнес-аналитики, разработчик ETL — одна из основных инженерных ролей. В то время как основная ответственность заключается в выполнении этапов извлечения, преобразования и загрузки, разработчик ETL выполняет задачи, связанные с аналитикой данных, тестированием и архитектурой системы. Чтобы обрисовать все возможные задачи, которые может выполнить разработчик ETL, мы кратко рассмотрим все возможные задачи:
- Управление процессами ETL
- Моделирование данных
- Архитектура хранилища данных
- Разработка конвейера данных (инструменты ETL)
- Тестирование ETL
Теперь давайте поговорим о каждом пункте подробно.
Управление процессами ETL
ETL — один из ключевых этапов обработки данных. В нем используются как методологии, так и технологии. Основная задача ETL-разработчика или специальной команды разработчиков:
- Обрисовать в общих чертах процесс ETL, установив границы обработки данных
- Обеспечить системную архитектуру для каждого элемента и всего конвейера данных
- Задокументировать требования к системе и управлять ее развитием
- Принять участие в разработке / внедрении инструментов ETL
- Проведение испытаний инструментов и конвейеров данных
Итак, разработчик ETL может быть инженером, техническим руководителем, менеджером проекта или QA процесса ETL, в зависимости от объема системы.Разработчики ETL часто сотрудничают с другими членами команды, чтобы получить информацию о бизнес-требованиях или потребностях конечных пользователей. Требуется правильное понимание того, какие форматы данных требуются, как они должны загружаться (по частям или с динамическими обновлениями) и как они будут представлены в хранилище (кубы OLAP, SQL, NoSQL, витрины данных и т. Д.).
Мы связались с Уэйном Яддовом, инструктором по качеству данных и консультантом по бизнес-аналитике, чтобы уточнить обязанности разработчика ETL. Уэйн предлагает рассмотреть множество моментов: « Разработчик ETL отвечает за анализ, интерпретацию моделей данных и решение проблем с данными в сотрудничестве с аналитиками данных.Все системные проекты и публикации проходят проверку разработчика ETL. Подумайте также о проверке требований, проведении интервью с пользователями системы, разработчиками и мониторинге бизнес-требований в отношении процесса ETL ».
Моделирование данных
Перед извлечением данных из источников разработчик ETL должен определить, какие форматы требуются. Конечные форматы данных, которые будут представлены в хранилище (и в пользовательском интерфейсе), называются моделями данных .
Пример логической модели данных
Источник: 1keydata.com
Модели данных создаются и документируются в сотрудничестве с бизнес-аналитиками, аналитиками данных и исследователями данных. Эти модели будут использоваться разработчиком ETL для определения стадии преобразования и базовых технологий, которые будут выполнять форматирование.
Архитектура хранилища данных
Склад — это большое хранилище, используемое для хранения структурированных данных.Его часто разбивают на более мелкие элементы, например витрины данных. Витрины данных используются для предоставления выделенным отделам доступа к необходимым данным с определенными свойствами. Например. если склад — это большая область хранения со всей собранной информацией, витрины данных — это небольшие базы данных, в которых хранятся тематические данные (бухгалтерский учет, метрики веб-сайтов и т. д.)
Само хранилище или витрины данных подключены к интерфейсу конечного пользователя, помогая пользователям получать доступ к информации, управлять ею, делать запросы и формировать отчеты.Кроме того, данные могут быть обогащены метаданными на этапе форматирования, что также включает изменения в общей архитектуре хранилища.
Архитектура складских помещений и средства представления данных
Разработчик ETL отвечает за определение архитектуры хранилища данных, а также за инструменты для загрузки в него данных. Складирование — сложный процесс, и его разработка обычно выполняется специализированным типом разработчика базы данных. Однако разработчик ETL может обладать всеми необходимыми навыками и знаниями для его создания.
Разработка конвейера данных
Заключительным этапом после того, как каждый компонент системы разрабатывается отдельно, является разработка конвейера данных. Конвейер данных — это техническая инфраструктура, которая будет автоматически выполнять следующие действия как единая система:
Извлечение данных из заданных источников . Пока информация хранится в различных системах, инструмент ETL должен быть интегрирован с каждой из них.
Загрузка данных в промежуточную область .Промежуточная область — это место, где происходит форматирование. В некоторых случаях это можно сделать на складе, но чаще всего используется отдельная база данных, чтобы ускорить процесс и сохранить склад в чистоте.
Форматирование данных . Когда данные передаются в промежуточную область, они форматируются в соответствии с определенными стандартами. Сюда могут входить такие операции как:
- Очистка данных, процесс удаления ненужных полей данных
- Структурирование / отображение данных, процесс определения типов данных и связей между ними
- Добавление метаданных для обогащения информации деталями
Загрузка структурированных данных на склад .Данные могут загружаться порциями или постоянно обновляться. Для динамической информации могут потребоваться методы запроса для запроса обновленных данных из источника данных. Если обновления не требуются, данные загружаются порциями.
Тестирование ETL
В процессе разработки разработчик ETL отвечает за тестирование системы, модулей, моделей данных и архитектуры хранилища. Помимо обычных мероприятий по обеспечению качества, при тестировании ETL необходимо проверить следующие аспекты:
- Тестирование модели данных
- Тестирование архитектуры хранилища данных
- Проверка средств представления
- Проверка потока данных
- Тестирование скорости загрузки / скачивания / запроса
- Тесты производительности системы
Техническая реализация обычно выполняется командой QA и разработчиками программного обеспечения.Но аспекты, связанные с данными, проверяются отделом ETL и аналитикой данных. «Тестирование ETL включает в себя тестирование кода системы ETL, разработку данных и методы сопоставления. Анализ первопричин всех процессов и решение производственных проблем также являются частью процесса, как и стандартные тесты баз данных и тестирование потока данных », — отмечает Уэйн Яддов.
Для выполнения всех вышеперечисленных обязанностей разработчик ETL должен обладать богатым техническим образованием. Итак, теперь мы переходим к фактическому набору навыков, которым обладает разработчик ETL.
Набор навыков разработчика ETL
Разработчик ETL — это роль в конкретной дисциплине, требующая опыта в нескольких областях. Разработчик ETL имеет образование в области разработки программного обеспечения и опыт разработки баз данных. Таков общий состав ETL-разработчика, но давайте сузим его до конкретных навыков.
Список навыков разработчика ETL, необходимых для выполнения соответствующих обязанностей
Опыт работы с инструментами ETL .Поскольку инженерия данных — зрелая отрасль, на рынке имеется множество готовых решений. Такие инструменты, как Talend, Informatica и Pentaho, считаются отраслевыми стандартами. Таким образом, опыт работы с этими инструментами для ETL-разработчика похож на Photoshop для дизайнера.
Инструменты
ETL — это готовые решения, которые могут выполнять этапы извлечения, преобразования и загрузки с самого начала. Разработчик ETL в «этом» случае является администратором инструмента интеграции данных, подключенного к источникам данных и хранилищу.Задача состоит в том, чтобы интегрировать существующие инструменты с инструментом ETL, управлять операциями и реализовать интерфейс, позволяющий использовать данные.
База данных / администратор баз данных / архитектор фон . Разработчик ETL должен быть специалистом в области разработки баз данных. Чтобы понять требования к хранилищу данных и спроектировать архитектуру хранилища, разработчик ETL должен иметь опыт работы с базами данных SQL / NoSQL и отображением данных. Существуют также такие инструменты, как Hadoop, который является одновременно фреймворком и платформой, используемой в ETL в качестве инструмента интеграции данных.
Экспертиза анализа данных . Пока разработчик ETL участвует в моделировании, отображении и форматировании данных, необходим опыт анализа данных.
Знание скриптовых языков . Если вы имеете дело с большими наборами данных и сложными конвейерами, вам потребуется некоторая автоматизация. Разработчики ETL могут использовать сценарии для автоматизации небольших частей процесса. Самыми популярными языками сценариев для ETL являются Bash, Python и Perl.
Опыт разработки программного обеспечения .Разработчики ETL имеют большой опыт в языках программирования. C ++ и Java чаще всего используются в ETL. JavaScript также может использоваться, если инструменты представления данных будут использоваться через мобильные устройства.
Поиск и устранение неисправностей . Системы обработки данных работают с большими объемами данных и включают несколько структурных элементов. Разработчик ETL несет ответственность за правильное функционирование системы, что требует сильного аналитического мышления и навыков устранения неполадок.
Когда нанимать разработчика ETL?
Разработчик ETL пересекается с другими ролями инжиниринга данных из-за технической подготовки и области ответственности.Основная рекомендация — нанять ETL-разработчика, когда вы строите крупномасштабную систему обработки данных и поток данных является сложным. В таком случае незаменим разработчик ETL.
Разработчик хранилища вместо разработчика ETL : Если в центре внимания вашей системы находятся операции внутри хранилища данных, разработчик хранилища является хорошей альтернативой разработчику ETL. Специализированный разработчик базы данных / хранилища с большим опытом работы в проектах бизнес-аналитики может реализовать потоки данных, а также использовать инструменты интеграции данных.
Разработчик бизнес-аналитики вместо разработчика ETL : Разработчики бизнес-аналитики — это инженеры-программисты, специализирующиеся на реализации интерфейсов бизнес-аналитики, основанных на конвейерах данных. Если ваш проект ориентирован на готовые решения и интеграцию с поставщиками инструментов бизнес-аналитики, разработчик бизнес-аналитики сможет выполнить задачу по сопровождению системы.
.
Как стать разработчиком ETL
Когда дело доходит до разработки etl, это больше, чем кажется на первый взгляд. Например, знаете ли вы, что они зарабатывают в среднем 39,84 доллара в час? Это 82865 долларов в год!
Ожидается, что в период с 2018 по 2028 год карьера вырастет на 21% и откроет 284 100 вакансий в США.
Многие разработчики etl обладают определенными навыками для выполнения своих обязанностей. Просматривая резюме, мы смогли сузить круг наиболее общих навыков для человека на этой должности.Мы обнаружили, что во многих резюме указаны аналитические способности, творческие способности и коммуникативные навыки.
Когда дело доходит до наиболее важных навыков, необходимых для разработки etl, мы обнаружили, что во многих резюме указано, что 16,3% разработчиков etl включают хранилище данных, в то время как 7,7% резюме включают информацию, а 7,5% резюме включают бизнес-требования. . Подобные навыки полезны, когда дело касается выполнения основных должностных обязанностей.
Когда дело доходит до поиска работы, многие ищут ключевой термин или фразу.Вместо этого может быть более полезным поиск по отраслям, поскольку вам может не хватать вакансий, о которых вы никогда не думали, в отраслях, которые, как вы даже не думали, предлагают должности, связанные с должностью разработчика etl. Но с какой отрасли начать? Большинство разработчиков etl фактически находят работу в профессиональных и технологических отраслях.
Если вы заинтересованы в том, чтобы стать разработчиком etl, в первую очередь следует подумать о том, сколько образования вам нужно. Мы определили, что 57,9% разработчиков etl имеют степень бакалавра.Что касается уровня высшего образования, мы обнаружили, что 38,9% разработчиков etl имеют степень магистра. Несмотря на то, что у большинства разработчиков etl есть высшее образование, невозможно получить только среднюю школу или GED.
Выбор подходящей специальности всегда является важным шагом при изучении того, как стать разработчиком etl. Когда мы исследовали наиболее распространенные специальности для разработчиков etl, мы обнаружили, что они чаще всего получают степени бакалавра или магистра. Другие степени, которые мы часто видим в резюме разработчиков etl, включают дипломы или степени младшего специалиста.
Возможно, вы обнаружите, что опыт работы на другой работе поможет вам стать разработчиком etl. Фактически, многие рабочие места разработчика etl требуют опыта работы в роли разработчика информационных технологий. Между тем, многие разработчики etl также имеют предыдущий опыт работы на таких должностях, как разработчик или разработчик сервера sql.
.
ETL (извлечение, преобразование и загрузка) Process
- Home
Testing
- Back
- Agile Testing
- BugZilla
- Cucumber
- Database Testing
- Database Testing
- Назад
- JUnit
- LoadRunner
- Ручное тестирование
- Мобильное тестирование
- Mantis
- Почтальон
- QTP
- Назад
- Центр качества SAP
- SoapUI
- Управление тестированием
- TestLink
SAP
- Назад
- ABAP
- APO
- Начинающий
- Basis
- BODS
- BI
- BPC
- CO
- Назад
- CRM
- Crystal Reports
- QM4000
- Заработная плата
- Назад
- PI / PO
- PP
- SD
- SAPUI5
- Безопасность
- Менеджер решений
- Successfactors
- Учебники SAP
- Apache
- AngularJS
- ASP.Net
- C
- C #
- C ++
- CodeIgniter
- СУБД
- JavaScript
- Назад
- Java
- JSP
- Kotlin
- Linux
- Linux
- Kotlin
- Linux
- Perl
js
- Назад
- PHP
- PL / SQL
- PostgreSQL
- Python
- ReactJS
- Ruby & Rails
- Scala
- SQL
- SQL
- UML
- VB.Net
- VBScript
- Веб-службы
- WPF
000
000
0003 SQL
000
0003 SQL
000
Обязательно учите!
- Назад
- Бухгалтерский учет
- Алгоритмы
- Android
- Блокчейн
- Business Analyst
- Создание веб-сайта
- CCNA
- Облачные вычисления
- 00030003 COBOL
- 9000 Compiler
- 00030002 9000 Compiler
- Ethical Hacking
- Учебники по Excel
- Программирование на Go
- IoT
- ITIL
- Jenkins
- MIS
- Сети
- Операционная система
- 0003
- Назад
- Управление проектами Обзоры
- Salesforce
- SEO
- Разработка программного обеспечения
- VB A
- 9000 Встроенные системы
- 00030002 9000 Compiler
Big Data
- Назад
- AWS
- BigData
- Cassandra
- Cognos
- Хранилище данных
- HBOps
- HBOps
- MicroStrategy
- MongoDB
0003
0003
0003
.
Описание работы для разработчика ETL | Работа
«Извлечь, преобразовать, загрузить» относится к практике загрузки данных в среду хранилища данных на предприятии. Это означает, что данные необходимо копировать или извлекать из бизнес-процессов и загружать в хранилище данных, чтобы вся информация была актуальной. Разработчик ETL несет ответственность за проектирование системы хранения данных для компании, а также за ее тестирование и устранение неполадок до того, как она будет запущена.
Образование
Чтобы претендовать на должность разработчика ETL, вам, скорее всего, понадобится степень бакалавра в области компьютерных наук, информационных технологий или другой компьютерной дисциплины.Чтобы улучшить ваши перспективы трудоустройства, доступны также учебные занятия, которые могут помочь людям с прочным основанием знаний ETL улучшить свои знания и навыки.
Технические знания
Помимо стандартных образовательных данных, вы должны быть в состоянии доказать, что вы технически способны работать с некоторыми языками кодирования, обычно используемыми при разработке ETL. К ним относятся SQL, Java, XML и несколько методов архитектуры хранилищ данных, таких как EDW, ODS, DM, ROLAP и MOLAP.Работодатели также предпочитают кандидатов-разработчиков ETL, которые уже имеют большой опыт поиска и устранения неисправностей и решения сложных технических проблем.
Должностные обязанности
Разработчики ETL несут ответственность за проектирование и создание хранилища данных и все связанные с этим функции извлечения, преобразования и загрузки данных в компании. После того, как фундамент был заложен, разработчики также должны протестировать свои проекты, чтобы гарантировать бесперебойную работу системы. Более того, разработчики должны быть экспертами в получении целостного представления о ситуации с данными в компании.Набор навыков, который ищут многие работодатели, называется моделированием данных. Это означает, что разработчикам необходимо уметь читать, анализировать и усваивать то, что бизнес хочет достичь с помощью своих данных, и разрабатывать наилучший из возможных процессов ETL для этих целей. Проекты баз данных могут принимать различные формы, включая схемы в виде звездочек и снежинок.
Личностные черты разработчика ETL
Хотя роль разработчика ETL требует кого-то с широкими техническими знаниями, она также требует кого-то с хорошим набором коммуникативных навыков и аналитического ума.Поскольку разработчик ETL отвечает за руководство ИТ-командой при построении хранилища данных, он должен уметь четко и эффективно сообщать цели и инструкции. Кроме того, разработчики часто работают с коммерческой стороной компании, чтобы определить наилучший образ действий при проектировании системы. Это означает, что разработчик должен уметь выслушивать и интерпретировать то, что бизнес-сторона хочет видеть выполненным, обсуждать детали в простой для понимания форме, а затем переводить все это в технический результат.
.