stringtranslate.com

Преобразование данных (вычисления)

В вычислительной технике преобразование данных — это процесс преобразования данных из одного формата или структуры в другой формат или структуру. Это фундаментальный аспект большинства задач интеграции данных [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] Примеры таких языков включают:

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

Еще одним преимуществом недавней тенденции трансформационных языков, специфичных для предметной области, является то, что трансформационный язык, специфичный для предметной области, может абстрагировать базовое выполнение логики, определенной в трансформационном языке, специфичном для предметной области. Они также могут использовать ту же логику в различных механизмах обработки, таких как Spark , MapReduce и Dataflow . Другими словами, при использовании языка трансформации, специфичного для предметной области, язык трансформации не привязан к базовому механизму. [17]

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

foo ("какая-то строка", 42, gCommon);бар (someObj,otherObj);foo ("еще одна строка", 24, gCommon);бар (myObj, myOtherObj);

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

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

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

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

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

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

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

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