Разница между «Набором данных» и «Встроенными» источниками в потоках данных фабрики данных Azure?

#azure #bigdata #azure-pipelines #azure-data-factory #azure-data-flow

Вопрос:

В чем разница между двумя типами источников «Набор данных» и «Встроенный» в источнике потока данных фабрики данных Azure ? В какой ситуации я должен использовать одно вместо другого ?

Я прочитал официальную документацию Microsoft, но я не мог понять это :

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

Встроенные наборы данных рекомендуется использовать при использовании гибких схем, разовых экземпляров источников или параметризованных источников. Если ваш источник сильно параметризован, встроенные наборы данных позволяют не создавать «фиктивный» объект. Встроенные наборы данных основаны на Spark, и их свойства являются собственными для потока данных.

Ответ №1:

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

Встроенный позволяет вам получить доступ к определенным (но не ко всем) связанным сервисным ресурсам без необходимости создавать еще один объект набора данных. Если вашей операции не нужна схема или вам не нужен объект набора данных для повторного использования в нескольких проектах, то Inline-более чистый вариант. Я упомяну об этом, поскольку в документе, который вы процитировали, указано: Inline может использовать параметры конвейера, поэтому решение все равно может быть динамичным.

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

Комментарии:

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

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