Получение больших данных с сервера SQL с помощью Powerapps и запись в хранилище больших двоичных объектов Azure - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь получить данные из представления на SQL сервере с помощью PowerApps. Однако в галерее отображается не более 100 строк, а в моем представлении почти 100000 строк. Я обнаружил, что в галерее используется отложенная загрузка, поэтому за раз загружается только несколько элементов. Мне нужны все эти данные в галерее, чтобы записать их в файл csv и сохранить в хранилище больших двоичных объектов Azure.

Кто-нибудь знает, как загрузить большие объемы данных в мою галерею и записать в файл? Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 08 мая 2020

Я бы не стал использовать PowerApps в качестве прокси для этого типа работы. Power Automate - лучший вариант. Галерея PowerApps - замечательный инструмент UX, но не очень хорош для отображения больших объемов данных. В Power Automate есть мобильное приложение, поэтому ваши пользователи могут по-прежнему вводить какие-либо данные (выбрать задание для выполнения и т. Д. c.).

Если вы настаиваете на использовании PowerApps, вам, вероятно, все равно понадобится Power Automate для создания файла .csv.

Псевдокод для потока, чтобы обработать это:

  • Триггер: Кнопка с параметрами
    • Параметры: удобные ключевые слова для ваших SQL хранимых процедур / запросов, таких как «Распечатать всех пользователей» и т.п.
  • Action1: Switch
    • Если пользователь выбрал опцию «X», если пользователь выбрал опцию «Y», и т. Д. c.
  • Switch1: SQL Получить строки
    • Введите параметры запроса
  • Action2: Выбрать
    • Сопоставить значения ответа из SQL Получить строки в отдельные пары ключ / значение
  • Action3: Создать таблицу CSV
    • Использовать вывод из действия Select выше в качестве ввода
    • Automati c голова rs
  • Action4: Создать Azure Blob из .csv
  • Дублировать аналогичные функции для другого корпуса Switch

enter image description here

0 голосов
/ 08 мая 2020

Если вы хотите перенести все данные в PowerApps, сделайте это. Примечание: Вашему пользователю не понравится прокрутка 100k записей. В идеале полностью опустить Галерею или просто дать им предварительный просмотр данных.

OnSelect кнопки «Экспорт» или что-то еще:

Concurrent(
    ClearCollect(col1, Filter(dbo.sqlDB, And(ID >= 1, ID<=2000))),
    ClearCollect(col2, Filter(dbo.sqlDB, And(ID >=2001, ID<=4000))),
    ClearCollect(col3, Filter(dbo.sqlDB, And(ID >=4001, ID<=6000))),
    ClearCollect(col4, Filter(dbo.sqlDB, And(ID >=6001, ID<=8000)))
);
ClearCollect(colCombined, col1, col2, col3, col4)

Установите для свойства Gallery.Items значение colCombined.

Есть другие способы получить последний идентификатор и первый идентификатор, определяют количество итераций, затем l oop пакетами по 2k записей за раз.

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

...