Поделиться через


Использование библиотек переменных Fabric в Dataflow 2-го поколения (предварительная версия)

Замечание

Эта функция находится в стадии предварительного просмотра и доступна только для Dataflow Gen2 с CI/CD. Дополнительные сведения о том, как использовать эту возможность в сценариях непрерывной интеграции и непрерывного развертывания (CI/CD), можно найти в статье об архитектуре решений CI/CD и ALM для потока данных второго поколения и в сквозном руководстве по ссылкам на переменные в потоке данных.

Библиотеки переменных Fabric предлагают централизованный способ управления значениями конфигурации в рабочих нагрузках Microsoft Fabric. Благодаря новой интеграции в Dataflow 2-го поколения (предварительная версия) вы можете ссылаться на эти переменные непосредственно в потоке данных, обеспечивая динамическое поведение в средах и упрощая рабочие процессы CI/CD.

Предпосылки

Чтобы использовать библиотеки переменных Fabric в Dataflow 2-го поколения, убедитесь в следующем:

Использование библиотек переменных Fabric в Dataflow 2-го поколения

В потоке данных 2-го поколения можно ссылаться на переменную с помощью одной из следующих функций:

Ожидаемый идентификатор, который должен быть передан любой из этих двух функций, должен соответствовать формату:

$(/**/LibraryName/VariableName)

В следующих примерах обоих функций в сценарии, где есть библиотека переменных с именем "Моя библиотека " и переменная строки типа с именем My Variable:

Variable.ValueOrDefault("$(/**/My Library/My Variable)", "Sample")
Variable.Value("$(/**/My Library/My Variable)")

Применяя эту функцию к скрипту запроса, давайте рассмотрим следующий пример запроса, который подключается к таблице с именем Table1 из определенного объекта LakehouseId и WorkspaceId с помощью соединителя Fabric Lakehouse.

let
  Source = Lakehouse.Contents([]),
  #"Navigation 1" = Source{[workspaceId = "cfafbeb1-8037-4d0c-896e-a46fb27ff229"]}[Data],
  #"Navigation 2" = #"Navigation 1"{[lakehouseId = "5b218778-e7a5-4d73-8187-f10824047715"]}[Data],
  #"Navigation 3" = #"Navigation 2"{[Id = "Table1", ItemKind = "Table"]}[Data]
in
  #"Navigation 3"

Вы планируете заменить значения, переданные для workspaceId и lakehouseId, чтобы в сценариях CI/CD они динамически указывали на правильный элемент на правильном этапе.

Для этого в той же рабочей области, где находится поток данных, у вас также есть библиотека переменных с именем "Моя библиотека ", содержащая следующие переменные, которые вы планируете ссылаться в потоке данных:

Имя переменной Тип переменной Набор значений по умолчанию
Идентификатор рабочей области String a8a1bffa-7eea-49dc-a1d2-6281c1d031f1
Идентификатор Lakehouse String 37dc8a41-dea9-465d-b528-3e95043b2356

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

let
  Source = Lakehouse.Contents([]),
  #"Navigation 1" = Source{[workspaceId = Variable.ValueOrDefault("$(/**/My Library/Workspace ID)",  "cfafbeb1-8037-4d0c-896e-a46fb27ff229")]}[Data],
  #"Navigation 2" = #"Navigation 1"{[lakehouseId =  Variable.ValueOrDefault("$(/**/My Library/Lakehouse ID)","5b218778-e7a5-4d73-8187-f10824047715")]}[Data],
  #"Navigation 3" = #"Navigation 2"{[Id = "Table1", ItemKind = "Table"]}[Data]
in
  #"Navigation 3"

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

Caution

В настоящее время редактор Power Query не поддерживает оценку переменных. Мы рекомендуем использовать функцию Variable.ValueOrDefault, чтобы обеспечить, что ваш рабочий процесс создания использует значение по умолчанию для прототипирования.

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

Соображения и ограничения

В следующем списке описаны важные ограничения и поведение, которые следует учитывать при использовании библиотек переменных Fabric с dataflow 2-го поколения. Эти ограничения влияют на то, как переменные ссылаются, оцениваются и применяются во время разработки и выполнения.

  • Область рабочего пространства: Библиотеки переменных должны находиться в той же рабочей области, что и Dataflow Gen2 с CI/CD.

  • Справочное расположение. Переменные можно использовать только в файле mashup.pq потока данных 2-го поколения с CI/CD.

  • Поведение среды выполнения: значения переменных извлекаются в начале операции выполнения и сохраняются во время операции. Изменения, которые происходят в библиотеке во время выполнения потока данных, не останавливают или не влияют на его выполнение.

  • Поддержка редактора Power Query. Текущая поддержка для разрешения или оценки переменных в редакторе Power Query отсутствует.

  • Использование значения по умолчанию: при использовании значения по умолчанию с помощью функции Variable.ValueOrDefault убедитесь, что тип данных значения по умолчанию соответствует типу данных указанной переменной.

  • Поддерживаемые типы: поддерживаются только переменные базовых типов (boolean, , datetime, guidintegerи numberstring).

  • Фиксированные соединения: переменные не смогут изменить информацию о соединении. Подключения остаются фиксированными для конфигураций пути к созданным ресурсам.

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

  • Сопоставление схем: переменные не могут изменять сопоставления целевых схем; сопоставления соответствуют настроенной настройке.

  • Видимость зависимости: представления зависимости не показывают связи между потоком данных Gen2 и библиотеками переменных, на которые он ссылается.

  • Ограничение переменной: потоки данных могут извлекать не более 50 переменных.

  • Поддержка SPN: Потоки данных могут успешно обновляться только в том случае, если обновление не использует SPN для проверки подлинности.