Преобразование данных (вычисления)
Преобразование данных |
---|
Концепции |
Языки трансформации |
Техники и трансформации |
Приложения |
Связанный |
В вычислительной технике преобразование данных — это процесс преобразования данных из одного формата или структуры в другой формат или структуру. Это фундаментальный аспект большинства процессов интеграции данных. [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]
Тем не менее, могут возникнуть некоторые проблемы совместимости (например, новые источники данных, такие как Интернет вещей , могут некорректно работать со старыми инструментами) и ограничения соответствия из-за различий в методах управления данными , их подготовки и аудита. [12]
данных Интерактивное преобразование
Интерактивное преобразование данных (IDT) [13] — это новая возможность, которая позволяет бизнес-аналитикам и бизнес-пользователям напрямую взаимодействовать с большими наборами данных через визуальный интерфейс, [9] понимать характеристики данных (посредством автоматического профилирования или визуализации данных), а также изменять или исправлять данные посредством простых взаимодействий, таких как нажатие или выбор определенных элементов данных. [2]
Хотя интерактивное преобразование данных следует тем же этапам процесса интеграции данных, что и пакетная интеграция данных, ключевое отличие состоит в том, что эти шаги не обязательно выполняются линейно и обычно не требуют значительных технических навыков для завершения. [14]
Существует ряд компаний, предоставляющих интерактивные инструменты преобразования данных, в том числе Trifacta, Alteryx и Paxata. Они стремятся эффективно анализировать, отображать и преобразовывать большие объемы данных, одновременно абстрагируя некоторые технические сложности и процессы, происходящие под капотом.
Решения для интерактивного преобразования данных предоставляют интегрированный визуальный интерфейс, который сочетает в себе ранее разрозненные этапы анализа данных, сопоставления данных, генерации/выполнения кода и проверки данных. [8] То есть, если изменения вносятся за один шаг (например, переименование), программное обеспечение автоматически обновляет предыдущие или последующие шаги соответственно. Интерфейсы для интерактивного преобразования данных включают визуализацию, которая показывает пользовательские закономерности и аномалии в данных, чтобы они могли идентифицировать ошибочные или выходящие за рамки значения. [9]
После завершения преобразования данных система может сгенерировать исполняемый код/логику, которую можно выполнить или применить к последующим аналогичным наборам данных.
Отстранив разработчика от процесса, интерактивные системы преобразования данных сокращают время, необходимое для подготовки и преобразования данных, устраняют дорогостоящие ошибки в интерпретации требований пользователей и дают бизнес-пользователям и аналитикам возможность контролировать свои данные и взаимодействовать с ними по мере необходимости. [10]
Трансформационные языки [ править ]
Существует множество языков, доступных для преобразования данных. Многие языки трансформации требуют грамматики предоставления . Во многих случаях грамматика структурирована с использованием чего-то очень напоминающего форму Бэкуса-Наура (БНФ). Для таких целей доступно множество языков, различающихся по доступности (стоимости) и общей полезности. [15] Примеры таких языков включают:
- AWK — один из старейших и популярных языков преобразования текстовых данных;
- Perl — язык высокого уровня с процедурным и объектно-ориентированным синтаксисом, способный выполнять мощные операции с двоичными или текстовыми данными.
- Языки шаблонов — специализированы для преобразования данных в документы (см. также процессор шаблонов );
- TXL — описания на основе языка прототипирования, используемые для преобразования исходного кода или данных.
- XSLT — стандартный язык преобразования XML-данных (подходит для XQuery во многих приложениях);
Кроме того, такие компании, как Trifacta и Paxata, разработали специализированные трансформационные языки (DSL) для обслуживания и преобразования наборов данных. Развитие предметно-ориентированных языков связано с повышением производительности и доступности для нетехнических пользователей. [16] «Wrangle» компании Trifacta является примером такого предметно-ориентированного языка. [17]
Еще одним преимуществом недавней тенденции к трансформационным языкам, специфичным для предметной области, является то, что трансформационный язык, специфичный для предметной области, может абстрагировать базовое выполнение логики, определенной в трансформационном языке, специфичном для предметной области. Они также могут использовать ту же логику в различных механизмах обработки, таких как Spark , MapReduce и Dataflow . Другими словами, при использовании языка трансформации, специфичного для предметной области, язык трансформации не привязан к базовому механизму. [17]
Хотя трансформационные языки обычно лучше всего подходят для трансформации, что-то столь же простое, как регулярные выражения для достижения полезного преобразования можно использовать . Текстовый редактор, такой как vim , emacs или TextPad, поддерживает использование регулярных выражений с аргументами. Это позволит заменить все экземпляры определенного шаблона другим шаблоном, используя части исходного шаблона. Например:
foo ("some string", 42, gCommon); bar (someObj, anotherObj); foo ("another string", 24, gCommon); bar (myObj, myOtherObj);
оба могут быть преобразованы в более компактную форму, например:
foobar("some string", 42, someObj, anotherObj); foobar("another string", 24, myObj, myOtherObj);
Другими словами, все экземпляры вызова функции foo с тремя аргументами, за которым следует вызов функции с двумя аргументами, будут заменены одним вызовом функции с использованием некоторых или всего исходного набора аргументов.
Еще одним преимуществом использования регулярных выражений является то, что они не пройдут тест на нулевое преобразование. То есть, используя выбранный вами трансформационный язык, запустите пример программы через преобразование, которое не выполняет никаких преобразований. Многие трансформационные языки не пройдут этот тест.
См. также [ править ]
- Очистка данных
- Сопоставление данных
- Интеграция данных
- Подготовка данных
- Обсуждение данных
- Извлечь, преобразовать, загрузить
- Информационная интеграция
Ссылки [ править ]
- ↑ Перейти обратно: Перейти обратно: а б с д CIO.com. Agile приходит к интеграции данных. Получено с: https://www.cio.com/article/2378615/data-management/agile-comes-to-data-integration.html. Архивировано 29 августа 2017 г. на Wayback Machine.
- ↑ Перейти обратно: Перейти обратно: а б с DataXFormer. Моркос, Абеджан, Ильяс, Узани, Папотти, Стоунбрейкер. Интерактивный инструмент преобразования данных. Получено с сайта: http://livinglab.mit.edu/wp-content/uploads/2015/12/DataXFormer-An-Interactive-Data-Transformation-Tool.pdf. Архивировано 5 августа 2019 г. на Wayback Machine.
- ^ ДВБИМАСТЕР. 10 лучших инструментов ETL. Получено с: http://dwbimaster.com/top-10-etl-tools/. Архивировано 29 августа 2017 г. в Wayback Machine.
- ^ Петр Аубрехт, Зденек Куба. Преобразование данных на основе метаданных. Получено с сайта: http://labe.felk.cvut.cz/~aubrech/bin/Sumatra.pdf. Архивировано 16 апреля 2021 г. в Wayback Machine.
- ^ LearnDataModeling.com. Генераторы кода. Получено с сайта: http://www.learndatamodeling.com/tm_code_generator.php. Архивировано 2 августа 2017 г. в Wayback Machine.
- ↑ Перейти обратно: Перейти обратно: а б ТДВИ. 10 правил интеграции данных в реальном времени. Получено с: https://tdwi.org/Articles/2012/12/11/10-Rules-Real-Time-Data-Integration.aspx?Page=1. Архивировано 29 августа 2017 г. на Wayback Machine.
- ↑ Перейти обратно: Перейти обратно: а б с Топе Омитола, Андре Фрейтас, Эдвард Карри, Шон О'Риэйн, Николас Гиббинс и Найджел Шедболт. Захват операций интерактивного преобразования данных с использованием рабочих процессов Provenance. Получено с сайта: http://andrefreitas.org/papers/preprint_capturing%20interactive_data_transformation_eswc_highlights.pdf . Архивировано 31 января 2016 г. на Wayback Machine.
- ↑ Перейти обратно: Перейти обратно: а б с Ценность преобразования данных
- ↑ Перейти обратно: Перейти обратно: а б с д Мортон, Кристи - Интерактивная интеграция данных и разрешение сущностей для исследовательской визуальной аналитики данных. Получено с: https://digital.lib.washington.edu/researchworks/handle/1773/35165. Архивировано 7 сентября 2017 г. в Wayback Machine.
- ↑ Перейти обратно: Перейти обратно: а б с McKinsey.com. Использование Agile для ускорения преобразования данных
- ^ «Почему подготовка самообслуживания — отличное приложение для больших данных» . Датанами . 31 мая 2016 г. Архивировано из оригинала 21 сентября 2017 г. Проверено 20 сентября 2017 г.
- ^ Серхио, Пабло (27 мая 2022 г.). «Ваше практическое руководство по преобразованию данных» . Блог Coupler.io . Архивировано из оригинала 17 мая 2022 г. Проверено 8 июля 2022 г.
- ^ Топе Омитола, Андре Фрейтас, Эдвард Карри, Шон О'Риайн, Николас Гиббинс и Найджел Шедболт. Захват операций интерактивного преобразования данных с использованием рабочих процессов Provenance. Получено с сайта: http://andrefreitas.org/papers/preprint_capturing%20interactive_data_transformation_eswc_highlights.pdf . Архивировано 31 января 2016 г. на Wayback Machine.
- ^ Пэн Цун, Чжан Сяои. Исследование и проектирование интерактивной системы преобразования и миграции данных для гетерогенных источников данных. Получено с: https://ieeexplore.ieee.org/document/5211525/. Архивировано 7 июня 2018 г. в Wayback Machine.
- ^ ДМОЗ. Извлечение и преобразование. Получено с: https://dmoztools.net/Computers/Software/Databases/Data_Warehousing/Extraction_and_Transformation/. Архивировано 29 августа 2017 г. на Wayback Machine.
- ^ «Язык Wrangler — Trifacta Wrangler — Документация Trifacta» . docs.trifacta.com . Архивировано из оригинала 21 сентября 2017 г. Проверено 20 сентября 2017 г.
- ↑ Перейти обратно: Перейти обратно: а б Кандел, Джо Хеллерштейн, Шон. «Преимущества предметно-ориентированного языкового подхода к преобразованию данных — Strata + Hadoop World в Нью-Йорке, 2014 г.» . Conferences.oreilly.com . Архивировано из оригинала 21 сентября 2017 г. Проверено 20 сентября 2017 г.
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка )
Внешние ссылки [ править ]
- Форматы файлов, преобразование и миграция , соответствующая статья в Викиверситете
- Извлечение и преобразование в Керли