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

редактировать

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

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

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

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

Содержание

  • 1 Процесс преобразования данных
  • 2 типа преобразования данных
    • 2.1 Преобразование пакетных данных
    • 2.2 Преимущества преобразования пакетных данных
    • 2.3 Ограничения традиционного преобразования данных
    • 2.4 Интерактивное преобразование данных
  • 3 Языки преобразования
  • 4 См. также
  • 5 Ссылки
  • 6 Внешние ссылки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Языки преобразования

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

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

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

Еще одно преимущество недавней тенденции DSL заключается в том, что DSL может абстрактное выполнение логики, определенной в DSL, но также может использовать ту же логику в различных механизмах обработки, таких как Spark, MapReduce и Dataflow. В DSL язык преобразования не привязан к движку.

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

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

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

foobar ("some string", 42, someObj, anotherObj); foobar ("другая строка", 24, myObj, myOtherObj);

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

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

См. Также

Ссылки

Внешние ссылки

Последняя правка сделана 2021-05-17 14:11:27
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте