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


Назначения данных и управляемые параметры потока данных 2-го поколения

После очистки и подготовки данных с помощью потока данных 2-го поколения вы захотите сохранить его где-то полезно. Поток данных 2-го поколения позволяет выбирать из нескольких направлений, таких как SQL Azure, Fabric Lakehouse и другие. После выбора места назначения Dataflow Gen2 записывает ваши данные туда, и их можно использовать для анализа и создания отчетов.

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

  • Базы данных SQL Azure
  • Azure Data Explorer (Kusto)
  • Fabric Lakehouse
  • Хранилище Fabric
  • База данных KQL Fabric
  • База данных SQL Fabric
  • Файлы SharePoint (предварительная версия)

Примечание.

Чтобы загрузить данные в Fabric Warehouse, вы можете использовать коннектор Azure Synapse Analytics (SQL Data Warehouse), получив строку подключения для SQL. Дополнительные сведения: подключение к хранилищу данных в Microsoft Fabric

Точки входа

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

Существует три способа настройки назначения данных:

  • На верхней ленте.

    Снимок экрана: вкладка

  • С помощью параметров запроса.

    Снимок экрана: панель параметров запроса с выделенным кнопкой

  • С помощью представления схемы.

    Снимок экрана: запрос в представлении схемы с выделенным значком добавления назначений и списком назначений.

Подключение к назначению данных

Подключение к назначению данных работает так же, как подключение к источнику данных. Подключения можно использовать как для чтения, так и записи данных, если у вас есть правильные разрешения на источник данных. Вам потребуется создать новое подключение или выбрать существующую, а затем нажмите кнопку "Далее".

Снимок экрана: окно

Настроить точки назначения на основе файлов

При выборе назначения на основе файлов (например, SharePoint) необходимо настроить несколько параметров. Вот что нужно задать:

  • Имя файла: имя файла, который создается в месте назначения. По умолчанию имя файла соответствует имени запроса.
  • Формат файла: формат файла, который создается в целевой директории.
  • Источник файла: кодировка, используемая для создания файла в назначении. По умолчанию для параметра UTF-8 задано значение UTF-8.
  • Разделитель файла: разделитель, который используется для создания файла в пункте назначения. По умолчанию это значение имеет значение "Запятая".

Снимок экрана: окно параметров назначения файла с именем файла, форматом файла, источником файла и параметрами разделителя файлов.

Создание новой таблицы или выбор существующей таблицы

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

Создать новую таблицу

При выборе создания новой таблицы Dataflow Gen2 создает новую таблицу в целевой базе данных во время обновления. Если таблица будет удалена позже (если вы вручную перейдете в место назначения и удалите ее), поток данных повторно создает таблицу во время следующего обновления.

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

Снимок экрана: окно

Затем необходимо выбрать целевой контейнер. Если вы выбрали любое место назначения данных Fabric, вы можете использовать навигатор, чтобы выбрать артефакт Fabric, куда вы хотите загрузить ваши данные. Для назначений Azure можно указать базу данных во время создания подключения или выбрать базу данных из интерфейса навигатора.

Использовать существующую таблицу

Чтобы выбрать существующую таблицу, используйте переключатель в верхней части навигатора. При выборе существующей таблицы необходимо выбрать артефакт и базу данных Fabric, и таблицу с помощью навигатора.

При использовании существующей таблицы невозможно повторно создать таблицу в любом сценарии. Если удалить таблицу вручную из назначения данных, Dataflow Gen2 не создаст таблицу при следующем обновлении данных.

Снимок экрана: окно

Управляемые параметры для новых таблиц

При загрузке в новую таблицу автоматические параметры включены по умолчанию. Если вы используете автоматические настройки, Dataflow Gen2 управляет сопоставлением для вас. Вот что делают автоматические параметры:

  • Замена метода обновления: данные заменяются при каждом обновлении потока данных. Все данные в назначении удаляются. При этом данные в назначении заменяются выходными данными процесса обработки данных.

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

  • Удаление и повторное создание таблицы. Чтобы разрешить эти изменения схемы, таблица удаляется и воссоздается при каждом обновлении потока данных. Обновление потока данных может привести к удалению связей или мер, которые были добавлены ранее в таблицу.

Примечание.

В настоящее время автоматические параметры поддерживаются только для Lakehouse и базы данных SQL Azure в качестве назначения данных.

Снимок экрана: окно

Параметры вручную

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

Снимок экрана: окно

Обновление методов

Большинство назначений поддерживают как добавление, так и замена в качестве методов обновления. Однако базы данных KQL Fabric и Azure Data Explorer не поддерживают замену в качестве метода обновления.

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

  • Добавление. При каждом обновлении потока данных выходные данные из потока данных добавляются к существующим данным в целевой таблице данных.

Параметры схемы при публикации

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

  • Динамическая схема: при выборе динамической схемы можно разрешить изменения схемы в назначении данных при повторной публикации потока данных. Так как вы не используете управляемое сопоставление, вам по-прежнему потребуется обновить сопоставление столбцов в мастере назначения потока данных при внесении изменений в запрос. Когда обновление обнаруживает разницу между конечной схемой и ожидаемой схемой, таблица удаляется, а затем повторно создается для выравнивания с ожидаемой схемой. Обновление потока данных может привести к удалению связей или мер, которые были добавлены ранее в таблицу.

  • Исправлена схема: при выборе фиксированной схемы изменения схемы невозможно. При обновлении потока данных только строки в таблице удаляются и заменяются выходными данными из потока данных. Любые связи или меры в таблице остаются неизменными. При внесении изменений в запрос в потоке данных публикация потока данных завершается ошибкой, если она обнаруживает, что схема запроса не соответствует схеме назначения данных. Используйте этот параметр, если вы не планируете изменять схему и когда в целевой таблице уже добавлены связи или меры.

Примечание.

При загрузке данных в хранилище поддерживается только фиксированная схема.

Снимок экрана: параметры схемы для параметра публикации с выбранной фиксированной схемой.

Параметризация

Параметры — это основная функция потока данных 2-го поколения. После создания или использования параметра Always Allow мини-приложение ввода становится доступным для определения имени таблицы или файла для назначения.

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

Примечание.

Параметры в назначении данных также можно применять непосредственно с помощью скрипта M, созданного для запросов, связанных с ним. Вы можете вручную изменить скрипт запросов назначения данных, чтобы применить параметры к вашим требованиям. Однако пользовательский интерфейс в настоящее время поддерживает параметризацию только для поля имени таблицы или файла.

Скрипт Mashup для запросов назначения данных

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

  • Запрос, содержащий шаги навигации в целевом месте. Он следует шаблону исходного имени запроса с суффиксом _DataDestination. Рассмотрим пример.
shared #"Orders by Region_DataDestination" = let
  Pattern = Lakehouse.Contents([CreateNavigationProperties = false, EnableFolding = false]),
  Navigation_1 = Pattern{[workspaceId = "cfafbeb1-8037-4d0c-896e-a46fb27ff229"]}[Data],
  Navigation_2 = Navigation_1{[lakehouseId = "b218778-e7a5-4d73-8187-f10824047715"]}[Data],
  TableNavigation = Navigation_2{[Id = "Orders by Region", ItemKind = "Table"]}?[Data]?
in
  TableNavigation;
  • Запись атрибута DataDestinations для запроса, содержащего логику, используемую для загрузки данных в место назначения. Запись содержит указатель на запрос, содержащий шаги навигации в целевом месте, а также общие параметры назначения, такие как методы обновления, параметры схемы и тип целевого назначения, например таблица или другой тип. Рассмотрим пример.
[DataDestinations = {[Definition = [Kind = "Reference", QueryName = "Orders by Region_DataDestination", IsNewTarget = true], Settings = [Kind = "Automatic", TypeSettings = [Kind = "Table"]]]}]

Эти фрагменты скриптов M не отображаются внутри приложения потока данных, но вы можете получить доступ к этой информации:

Поддерживаемые типы источников данных для каждого назначения

Поддерживаемые типы данных для каждого расположения хранилища DataflowStagingLakehouse Выходные данные Базы данных Azure (SQL) Выходные данные Azure Data Explorer Выходные данные Fabric Lakehouse (LH) Выходные данные хранилища Fabric (WH) Выходные данные База данных SQL Fabric (SQL)
Действие нет нет нет нет нет нет
Любое нет нет нет нет нет нет
Бинарный нет нет нет нет нет нет
Валюта Да Да Да Да нет Да
Часовой пояс даты и времени Да Да Да нет нет Да
Продолжительность нет нет Да нет нет нет
Функция нет нет нет нет нет нет
нет нет нет нет нет нет нет
Недействительный нет нет нет нет нет нет
Время Да Да нет нет нет Да
Тип нет нет нет нет нет нет
Структурировано (список, запись, таблица) нет нет нет нет нет нет

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

Дополнительные разделы

Использование промежуточного хранения перед загрузкой в место назначения

Чтобы повысить производительность обработки запросов, промежуточное хранение можно использовать в Dataflows Gen2 с целью применения Fabric compute для выполнения ваших запросов.

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

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

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

Чтобы включить промежуточный режим, щелкните правой кнопкой мыши запрос и включите промежуточное развертывание, нажав кнопку "Включить промежуточный ". Затем запрос становится синим.

Снимок экрана: раскрывающееся меню запроса с выделенным элементом

Загрузка данных в хранилище

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

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

Снимок экрана: предупреждение о добавлении назначения данных.

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

Снимок экрана: предупреждение

Очистка назначения данных Lakehouse

При использовании Lakehouse в качестве назначения для потока данных 2-го поколения в Microsoft Fabric важно выполнять регулярное обслуживание, чтобы обеспечить оптимальную производительность и эффективное управление хранилищем. Одна из основных задач обслуживания — очистка назначения данных. Этот процесс помогает удалить старые файлы, на которые больше не ссылается журнал разностной таблицы, что оптимизирует затраты на хранилище и обеспечивает целостность данных.

Почему вакуумирование важно

  1. Оптимизация хранилища. Со временем разностные таблицы накапливают старые файлы, которые больше не нужны. Вакуум помогает очистить эти файлы, освободить место в хранилище и сократить затраты.
  2. Улучшение производительности. Удаление ненужных файлов может повысить производительность запросов, уменьшая количество файлов, которые необходимо сканировать во время операций чтения.
  3. Целостность данных. Обеспечение сохранения только соответствующих файлов помогает поддерживать целостность данных, предотвращая потенциальные проблемы с незафиксированными файлами, которые могут привести к сбоям чтения или повреждению таблиц.

Как очистить назначение данных

Чтобы очистить таблицы Delta в Lakehouse, выполните следующие действия.

  1. Перейдите в Lakehouse: из учетной записи Microsoft Fabric перейдите к нужному Lakehouse.
  2. Доступ к обслуживанию таблиц: в обозревателе Lakehouse щелкните правой кнопкой мыши таблицу, которую вы хотите сохранить или использовать многоточие для доступа к контекстном меню.
  3. Выберите параметры обслуживания: выберите запись меню "Обслуживание " и выберите параметр "Вакуум ".
  4. Выполните команду вакуума: задайте порог хранения (по умолчанию — семь дней) и выполните команду вакуума, выбрав команду "Выполнить сейчас".

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

  • Период хранения: установите интервал хранения не менее семи дней, чтобы убедиться, что старые моментальные снимки и неподтверждённые файлы не удаляются преждевременно, что может нарушить одновременную работу читателей и записывающих данных таблиц.
  • Регулярное обслуживание. Планирование регулярного вакуумирования в рамках подпрограммы обслуживания данных для обеспечения оптимизации и готовности таблиц Delta к аналитике.
  • Добавочные обновления: если вы используете добавочные обновления, убедитесь, что вакуумирование отключено, так как оно может повлиять на процесс добавочных обновлений.

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

Дополнительные сведения о обслуживании таблиц в Lakehouse см. в документации по обслуживанию таблиц Delta.

Lakehouse MDSync

При использовании Lakehouse в качестве назначения данных мы автоматически выполняем операцию синхронизации метаданных при завершении записи данных в Lakehouse. Эта операция гарантирует, что метаданные таблицы Delta up-to-date актуальны и отражают последние изменения, внесенные при обновлении потока данных. Эта операция синхронизации имеет решающее значение для обеспечения целостности и согласованности данных в Lakehouse, особенно если несколько потоков данных или процессов записываются и считываются из одной таблицы Delta. Эта операция выполняется в фоновом режиме и обычно выполняется быстро, что позволяет легко обновлять данные без значительных задержек. Операция синхронизации метаданных является частью общего процесса обновления потока данных.

Допускает значение NULL

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

E104100 Couldn't refresh entity because of an issue with the mashup document MashupException.Error: DataFormat.Error: Error in replacing table's content with new data in a version: #{0}., InnerException: We can't insert null data into a non-nullable column., Underlying error: We can't insert null data into a non-nullable column. Details: Reason = DataFormat.Error;Message = We can't insert null data into a non-nullable column.; Message.Format = we can't insert null data into a non-nullable column.

Чтобы принудительно использовать столбцы, допускающие значение NULL, можно выполнить следующие действия.

  1. Удалите таблицу из назначения данных.

  2. Удалите назначение данных из потока данных.

  3. Перейдите в поток данных и обновите типы данных с помощью следующего кода Power Query:

    Table.TransformColumnTypes(
       #"PREVIOUS STEP", {
          {"COLLUMNNAME1", type nullable text}, 
          {"COLLUMNNAME2", type nullable Int64.Type}
       }
    ) 
    
  4. Добавьте назначение данных.

Преобразование типов данных и масштабирование

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

Назначение Тип данных потока данных Целевой тип данных
Хранилище Fabric Int8.Type Int16.Type