Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Трансформационные языки [ править ]

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

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

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

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

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

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

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

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

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

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

См. Также [ править ]

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

Ссылки [ править ]

  1. ^ а б в г CIO.com. Agile приходит к интеграции данных. Получено с: https://www.cio.com/article/2378615/data-management/agile-comes-to-data-integration.html.
  2. ^ а б в 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. ^ Петр Aubrecht, Зденек Kouba. Преобразование данных на основе метаданных. Получено с: 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. ^ a b c Топ Омитола, Андре Фрейтас, Эдвард Карри, Шон О'Райен, Николас Гиббинс и Найджел Шедболт. Захват операций интерактивного преобразования данных с использованием рабочих процессов Provenance. Источник: http://andrefreitas.org/papers/preprint_capturing%20interactive_data_transformation_eswc_highlights.pdf
  8. ^ a b c Ценность преобразования данных
  9. ^ a b c d Мортон, Кристи - Интерактивная интеграция данных и разрешение сущностей для исследовательской визуальной аналитики данных. Получено с: https://digital.lib.washington.edu/researchworks/handle/1773/35165.
  10. ^ а б в McKinsey.com. Использование Agile для ускорения преобразования данных
  11. ^ «Почему самообслуживание Prep - убийственное приложение для больших данных» . Датанами . 2016-05-31 . Проверено 20 сентября 2017 .
  12. ^ Тоуп Omitola, Андре Фрейтас, Эдвард Карри, Шон O'Riain, Николас Гиббинс, и Найджел Shadbolt. Захват операций интерактивного преобразования данных с использованием рабочих процессов 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 . Проверено 20 сентября 2017 .
  16. ^ а б Кандел, Джо Хеллерштейн, Шон. «Преимущества подхода к преобразованию данных с использованием предметно-ориентированного языка - Strata + Hadoop World в Нью-Йорке, 2014 г.» . Conferences.oreilly.com . Проверено 20 сентября 2017 .

Внешние ссылки [ править ]

  • Извлечение и преобразование в Curlie