Преобразование данных - Википедия - Data transformation

В вычислениях Преобразование данных это процесс преобразования данных из одного формата или структуры в другой формат или структуру. Это фундаментальный аспект большинства интеграция данных[1] и управление данными такие задачи как обработка данных, хранилище данных, интеграция данных и интеграция приложений.

Преобразование данных может быть простым или сложным в зависимости от требуемых изменений данных между исходными (начальными) данными и целевыми (конечными) данными. Преобразование данных обычно выполняется вручную и автоматически.[2] Инструменты и технологии, используемые для преобразования данных, могут сильно различаться в зависимости от формата, структуры, сложности и объема преобразовываемых данных.

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

Когда отображение данных косвенное, через посредника модель данных, процесс также называют передача данных.

Процесс преобразования данных

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

  • Обнаружение данных
  • Отображение данных
  • Генерация кода
  • Выполнение кода
  • Обзор данных

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

Шаги можно описать следующим образом:

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

Отображение данных это процесс определения того, как отдельные поля отображаются, изменяются, объединяются, фильтруются, агрегируются и т. д. для получения окончательного желаемого результата. Разработчики или специалисты по анализу технических данных обычно выполняют отображение данных, поскольку они работают с конкретными технологиями для определения правил преобразования (например, визуального ETL инструменты,[3] языки трансформации).

Генерация кода - это процесс генерации исполняемого кода (например, SQL, Python, R или других исполняемых инструкций), который преобразует данные на основе желаемых и определенных правил отображения данных.[4] Обычно технологии преобразования данных генерируют этот код.[5] на основе определений или метаданных, определенных разработчиками.

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

Обзор данных это последний шаг в процессе, который направлен на обеспечение соответствия выходных данных требованиям преобразования. Обычно этот шаг выполняет бизнес-пользователь или конечный пользователь данных. Любые аномалии или ошибки в данных, которые обнаруживаются и сообщаются разработчику или аналитику данных в качестве новых требований, которые необходимо реализовать в процессе преобразования.[1]

Типы преобразования данных

Пакетное преобразование данных

Традиционно преобразование данных было массовым или пакетным процессом,[6] при этом разработчики пишут код или реализуют правила преобразования в средстве интеграции данных, а затем выполняют этот код или эти правила для больших объемов данных.[7] Этот процесс может следовать линейному набору шагов, как описано выше в процессе преобразования данных.

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

Когда данные должны быть преобразованы и доставлены с малой задержкой, часто используется термин «микропакет».[6] Это относится к небольшим пакетам данных (например, небольшое количество строк или небольшой набор объектов данных), которые могут быть обработаны очень быстро и доставлены в целевую систему при необходимости.

Преимущества пакетного преобразования данных

Традиционные процессы преобразования данных хорошо служат компаниям на протяжении десятилетий. Различные инструменты и технологии (профилирование данных, визуализация данных, очистка данных, интеграция данных и т. Д.) Достигли зрелости, и большинство (если не все) предприятий преобразовывают огромные объемы данных, которые используются во внутренних и внешних приложениях, хранилищах данных и других хранилищах данных.[8]

Ограничения традиционного преобразования данных

Этот традиционный процесс также имеет ограничения, которые снижают его общую эффективность и действенность.[1][2][7]

Люди, которым необходимо использовать данные (например, бизнес-пользователи), не играют прямой роли в процессе преобразования данных.[9] Обычно пользователи передают задачу преобразования данных разработчикам, обладающим необходимыми навыками программирования или техническими навыками для определения преобразований и их выполнения с данными.[8]

В этом процессе разработчику остается большая часть работы по определению необходимых преобразований. Разработчик интерпретирует требования бизнес-пользователей и реализует соответствующий код / ​​логику. Это может привести к ошибкам в процессе (из-за неверно истолкованных требований), а также увеличивает время для достижения решения.[9][10]

Эта проблема вызвала потребность в гибкости и самообслуживании при интеграции данных (т. Е. Расширении прав и возможностей пользователей данных и предоставлении им возможности преобразовывать сами данные в интерактивном режиме).[7][10]

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

Интерактивное преобразование данных

Интерактивное преобразование данных (IDT)[12] - это новая возможность, которая позволяет бизнес-аналитикам и бизнес-пользователям напрямую взаимодействовать с большими наборами данных через визуальный интерфейс,[9] понимать характеристики данных (с помощью автоматического профилирования или визуализации данных), а также изменять или исправлять данные с помощью простых взаимодействий, таких как щелчок или выбор определенных элементов данных.[2]

Хотя IDT следует тем же этапам процесса интеграции данных, что и пакетная интеграция данных, ключевое отличие состоит в том, что этапы не обязательно выполняются линейно и обычно не требуют значительных технических навыков для завершения.[13]

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

Решения IDT предоставляют интегрированный визуальный интерфейс, который объединяет ранее разрозненные этапы анализа данных, сопоставления данных, генерации / выполнения кода и проверки данных.[8] Интерфейсы IDT включают в себя визуализацию, чтобы показать пользовательские шаблоны и аномалии в данных, чтобы они могли идентифицировать ошибочные или выпадающие значения.[9]

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

Исключая разработчика из процесса, системы IDT сокращают время, необходимое для подготовки и преобразования данных, устраняют дорогостоящие ошибки в интерпретации требований пользователей и позволяют бизнес-пользователям и аналитикам контролировать свои данные и взаимодействовать с ними по мере необходимости.[10]

Трансформационные языки

Для преобразования данных доступно множество языков. Много языки трансформации требуется грамматика быть обеспеченным. Во многих случаях грамматика построена с использованием чего-то очень похожего на Форма Бэкуса – Наура (БНФ). Для таких целей доступно множество языков, различающихся по доступности (стоимости) и общей полезности.[14] Примеры таких языков включают:

  • AWK - один из старейших и популярных языков преобразования текстовых данных;
  • Perl - язык высокого уровня с процедурным и объектно-ориентированным синтаксисом, способный выполнять мощные операции с двоичными или текстовыми данными.
  • Языки шаблонов - специализирован для преобразования данных в документы (см. также обработчик шаблонов );
  • TXL - прототипирование описаний на основе языка, используемых для исходного кода или преобразования данных.
  • XSLT - стандартный язык преобразования данных XML (подходит для XQuery во многих приложениях);

Кроме того, такие компании, как Trifacta и Paxata, разработали предметно-ориентированные языки трансформации (DSL) для обслуживания и преобразования наборов данных. Развитие предметно-ориентированных языков было связано с увеличением производительности и доступности для нетехнических пользователей.[15] «Wrangle» от Trifacta является примером такого предметно-ориентированного языка.[16]

Еще одно преимущество недавней тенденции DSL состоит в том, что DSL может абстрагироваться от базового выполнения логики, определенной в DSL, но также может использовать ту же логику в различных механизмах обработки, таких как Искра, Уменьшение карты, и поток данных. В случае DSL язык преобразования не привязан к движку.[16]

Хотя трансформационные языки обычно лучше всего подходят для трансформации, для достижения полезного преобразования можно использовать что-нибудь простое, например регулярные выражения. А Текстовый редактор подобно vim, emacs или же TextPad поддерживает использование регулярных выражений с аргументами. Это позволило бы заменить все экземпляры определенного шаблона другим шаблоном с использованием частей исходного шаблона. Например:

foo ("некоторая строка", 42, gCommon); bar (someObj, anotherObj); foo ("другая строка", 24, gCommon); bar (myObj, myOtherObj);

оба могут быть преобразованы в более компактную форму, например:

foobar («какая-то строка», 42, someObj, anotherObj); foobar («другая строка», 24, myObj, myOtherObj);

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

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

Смотрите также

Рекомендации

  1. ^ а б c d CIO.com. Agile приходит к интеграции данных. Извлекаются из: https://www.cio.com/article/2378615/data-management/agile-comes-to-data-integration.html
  2. ^ а б c DataXFormer. Моркос, Абеджан, Ильяс, Уззани, Папотти, Стоунбрейкер. Инструмент интерактивного преобразования данных. Извлекаются из: http://livinglab.mit.edu/wp-content/uploads/2015/12/DataXFormer-An-Interactive-Data-Transformation-Tool.pdf
  3. ^ DWBIMASTER. 10 лучших инструментов ETL. Извлекаются из: http://dwbimaster.com/top-10-etl-tools/
  4. ^ Петр Обрехт, Зденек Коуба. Преобразование данных на основе метаданных. Извлекаются из: http://labe.felk.cvut.cz/~aubrech/bin/Sumatra.pdf
  5. ^ LearnDataModeling.com. Генераторы кода. Извлекаются из: http://www.learndatamodeling.com/tm_code_generator.php
  6. ^ а б TDWI. 10 правил интеграции данных в реальном времени. Извлекаются из: https://tdwi.org/Articles/2012/12/11/10-Rules-Real-Time-Data-Integration.aspx?Page=1
  7. ^ а б c Топ Омитола, Андре Фрейтас, Эдвард Карри, Шон О'Райен, Николас Гиббинс и Найджел Шедболт. Захват операций интерактивного преобразования данных с использованием рабочих процессов Provenance. http://andrefreitas.org/papers/preprint_capturing%20interactive_data_transformation_eswc_highlights.pdf
  8. ^ а б c Ценность преобразования данных
  9. ^ а б c d Мортон, Кристи - Интерактивная интеграция данных и разрешение сущностей для исследовательской визуальной аналитики данных. Извлекаются из: https://digital.lib.washington.edu/researchworks/handle/1773/35165
  10. ^ а б c McKinsey.com. Использование Agile для ускорения преобразования данных
  11. ^ «Почему самообслуживание Prep - убийственное приложение для больших данных». Датанами. 2016-05-31. Получено 2017-09-20.
  12. ^ Топе Омитола, Андре Фрейтас, Эдвард Карри, Шон О'Риэн, Николас Гиббинс и Найджел Шедболт. Захват операций интерактивного преобразования данных с использованием рабочих процессов Provenance. http://andrefreitas.org/papers/preprint_capturing%20interactive_data_transformation_eswc_highlights.pdf
  13. ^ Пэн Цун, Чжан Сяои. Исследование и разработка системы интерактивного преобразования и миграции данных для разнородных источников данных. Извлекаются из: https://ieeexplore.ieee.org/document/5211525/
  14. ^ DMOZ. Извлечение и преобразование. Извлекаются из: https://dmoztools.net/Computers/Software/Databases/Data_Warehousing/Extraction_and_Transformation/
  15. ^ "Язык Wrangle - Trifacta Wrangler - Документация Trifacta". docs.trifacta.com. Получено 2017-09-20.
  16. ^ а б Кандел, Джо Хеллерштейн, Шон. «Преимущества подхода к преобразованию данных с использованием предметно-ориентированного языка - Strata + Hadoop World в Нью-Йорке, 2014 г.». Conferences.oreilly.com. Получено 2017-09-20.

внешняя ссылка