Руководство: Создание трансалитического потока задач

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

В этом руководстве вы узнаете, как:

  • Создайте базу данных SQL в Fabric.
  • Настройте функцию данных пользователя, которая записывает обратно в базу данных SQL.
  • Интеграция функции данных пользователя с отчетом Power BI.

Если у вас нет существующей емкости Fabric, запустите пробную версию Fabric.

Предпосылки

  • Power BI Desktop Если на устройстве не установлен Power BI Desktop, следуйте инструкциям в статье Get Power BI Desktop.

Обзор

Для создания транслитического потока задач требуется три задачи для включения автоматизированных сценариев:

  • Хранение данных

    Начните с существующего источника данных Fabric. В этом руководстве мы используем базу данных SQL с примерами данных.

  • Разработка данных

    Напишите функцию данных пользователя Fabric, которая вызывается из отчета Power BI. Эта функция может выполнять любое количество действий, от редактирования источника данных отчета до отправки уведомления о создании рабочего элемента в конвейере утверждений. В этом руководстве мы создадим функцию данных пользователя, которая принимает новое описание продукта и записывает его в базу данных SQL.

  • Визуализация данных

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

Создание базы данных SQL

В этом сценарии используется образец набора данных AdventureWorksLT в базе данных SQL.

  1. Выполните действия, описанные в статье "Создание базы данных SQL" на портале Fabric.

    Запишите имя, которое вы предоставляете базе данных SQL. Вы будeтe использовать это значение далее в руководстве.

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

Создание функции данных пользователя

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

  1. Перейдите к выбранной рабочей области в Power BI или Fabric.

  2. Выберите Новый элемент.

  3. Выберите функции пользовательских данных из группы данных "Разработка ".

    Снимок экрана, показывающий плитку функций пользовательских данных в меню нового элемента.

  4. Укажите имя новой функции данных пользователя, например sqlwriteback, а затем нажмите кнопку "Создать".

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

  5. Выберите новую функцию.

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

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

  1. Выберите "Управление подключениями " на странице для новой функции данных пользователя.

    Снимок экрана: выбор параметра

  2. Выберите "Добавить подключение к данным".

  3. Выберите созданную ранее базу данных AdventureWorksLT SQL, а затем нажмите кнопку Connect.

  4. При создании соединения для него автоматически создается псевдоним. Запишите значение Псевдонима , которое будет использоваться далее в руководстве.

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

  5. Закройте страницу "Подключения" , чтобы вернуться к функции пользовательских данных.

Добавление кода функции

Добавьте код в функцию пользовательских данных, чтобы она записывала данные в таблицу [SalesLT].[ProductDescription] в примере AdventureWorksLT базы данных SQL.

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

Чтобы подключить функцию данных пользователя к кнопке Power BI, функция должна вернуть строку.

  1. Замените код по умолчанию в функции данных пользователя следующим примером:

    import fabric.functions as fn
    import uuid
    
    udf = fn.UserDataFunctions()
    
    @udf.connection(argName="sqlDB",alias="<REPLACE_WITH_CONNECTION_ALIAS>") 
    @udf.function() 
    
    # Take a product description and product model ID as input parameters and write them back to the SQL database
    # Users will provide these parameters in the PowerBI report
    def write_one_to_sql_db(sqlDB: fn.FabricSqlConnection, productDescription: str, productModelId:int) -> str: 
    
        # Error handling to ensure product description doesn't go above 200 characters
        if(len(productDescription) > 200):
            raise fn.UserThrownError("Descriptions have a 200 character limit. Please shorten your description.", {"Description:": productDescription})
    
        # Establish a connection to the SQL database  
        connection = sqlDB.connect() 
        cursor = connection.cursor() 
    
        # Insert data into the ProductDescription table  
        insert_description_query = "INSERT INTO [SalesLT].[ProductDescription] (Description) OUTPUT INSERTED.ProductDescriptionID VALUES (?)" 
        cursor.execute(insert_description_query, productDescription) 
    
        # Get the result from the previous query 
        results = cursor.fetchall() 
    
        # In real-world cases, call an API to retrieve the cultureId
        # For this example, generate a random Id instead
        cultureId = str(uuid.uuid4()) 
    
        # Insert data into the ProductModelProductDescription table 
        insert_model_description_query = "INSERT INTO [SalesLT].[ProductModelProductDescription] (ProductModelID, ProductDescriptionID, Culture) VALUES (?, ?, ?);" 
        cursor.execute(insert_model_description_query, (productModelId, results[0][0], cultureId[:6])) 
    
        # Commit the transaction 
        connection.commit() 
        cursor.close() 
        connection.close()  
    
        return "Product description was added" 
    
  2. Найдите следующую строку кода в примере:

    @udf.connection(argName="sqlDB",alias="<REPLACE_WITH_CONNECTION_ALIAS>")
    
  3. Замените заполнитель псевдонима значением псевдонима из предыдущего раздела.

    Вы можете снова открыть страницу "Управление подключениями" , чтобы просмотреть псевдоним подключения.

Тестирование примера кода

Выполните действия, описанные в этом разделе, если вы хотите протестировать пример кода на данный момент.

  1. Выберите Опубликовать.

  2. После публикации функции наведите указатель мыши на функцию write_one_to_sql_db в меню обозревателя функций , а затем щелкните значок запуска .

  3. На странице "Запуск " укажите примеры данных для двух обязательных параметров:

    • productDescription: string
    • productModelId: целое число от 1 до 127
  4. Выберите Выполнить.

  5. Просмотрите выходные данные функции и созданные журналы.

  6. Закройте страницу запуска после завершения тестирования.

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

Предоставление разрешений пользователей (необязательно)

Если другие пользователи взаимодействуют с отчетом Power BI, который вызывает эту функцию, предоставьте им разрешения на выполнение функций .

  1. На странице функций выберите "Общий доступ".

  2. Выберите первое поле всплывающего окна "Создать и отправить ссылку ".

  3. Выберите "Выполнить функции" и "Просмотреть журналы функций " в списке дополнительных разрешений , а затем нажмите кнопку "Применить".

    Снимок экрана: добавление разрешений

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

  5. Выберите Отправить.

Создание отчета Power BI

В этом разделе вы создадите отчет Power BI, который извлекает данные из базы данных SQL, созданной в предыдущем разделе.

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

Подключитесь к базе данных SQL в качестве источника данных для отчета.

  1. В Power BI Desktop создайте отчет.

  2. Выберите каталог OneLake>базу данных SQL.

    Снимок экрана: выбор базы данных SQL из каталога OneLake.

  3. В окне каталога OneLake выберите базу данных, созданную в предыдущем разделе. Например, AdventureWorksLT. Затем нажмите кнопку "Подключить".

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

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

    • SalesLT.ProductDescription
    • SalesLT.ProductModel
    • SalesLT.ProductModelProductDescription

    Снимок экрана: загрузка трех таблиц из примера набора данных в отчет Power BI.

  6. При появлении запроса выберите DirectQuery в качестве режима подключения, а затем нажмите кнопку "ОК".

    Режим DirectQuery — это динамическое подключение, которое позволяет отчету обновлять данные и отражать любые изменения данных. Дополнительные сведения см. в разделе DirectQuery в Power BI.

Создание отчета Power BI

В этом разделе показано, как создать визуальные элементы с данными, загруженными в отчет Power BI.

  1. В меню "Данные" выберите следующие столбцы:

    • SalesLT.ProductModel > Name
    • SalesLT.ProductModelProductDescription > ProductModelID

    Снимок экрана: выбор столбцов Name и ProductModelID для добавления в отчет.

    В окне отчета появится таблица с двумя столбцами.

    Снимок экрана: отчет Power BI с одной таблицей, добавленной в нее.

  2. В меню "Визуализации" выберите значок среза ввода .

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

    В окне отчета появится визуальный элемент входного среза.

    Снимок экрана: отчет Power BI с добавленным в него срезом ввода.

  3. Выберите слайсер ввода и используйте параметры оформления визуального элемента в разделе Формат>Общие>Заголовок, чтобы задать слайсеру ввода следующий заголовок: Write a new product description.

  4. На панели задач выберите меню "Вставка " и добавьте в отчет пустую кнопку. Перетащите кнопку под срезчик текста.

    Снимок экрана: отчет Power BI с кнопкой, добавленной в него.

  5. Нажмите кнопку и разверните параметры действия в области "Формат". Включите переключатель радио «Действие» в положение «Включено».

  6. Укажите следующие значения для кнопки:

    Параметр Ценность
    Тип Выбор функции "Данные"
    Рабочая область Выберите рабочую область, содержащую функцию данных пользователя, созданную в предыдущем разделе.
    Набор функций Выберите набор функций, содержащий функцию данных. Например, sqlwriteback.
    Функция данных Выберите функцию данных. Например, write_one_to_sql_db.

    Подсказка

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

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

    Параметр Ценность
    productDescription Выберите срез текста из отчета, напишите новое описание продукта.
    productModelId Нажмите кнопку условного форматирования (fx). Откроется новое окно.

    Для параметра стиля "Формат " сохраните значение поля по умолчанию.

    Для параметра "На каком поле мы должны это основывать?" выберите "Все данные">, SalesLT.ProductModel>, ProductModelID.
    Резюмирование Выберите максимальное значение.
  8. Нажмите кнопку "ОК ", чтобы завершить настройку действия. Сведения о действии должны выглядеть следующим образом:

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

  9. Нажмите кнопку и разверните параметры стиля в области «Формат». Включите радио кнопку Текст в положение Включено и присвойте вашей кнопке метку Enter.

  10. В параметрах стиля измените Применить настройки для на Загрузка.

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

    Снимок экрана: выбор состояния загрузки для стиля кнопки.

  11. Разверните меню "Текст " и замените текстовое значение Submittingкнопки на .

  12. Разверните меню «Значок».

    По умолчанию кнопка функции данных имеет тип значка Spinner для состояния загрузки.

  13. Измените стиль значка со следующими изменениями:

    Параметр Ценность
    Набивочный материал Измените левое заполнение на 20 px.
    Размер значка Замените значение авто по умолчанию на 20.
  14. На панели "Визуализации" выберите значок таблицы , чтобы вставить новую таблицу.

  15. В области данных выберите следующие столбцы, которые нужно добавить в таблицу:

    • SalesLT.ProductModel > Name
    • SalesLT.ProductDescription > Description
    • SalesLT.ProductDescription > ModifiedDate

    Снимок экрана: отчет Power BI со второй таблицей, добавленной в нее.

Необязательные изменения отчета

Как и в любом отчете Power BI, существует множество способов настройки внешнего вида и улучшения функциональности этого отчета. Рассмотрим некоторые из следующих вариантов:

  • Добавьте заголовки в две таблицы. Например, выберите продукт и описание продукта.
  • Установите для текстового резака функцию автоочистки после отправки описания нового продукта. Для этого нажмите кнопку, которая активирует функцию данных пользователя. В меню "Действие", в кнопке ">", установите переключатель "Автосброс" в положение "Вкл.".
  • После активации функции пользовательских данных отключите автоматическое обновление отчета. В этом сценарии полезно обновить данные и увидеть новое описание продукта в таблице. В других сценариях может не потребоваться или не требуется обновлять отчет. Чтобы отключить этот параметр, нажмите кнопку, которая активирует функцию данных пользователя. В меню Формат, нажмите кнопку > и установите переключатель Обновить отчет после успешного завершения в положение Выключено.

Запуск транслитического потока задач

Вы можете протестировать функциональные возможности транслитического потока задач в Power BI Desktop. Но если вы хотите увидеть наиболее точный интерфейс пользователя, опубликуйте отчет в службе Power BI и протестируйте его в Интернете.

Публикация отчета

Вы создали отчет в Power BI Desktop. В этом разделе описано, как опубликовать отчет, чтобы пользователи могли взаимодействовать с ним на веб-портале.

  1. В меню "Главная панель инструментов" выберите "Опубликовать".

  2. Выберите рабочую область Power BI, в которой вы хотите опубликовать отчет, а затем нажмите кнопку "Выбрать".

  3. После завершения публикации отчета выберите ссылку на Open <REPORT_NAME.pbix> в Power BI.

    Подсказка

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

    1. Откройте семантику модели отчета и перейдите кпараметрам>.
    2. Разверните параметр учетных данных источника данных , если он еще не установлен.
    3. Щелкните ссылку, чтобы изменить учетные данные.
    4. Выберите метод проверки подлинности в раскрывающемся меню. Например, Basic принимает имя пользователя и пароль, а OAuth2 включает единый вход с текущей учетной записью.
    5. Укажите необходимые сведения, если таковые есть, а затем нажмите кнопку "Войти".

Теперь у вас есть транслитический поток задач в отчете Power BI, который доступен в службе Power BI.

Запуск транслитического потока задач

В этом разделе вы взаимодействуете с отчетом на веб-портале Power BI для тестирования созданного транслитического потока задач.

Эту функцию могут использовать только пользователи, авторизованные для активации функций данных. Любые несанкционированные пользователи получают ответ "Что-то пошло не так ".

  1. Откройте отчет в Power BI.
  2. Выберите товар из таблицы товаров, в которой указаны наименование и идентификатор. Этот выбор передает контекст текстовому срезу, для которого нужно обновить продукт. Вы также увидите, что таблица с описанием продукта отфильтровывает данные, чтобы показать все текущие описания для выбранного продукта.
  3. Напишите новое описание продукта в текстовом поле ввода.
  4. Щелкните значок со стрелкой или используйте клавишу TAB для отправки входных данных. После выбора продукта и предоставления описания вы увидите, что кнопка переключается на состояние включено.
  5. Нажмите кнопку, чтобы запустить функцию пользовательских данных.

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

Если что-то идет не так с транслитичным потоком задач, вы получите сообщение, которое говорит , что что-то пошло не так. Выберите "Просмотреть сведения" , чтобы получить дополнительные сведения о причине сбоя. Ниже приведены некоторые распространенные причины неудачного запуска функции:

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

Дальнейшие шаги