Как параметризовать набор данных, чтобы я мог использовать несколько файлов Excel в папке больших двоичных объектов для передачи в PowerQuery один за другим?

Я работаю в фабрике данных, и мне нужна помощь в параметризации набора данных, чтобы я мог использовать несколько файлов в папке больших двоичных объектов для обработки в PowerQuery, а затем отправить их в таблицу AzureSQL для приемника (хранилища). Я не хочу создавать 100 наборов данных, если хочу обработать 100 файлов Excel одинаково с помощью PowerQuery.

Я успешно выполнил конвейер следующим образом:

Получите действие метаданных для чтения всех файлов в папке больших двоичных объектов (.xlsx), затем используйте цикл foreach для получения каждого файла и внутри этого действия для копирования его в базу данных SQL Azure.

Теперь я хочу посмотреть, смогу ли я сделать следующее или подобное:

Получите список файлов в папке BLOB-объектов или получите полные адреса файлов BLOB-объектов, а затем используйте цикл for, чтобы попытаться передать один адрес файла/файла (за каждый оборот цикла) и обработать его с помощью PowerQuery.

Возможно ли это вообще сейчас? Действительно застрял с этим. Я хочу обработать данные в PowerQuery перед их загрузкой в ​​приемник.

Альтернативные идеи приветствуются!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
119
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы также можете динамически передавать имя файла в наборе данных Power Request. Ниже приведены подробные шаги.

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

  • Затем возьмите действие for-each и передайте выходной массив действия getmetadata для каждого действия.

  • Внутри каждого действия добавьте туда запрос мощности. Откройте исходный набор данных Power Request и укажите выражение динамического содержимого для имени файла набора данных как @item().name.

gif1

  • Укажите имя приемника в настройках приемника активности запроса мощности.

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

Спасибо @Aswin, поэтому я попробовал следующее: выполнил действие метаданных (дочерние элементы) и добавил @activity('Get Metadata').output.value в цикл for. Следующий шаг: предлагаете ли вы сначала создать набор данных, и если да, следует ли мне указать набор данных на конкретный файл .xlsx или просто путь к каталогу? Также может потребоваться имя/индекс листа? Кроме того, можете ли вы показать, как вы создали свой PowerQuery, поскольку на начальном этапе он выполняется только в том случае, если мы указываем на один файл, а не на каталог? Удалось ли вам успешно запустить этот конвейер и передать данные из нескольких файлов для обработки в PowerQuery в цикле?

Mayank Dhami 09.05.2024 16:14

1) Когда в действие получения метаданных добавляются дочерние элементы, вы можете указать выражение как @activity('get Metadata').output.childItems в действии foreach. 2) Да. Создайте набор данных и укажите путь к каталогу. В имени файла укажите выражение @item().name. 3) Я использовал текстовый набор данных с разделителями. Если вы используете данные .xls, вам также необходимо указать имя/индекс листа. 4) Да, данные обрабатываются из нескольких файлов в цикле.

Aswin 10.05.2024 04:32

Спасибо, я добавил @activity('get Metadata').output.childItems в foreach, затем @item().name в качестве имени файла вместе с индексом листа, я смог проверить конвейер без ошибок. Единственное, когда я иду проверять PowerQuery, я не вижу, чтобы он что-либо разрешал, потому что имя файла — item.name(). Здесь: [img]i.imgur.com/aKCl2jR.png[/img] Я хотел бы посмотреть, что происходит в PowerQuery, чтобы добавить туда больше шагов.

Mayank Dhami 10.05.2024 10:57

сначала вы можете указать имя файла, а затем определить запрос мощности. Позже замените имя файла на @item().name.

Aswin 12.05.2024 05:06

Будет ли @item().name в имени файла выдавать ошибку каждый раз через несколько дней после публикации набора данных, он станет желтым с предупреждением. Кроме того, имя листа время от времени выдает красное предупреждение «Не удалось».

Mayank Dhami 14.05.2024 16:11

Не обращайте внимания на предупреждение. Можете ли вы поделиться снимком экрана неудавшегося красного предупреждения?

Aswin 14.05.2024 19:35

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

Mayank Dhami 21.05.2024 10:16

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

Aswin 21.05.2024 10:36

Другие вопросы по теме

Создание общего API для доступа к любому BLOB-объекту в любой учетной записи хранения в клиенте
Межклиентское хранилище BLOB-объектов Azure SAS завершается сбоем с сообщением «Подпись не соответствует» с использованием UserDelegatedCredential и azure-sdk-for-go
Использование Azure DataLakeServiceClient для загрузки файла получило запрещенный ответ после нескольких минут успеха
Проблема с созданием URL-адреса SAS хранилища BLOB-объектов Azure с управляемым удостоверением
IngestionTimestamp содержит символ %3A вместо точки с запятой
Невозможно отправить большой двоичный объект в Azure – отсутствует исключение HTTP-заголовка
Неверный запрос – пустое сообщение – нулевая ошибка из ADF – копирование конвейера данных
Функция Azure v2 (python) для фрагментации данных в цикле for не выводит данные в хранилище BLOB-объектов
Тема системы сетки событий Azure не реагирует на загрузку нового большого двоичного объекта
Не удалось выполнить правильные действия по копированию данных контейнера BLOB-объектов в ADF в двух разных подписках в одном клиенте

Похожие вопросы

Фабрика данных Azure находит объект JSON по определенной строке/значению, а затем выбирает другое значение
Набор данных DelimitedText (csv) автоматически кодирует пути к файлам в формат urlencoding, и при последовательном копировании не удается найти большие двоичные объекты
Узел среды выполнения интеграции (локальный) обнаружил ошибку во время регистрации. Невозможно определить состояние узла среды выполнения интеграции
Каков правильный текст JSON для отключения обновления расписания PowerBi через API?
Как передать массив в качестве параметра в конвейер через действие выполнения конвейера?
Фабрика данных Azure Анализ строкового массива Json в массив json
Как рекурсивно копировать файлы в плоскую папку приемника с именем файла, сгенерированным как имена исходных папок, разделенные разделителем в конвейере ADF
Таблицы собираются в папку с файлами вместо таблиц в фабрике Lakehouse
Копия ADF активно добавляет дополнительный столбец, если он недоступен в исходном коде
Skiptoken API Azure Resource Graph не получает следующих результатов