Excel ⇨ Python ⇨ СУБД ⇨ Power BI
1.9K subscribers
67 photos
11 videos
71 links
Полезности тут: https://boosty.to/morinad
Контакт автора: https://t.me/alexdirect

Power Query, Power BI, Python, API, ChatGPT и многое другое...
Download Telegram
Пока готовится большая публикация про коннекторы в докере, хочу поделиться маленьким скриптом 😊

Если кто-то хотел следить за остатками Яндекс Директа по всем клиентам в единой гугл табличке, то этот скрипт для Google Sheets вам поможет 🔥

Как это работает?
1️⃣ вписываете в accountsData токены и логины,
2️⃣ вставляете функцию в app script,
3️⃣ запускаете 1 раз и даёте разрешение на выполнение,
4️⃣ добавляете триггер на обновление раз в 5-10 минут,
наблюдаете всегда актуальные остатки 🥳

Ну а для пользователей Power Query есть статья с коннектором в PQ
Получение токенов Директа всё также по ссылке

function getYandexDirectBalance() {
var accountsData = [
{
token: 'y0_AFpQ',
login: 'ydrctr'
},
{
token: 'y0_AJQ',
login: 'xxxxx'
}
];
var apiUrl = 'https://api.direct.yandex.ru/live/v4/json/';
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.clearContents();
sheet.appendRow([ 'Currency', 'Discount', 'Amount', 'AccountID', 'AmountAvailableForTransfer', 'AgencyName', 'Login', 'DateTime']);
accountsData.forEach(function(accountData) {
var requestBody = {
"method": "AccountManagement",
"token": accountData.token,
"param": {
"Action": "Get",
"SelectionCriteria": {
"Logins": [accountData.login],
"AccountIDS": []
}
}
};
var options = {
'method': 'post',
'contentType': 'application/json',
'payload': JSON.stringify(requestBody),
'muteHttpExceptions': true
};
try {
var response = UrlFetchApp.fetch(apiUrl, options);
var result = JSON.parse(response.getContentText());
if (response.getResponseCode() !== 200 || result.error) {
Logger.log('Error: ' + (result.error ? result.error.error_detail : 'Unexpected response code ' + response.getResponseCode()));
return;
}
var accounts = result.data.Accounts;
var currentDateTime = new Date();
accounts.forEach(function(account) {
sheet.appendRow([
account.Currency,
account.Discount,
account.Amount,
account.AccountID,
account.AmountAvailableForTransfer,
account.AgencyName,
account.Login,
currentDateTime
]);
});
} catch (e) {
Logger.log('Exception: ' + e);
}
});
}
Новый формат коннекторов (Python+Docker) 🎉

Многие знают меня по коннекторам к разным сервисам для Excel и Power BI. Но рынок не стоит на месте: многие компании отказываются от Power BI в пользу Superset и Datalens из-за рисков санкций.

В этом случае все преобразования приходится делать в базе данных, которую еще надо развернуть и самое страшное - заполнить данными🙄 Даже если у нас есть коннектор к API для загрузки в БД, нам потребуется удобная среда, где можно задать ему настройки и быстро запустить.

Как выглядит решение?

В качестве среды идеально подходит Docker, где можно как развернуть базу данных, так и запустить скрипт загрузки данных. Если кратко, Docker - это ПО, которое позволяет быстро развернуть приложение на любой ОС - Windows, MacOS, Linux. Так что если раньше мне приходилось возвращать деньги пользователям Mac, то теперь коннекторы запустятся и у них🥂

Вам нужно установить Docker, заполнить ряд настроек, а затем запустить контейнер с базой данных и контейнер с загрузкой данных, после чего данные окажутся в БД, а вы сможете строить отчёты 🍻

В качестве БД используется Clickhouse, который легко интегрируется с большинством современных BI, особенно с Superset и Datalens🔥

Перед запуском Clickhouse вам нужно скорректировать файл настроек и задать доступы в файле пользователей. Для загрузки данных также есть 2 файла - настройки БД и настройки источников. Если запускаете всё на сервере - файлы нужно будет закинуть на сервер (например, с помощью Filezilla).

Что доступно из источников?

1) Wildberries: stocks, sales, orders, realized, nmreport, reklama.

2) Ozon: stocks, transactions, products, realization, returns_fbo, returns_fbs, postings_fbo, finance_cashflow, finance_details, reklama.

3) Yandex Direct: статистика по датам, статистика без даты, список объявлений.

4) GetCourse: пользователи, заказы, оплаты, группы.

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

Все ссылки:
Видео на YouTube
Файлы настроек на Boosty
Команды установки и запуска в Docker
Docker Desktop для запуска на вашем компьютере
@botfather и @userinfobot для настройки логирования
Код на Github (если кому-то интересно)
Получение данных из Clickhouse в Excel/Power BI
ОБЗОР НАШИХ КУРСОВ

🍔 Основы Power BI
Стоимость: бесплатно
Что дает: Общее понимание работы с Power BI, возможность сделать свой первый отчёт.
Ссылка: https://directprorf.ru/basics

🍔 Коннекторы для рекламных отчётов
Стоимость: 5900₽
Что дает: Коннекторы для рекламных и аналитических систем, понимание работы с Power Query и создания сводных таблиц из нескольких источников.
Ссылка: https://directprorf.ru/excel

🍔 Power BI для рекламных отчётов
Стоимость: 12900₽
Что дает: Пошаговый план по созданию полноценного рекламного отчёта в Power BI на базе Яндекс Директа, VKads, Яндекс Метрики, Коллтрекинга и CRM.
Ссылка: https://directprorf.ru/powerbi

🍔 Коннекторы для Маркетплейсов
Стоимость: 5900₽
Что дает: Коннекторы к OZON, Wildberries и Яндекс Маркету для Power Query и Clickhouse.
Ссылка: https://directprorf.ru/marketplaces

🍔 Продвинутый Power Query
Стоимость: 5900₽
Что дает: Навыки работы с функциями Power Query для тех, кто хочет не только нажимать на кнопки, но и писать код.
Ссылка: https://directprorf.ru/pro

🍔 Создание коннекторов в Power Query
Стоимость: 5900₽
Что дает: Создание коннекторов к любым API на базе GET и POST запросов.
Ссылка: https://directprorf.ru/connectors

Отзывы в отдельном посте: https://t.me/directprobi/115
НЕМНОГО ИТОГОВ ГОДА

Новая система коннекторов на Python прошла проверку пользователями и уже успешно помогает многим загружать данные в ClickHouse! 🎉

С учётом санкций, да и в принципе ограничений Power Query это открывает массу возможностей по работе с данными.

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

Ссылка на видео: https://youtu.be/sK4mHmAbu4A

Всех с наступающим 🥂 Пусть ваши данные будут корректны, а отчёты помогают принимать правильные решения 🎂

🎄🎄🎄 ОБНОВЛЁННЫЙ СПИСОК ПОДКЛЮЧЕНИЙ 🎄🎄🎄

Wildberries:
stocks, stocks_history, orders, sales, realized, orders_changes, sales_changes, paid_storage, nmreport, reklama.

OZON: stocks, stocks_history, products, realization, returns_fbo, returns_fbs, transactions, postings_fbo, finance_details, finance_cashflow, reklama.

Yandex Market: stocks, orders, mappings.

GetCourse:
users, deals, payments, groups.

Yandex Direct: statistics, ads.

VK Ads: banners_list, groups_list, campaigns_list, banners_stat, groups_stat, campaigns_stat.

Yandex Metrika: statistics (без logs api).

Bitrix24: contacts, leads, deals, contacts_changes, leads_changes, deals_changes.

⚡️⚡️⚡️Детальнее обо всех отчётах можно узнать в файле settings.xslx, который есть на Boosty.
Please open Telegram to view this post
VIEW IN TELEGRAM
ДООБУЧЕНИЕ CHATGPT НА СВОИХ ДАННЫХ

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

Конечно, для качественного дообучения вам понадобится не 10 строк, а хотя бы 1000, а лучше 10 000, но зато результат дообучения будет гораздо интереснее.

Видео как дообучать ChatGPT через Excel:
https://youtu.be/y1kvizbxv6U

Работает всё это конечно же через VPN, без этого ChatGPT просто не примет ваши запросы.

Excel-файл для дообучения тут:
https://boosty.to/morinad/posts/a0264d42-9aa3-4434-8d9c-57c1a256d5fa?share=post_link

Будьте осторожны с запросами в Excel - повторное обновление может привести к повторной отправке файла или к повторному запуску дообучения. После запуска дообучения из нужного файла можно сразу удалить ID файла на вкладке fineTuning.

Изучите справку и прайсы перед началом работы:
- список доступных моделей для дообучения
- стоимость дообучения и использования моделей
Please open Telegram to view this post
VIEW IN TELEGRAM
🌟 APACHE SPARK ПРОСТЫМИ СЛОВАМИ 🌟

Когда вы работаете с сырыми данными, где каждое действие - отдельная строка, приходится обрабатывать огромные объёмы данных😭 Обычно для таких преобразований используются распределённые системы, например Apache Spark.

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

Как это устроено изнутри рассказал в небольшом видео🔥

Видео тут: ссылка
Небольшое видео про API Яндекс Диска

Поскольку ссылка на видео YouTube может искажать статистику видео, буду публиковать здесь ссылки на ВК. Да и ВПН никому включать не придётся😊

Видео тут: https://vkvideo.ru/video3073415_456240028

А файлы как всегда на Boosty (в открытом для всех посте)
ЧАСТЫЕ ФОРМАТЫ ФАЙЛОВ ДЛЯ РАБОТЫ С ДАННЫМИ

Недавно создал новый YouTube канал, куда буду закидывать технические (и не только) видосы обучающего характера.

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

Пока начал с простого - популярные форматы файлов:
https://vkvideo.ru/video3073415_456240029
ИЗ API В GOOGLE SHEETS НА PYTHON

Загрузка данных в Clickhouse - это замечательно, но никто не хочет работать с БД 😔

Когда приходится даже минимально разбираться с серверами, Docker, Linux, Clickhouse, порой кажется, что проще было бы качать данные руками, чем освоить всё это.

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

Новый формат применения коннекторов

Теперь вы не сможете сказать, что чего-то не знаете 😊 Максимально простой скрипт на Python и данные загружены в Google Sheets! Никаких докеров, линуксов и БД 🔥

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

Что можно грузить:
WB, OZON, Yandex Market, GetCourse, Yandex Direct, VK Ads, Yandex Metrika, Bitrix24 и еще несколько коннекторов в разработке.

Видео как это работает:
https://vkvideo.ru/video3073415_456240030

Получение токена Google Sheets:
https://github.com/morinad/google_token-oauth_by_link

Пример скрипта и актуальный список коннекторов:
https://boosty.to/morinad/posts/1ba11242-7625-43aa-817e-0d6be7676dfd?share=post_link
НОВАЯ СТАТЬЯ ПРО CLICKHOUSE И DOCKER

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

Да, Ozon и WB могут создать некоторые трудности, но в первую очередь это ошибки их собственных API. С остальными сервисами всё работает прекрасно 🥂

О чём написал в статье:
- как развернуть ClickHouse
- как заблокировать доступ к ClickHouse чужим IP
- как настроить сбор данных в ClickHouse за 1 час
- как запустить параллельные потоки сбора данных
- как объединять таблички после загрузки в ClickHouse
- как подключиться к ClickHouse из Excel и Power BI
- как решать проблемы в случае остановки загрузки

Ссылка на статью 😋находится тут😋

Кажется, уже всё рассказал - снял несколько видео и теперь есть статья со всеми деталями. Вам остаётся только попробовать❤️

Кстати, последний раз мне удалось залить метрику минут за 15 - настолько всё стало быстро и удобно:)
КАК ПОЛУЧАТЬ ДАННЫЕ ИЗ CLICKHOUSE В POWER BI И EXCEL

Ранее у меня уже была статья на эту тему, но поскольку тема всё более популярна, решил сделать видео 🔥

Разбираю разные способы получения данных, но чаще всего достаточно простого кода на Power Query:
Table.PromoteHeaders(Csv.Document(  
Web.Contents("XXXXX.ru:8123", [Timeout=#duration(0,0,30,0), Query = [
user = "XXX",
password = "123123123",
query = " SELECT * FROM xxx.xxxxxxxxx " & " FORMAT CSVWithNames "
]])))


В плане безопасности:
Важно ставить качественные пароли, а также закрывать доступ к Clickhouse по IP лишним пользователям. И конечно, не стоит пересылать файлики pbix или xlsx с параметрами подключения в коде. Так вы уже хорошо защитите свою БД от внешних подключений и подбора пароля.

Ссылки на видео:
https://youtu.be/1t_PrAuSoL8
https://vkvideo.ru/video-174039178_456239883
Подключение к 1С актуально для большинства бизнесов, но в интернете слишком много разрозненной инфы по этой теме 😵‍💫

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

В чём преимущества такого решения:
1) Поддерживает большие объемы данных
2) Не требует вмешательства программистов
3) Отображает человеческие названия столбцов + полезные метаданные с подсказками для быстрого создания связей
4) Работает даже в Excel - есть в виде обычной функции Power Query + в виде MEZ для Power BI
5) Теперь к нему есть короткое понятное видео с примером создания отчёта 🔥

Как пользоваться коннектором и как создать простой отчёт смотрите тут: https://youtu.be/8_SzGH3ApDY
Audio
————————————
Серия подкастов про ИИ

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

Сделал для вас несколько подкастов про ИИ на тему расширенной работы с LLM. Инфа в подкастах частично пересекается, но каждый по отдельности интересен.

Какие есть варианты добавления знаний в LLM:
• собственные файлы
• поиск в интернете
• дообучение модели
• RAG на ваших данных

Ну и темы про принятие решений на стороне LLM:
• MCP как протокол общения LLM с внешним миром
• ИИ-агенты как самостоятельные системы на базе LLM

Ссылка на канал тут если потерялась при пересылке🔥