Интеграция Data Explorer для Discourse с Power BI

Быстрое обновление, на случай если кто-то захочет улучшить скрипт из первого поста.

На самом деле можно извлечь все данные за один раз, и это, похоже, не зависит от объёма данных :sweat_smile:
(Я провёл стресс-тест на достаточно крупной таблице posts с колонками id и raw, и скрипт справился!)

Пример запроса:

SELECT      'id'
            || string_agg(E'\n' || case when posts.id::text is null then '-1' else posts.id::text end
            ,''
            ORDER BY posts.id asc) as value
FROM        posts

При запуске он выведет ваш почти-CSV файл как одно значение, то есть на одной странице. Затем нужно будет убрать value" и ещё одну " в конце, и получится полезный CSV:

Естественно, вы можете добавить больше данных, включив новую колонку для CSV-файла и соответствующие данные для неё:

SELECT      'id,newcolumn'
            || string_agg(E'\n' || case when posts.id::text is null then '-1' else posts.id::text end
            || string_agg(E'\n' || case when posts.newcolumn::text is null then '-1' else posts.newcolumn::text end
            ,''
            ORDER BY posts.id asc) as value
FROM        posts

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

4 лайка