В этом уроке мы для начала создадим бота в telegram, а в следующих уроках мы научимся его программировать.
Чтобы создать бота, нам необходимо:
Открыть telegram и найти в нем стандартного бота под названием @botfather( этот бот был разработан самим telegram и за счет его мы можем создать своих ботов)
В нем мы нажимаем кнопу start и здесь же мы сразу можем нажать на кнопку newbot, что и позволяет нам создать нового бота
Сначала нужно указать название для бота, оно может быть каким угодно. Мой же бот будет называться python telegram
Теперь нам нужно указать уникальное название для бота, по которому люди будут находить его. Также оно должно оканчиваться либо на bot(например: pythonbot), либо на _bot(например: python_bot). Если ваше название не будет уникальным, то бот выдаст вам ошибку.
Когда вы создадите бота вам выдается его токен(Use this token to access the HTTP API: ................).
Этот токен я советую сохранить, потому что в дальнейшем он нам пригодится, так как за счет него мы и сможем подключиться к нашему созданному боту. Также тут есть ссылка на нашего бота, нажав на нее мы сможем перейти в него.
Программировать бота мы начнем со следующего урока, пока что давайте добавим в него описание, вставим изображение и т.д..
Чтобы нам установить все эти характеристики то мы все в том же @BotFather можем просто обратиться к команде /help и посмотреть какие нам вообще доступны команды.
Тут есть такой пункт, как Edit Bot, то есть редактирование бота и тут есть разные команды, за счет которых мы и будем настраивать нашего бота.
setname - установить название бота
setdescription - установить его описание перед запуском бота(это описание будет высвечиваться только тогда, когда человек впервые заходит в вашего бота)
setabouttext - установить полное описание(описание, которое будет находится в шапке профиля бота)
setuserpic - установить изображение
setcommands - установить команды
deletebot - удаление бота
Также в пункте Bot Settings, есть команда /token, которая позволяет получить ваш токен бота, если вы его потеряете.(Нажимаете /token, выбираете нужного бота, и он вам выдает ваш токен)
После настройки всех команд мы можем перейти и посмотреть, как в данный момент выглядит наш бот.
Также если вы не хотите долго ждать, то все уроки и коды с уроков уже есть в моем telegram канале.
Также каждый день в telegram канале появляются полезные книги и пособия с материалом по программированию, а также выходят эффективные фишки, которые значительно упрощают вашу работу с программированием.
В наше время telegram стал популярной соц. сетью. Тут люди создают познавательные и развлекательные каналы, а также каналы по продаже услуг и вещей. Теперь представьте, например, в группе telegram по продаже более 10 тысяч подписчиков и у каждого свой часовой пояс. Люди, чтобы купить товар пишут сообщение администратору по поводу покупки, но человек не робот и даже, если ему одновременно по поводу покупки напишут 10 человек, то у него это займет не мало времени, чтобы ответить каждому из них. Также у людей разный часовой пояс, как было сказано ранее, и тем самым человек, который хочет купить у него вещь может быть из другого часового пояса, и когда продавец будет спать, он не сможет ответить покупателю, тем самым снижая спрос на товары. Также для продавца продажа может быть не основной работой и он просто физически не будет успевать отвечать своим покупателям. Чтобы исправить все вышеперечисленные недочёты, люди зачастую имеют telegram бота, тем самым намного облегчая себе работу. Telegram бот нужен не только для групп для продажи, но, например, чтобы люди участвовали в конкурсе им надо подписаться на несколько каналов, но вручную это проверить очень долго, для этого и нужен бот, чтобы облегчить работу и проверить все подписки за человека. За счет ботов компании могут автоматизировать рутинную работу и могут позволить пользователю быстро и удобно получить необходимую ему информацию. В свези с этим сфера разработки ботов очень популярна. Сейчас люди делают ботов от 20 тысяч рублей. Не верите? - Проверьте сами! Просто напишите в интернете: "Купить telegram бота" и вы удивитесь от цен. Также информацию по созданию бота на языке питон не просто найти на просторах сети за бесплатно, но тут я научу вас с нуля создавать telegram ботов совершенно бесплатно. После нескольких недель обучения вы сможете также создавать ботов и их продавать заинтересованным пользователям.
Для создания ботов можно использовать любые языки программирования, но наше обучение будет проходить на языке программирования python. Почему python? - Он легок в использовании и позволяет быстро добавить необходимый функционал для вашего бота. Легкость обеспечена обилием библиотек, что были разработаны под этот язык для быстрого описания и выполнения команд. Еще выбор падает на питон, потому что на его основе можно создавать ботов и под другие мессенджеры, что очень удобно, ведь синтаксис будет такой же.
Писать все коды я буду в программе PyCharm. Можно выбрать любую программу питона, но для меня она более удобная.(Ссылка на сайт, где можно скачать PyCharm: https://www.jetbrains.com/ru-ru/pycharm/)
Что вы научитесь делать за эти несколько недель?
1) Создавать несколько крутых ботов в разных сферах использования
2) Научитесь пользоваться разными библиотеками питон
3) Также внедрите в код разный API системы для интеграции полезных функций
2) Подключать встроенные кнопки в боте
3) Добавлять магазин и систему оплаты
4) Читать информацию с сайта и передавать ее в вашего телеграм бота
5) Читать базу данных и сохранять ее
6) Сможете выгрузить ваш проект на реальный сервер
К концу курса у вас будут хорошие навыки по созданию ботов. Вы сможете создавать ботов, что будут представлять из себя набор очень полезных действий, или даже полноценный магазин с покупками и оплатой.
!!!Для начала рекомендую вам изучить сам язык python. Без базовых знания этого языка вам будет сложно понять синтаксис, написанного кода. Если вы вдруг не знаете питон, то лучше для начала изучить его!!!
Также если вы не хотите долго ждать, то все уроке уже есть в моем telegram канале.
Также каждый день в telegram канале появляются полезные книги и пособия с материалом по программированию, а также выходят эффективные фишки, которые значительно упрощают вашу работу с программированием.
У скрипта есть 2 варианта домашней страницы, которые подойдут всем, кто хочет продемонстрировать свой веб-сайт малого/среднего/крупного бизнеса онлайн магазина. Его легко настраивать, он включает в себя множество функций, таких как Drag & Drop Page Builder, построитель меню перетаскивания, построитель форм перетаскивания, построитель виджетов перетаскивания и многие другие. Он совместим с настольным компьютером, ноутбуком, мобильным устройством, а также с основными браузерами. Скрипт поставляется с модулем авансового налога/кампании/доставки/купона/инвентаря. Встроено все необходимое для SEO, а также добавлена мета-поддержка Facebook/Twitter. Поддержка 15 платежей: Paypal, Stripe, Paytm, Flutterwave Rave, Razorpay, Mollie, Paystack, Midtrans, Mercado Pago, Cashfree, Payfast, instamojo, банковский платеж, оплата чеком, оплата вручную и т. д.
Вся дополнительная информация указана тут Скачать движок тут
Скрипт для онлайн-чата службы поддержки для ваших веб-сайтов. Общайтесь со своим пользователями в режиме реального времени через компьютер или на мобильных устройствах. Кроме того, вы можете отслеживать аналитику вашего веб-сайта, путь посетителя и данные о географическом местоположении.
Функционал:
- Неограниченное общение в реальном времени
- Двусторонний обмен файлами
- Чат между операторами
- Стандартные ответы (ярлыки)
- Многоязычная поддержка (переводится на любой язык)
- Адаптивное окно чата (удобно для мобильных устройств)
- Междоменная поддержка
- Отправка транскриптов пользователям
- Несколько Поддержка отделов
- Страница контактов, когда нет операторов онлайн
- Черный список отображения виджетов
- Поддержка встроенных виджетов
- Полноэкранный режим чата
- Настраиваемые аватары, смайлики, тон уведомлений и т. д.
- Разговор нескольких операторов и гостей
- Звуки уведомлений о сообщениях
- Пользовательские шаблоны чата
- Встроенная аналитика ( Отслеживайте трафик посетителей, источник трафика и т. д.)
12 новых российских проектов для совместной работы, продвижения Телеграм-каналов, повышения конверсии интернет-магазина, ведения чек-листов в Телеграм и многое другое. Битва за «Продукт недели» началась!
Product Radar – здесь каждую неделю публикуются лучшие онлайн-сервисы и железки от русскоязычных команд.
Это площадка, где энтузиасты из мира технологий делятся своими идеями, обсуждают и создают вместе новые продукты, чтобы делать жизнь людей лучше.
Простое и удобное онлайн меню для ресторанов, кафе и прочих заведений из обычной Google таблицы
14-й набор «Радара»
8 января 2024 на сайте Product Radar были опубликованы свежие 12 проектов, которые поборются за ТОП-3 места по итогам недели. Победители получат значки «Продукт дня №1,2,3», а также отдельные посты в тг-канале Радара.
Следующий «набор» появится на сайте через неделю, вы еще можете поучаствовать в нем или выбрать другую дату для размещения. Заполняйте заявку сейчас.
Участники 14-ого набора Product Radar
8 – 14 января 2024 года
Читайте описания, кликайте на название проекта, голосуйте и комментируйте его на Радаре. Ваша поддержка очень важна основателям!
ArtGeneration.me
Онлайн нейросеть для создания изображений в любых стилях, галерея запросов и креативное сообщество.
Решаемая проблема: Сложно и долго искать подходящие изображения в гугле. Чтобы создать уникальный арт в нейросети локально нужна дорогая видеокарта и много специфических знаний. Зарубежные нейронки не оплатить из РФ.
Платформа поиска telegram каналов для проведения совместных бесплатных рекламных кампаний
Решаемая проблема: Сложность привлечения первых подписчиков в канал.Высокая стоимость привлечения подписчика.Сложность запуска рекламы через Telegram Ads и биржи наливных интеграций.
Служба автоматизированного мониторинга веб-сайтов и сервисов
Решаемая проблема: Сервисы, предлагающие услуги мониторинга в РУ сегменте в большинстве случаев полумертвые. Из примерно 30 найденых – работают три. Неудобные, тяжело настраивать (иногда даже непонятно как). Дорогие.
Визуальный поисковик и агрегатор товаров категории Fashion
Решаемая проблема: Поиск и сравнение – крупные игроки рынка делают подобный функционал только внутри своего ассортимента и то по остаточному принципу. Универсальные поисковики не заточены под эту задачу.
Мультимедийные онлайн доски – передовая визуальная онлайн платформа для проектирования и дизайна
Решаемая проблема: Отсутствие в России по настоящему удобной онлайн платформы для разработки качественного визуального контента пользователями без особых навыков
Телеграм бот – экстрактор ссылок на медиа-файлы из 1000 популярных сайтов для прямого скачивания.
Решаемая проблема: Все телеграмм боты, которые предоставляют скачивание видео, чаще всего скачивают файлы через телеграмм, что занимает время и файлы ограничены как правило объёмом в 2ГБ.
Онлайн-платформа для свободного моделирования в табличной и графической форме.
Решаемая проблема: Текущие инструменты сложны для усвоения, узкоспециализированы, дороги или не доступны в РФ.Нет единого решения. Надо использовать несколько несвязанных инструментов.
YouReg – платформа для регистрации и администрирования компаний онлайн из любой точки мира.
Решаемая проблема: Сложность открытия бизнеса и банковского аккаунта удаленно, невозможность грамотного администрирования компании, незнание правово-юридических законов других стран, сложность в соблюдении отчетности
Лайкните этот пост и поделитесь ссылкой на сайт Product Radar с друзьями и коллегами, чтобы как можно больше людей узнало о классных продуктах на русском языке!
В предыщущей статье мы ознакомились с базовыми элементами. в этой части мы рассмотрим более сложные примеры. И затем, применим эти знания для реальных задач.
Квантифаеры (Quantifier) + * ?
Предположим, в нашем выражении один из символов может быть опциональным или повторяться несколько раз. Например, мы ищем слово cat, которое может начинаться с "ca", но последующий символ "t" может быть опциональным или повторяющимся. Здесь у нас есть несколько вариантов в зависимости от наших требований:
Символ вопроса ? или {0,1}
Симол tможет отсутсвовать или присутствовать в рамках символа { } это { 0 , 1 }.
Как видно первые три варианта совпали но мы не задели больше одного символа t. Мы бы достигли такого же результата через cat{0,1}
DOS атаки вошли в чат. Catastrophic Backtracking (Катастрофический возврат)
Далее переходим к выражениям, неоптимальность которых может стать уязвимостью для атак типа DOS (Denial of Service - отказ в обслуживании) а точнее RegexDOS или ReDOS. Неоптимальные и сложные регулярные выражения могут потребовать экспоненциальной сложности для их обработки. Злоумышленник, зная об этом, может заспамить нас строками, которые быстро истощат наши процессорные ресурсы. Более подробную информацию по этой теме можно найти здесь. В качестве примера рассмотрим следующий запрос:
Regex101 достаточно умен чтобы даже не пытаться его запустить, он аналитически предотвратил запуска поиска.
Не стоит паниковать, так как регулярные выражения позволяют нам написать защищенные от атак типа DOS выражения.
Символ плюса + или {1, } (от 1 до бесконечности)
Предположим, что символ "t"должен присутствовать, и при этом мы допускаем его повторение. Это эквивалентно записи {1,} (от 1 до бесконечности). Для этого используем символ "+":
t элемент должен обязательно присутствовать.
Символ звездочки * или {0, } (те от 0 до бесконечности)
В последнем варианте предположим, что символ "t" может быть не включен, и при этом может иметь бесконечное количество повторений. То есть это эквивалентно записи {0,} или от 0 до бесконечности:
Сравним каждый из квантифаеров
Пересмотрим еще раз каждый из них и эквивалентное к ним { }:
? эквивалентна { 0 , 1 }
* эквивалентна { 0, }
+ эквивалентна { 1, }
Cимволы \w \d \s и их отрицания \W \D \S
Некоторые из этих символов я уже упомянул в первой статье, но давайте повторим и добавим немного новых:
\w - любый алфавитный символ (a-z,A-Z) и цифры 0-9 и подчеркивание _
\d - цифры 0-9
\s - символ пробелов такие как - пробелы, табы, переносы строк итд
В regex есть удобная функциональность инверсии выражений. Например если вместо \d мы напишем \D то выражение будет искать все символы исключая цифры.
Также для инверсии любого общего выражения можно достичь символом ^ но указав его внутри скобок. Например любой символ кроме a-b: [^a-b]
Группировка.
Группировка - важная функциональность регулярных выражений, которая позволяет:
Составлять более сложные запросы.
Извлекать данные из выражений.
Чтобы выделить выражение в группу, нужно обернуть его в скобки ( ). Рассмотрим ситуацию, где у нас есть записи о животных в формате "название животного дата рождения цвет" (разделенных пробелом). Давайте напишем выражение для извлечения только кошек (любого года рождения и цвета), выделив цвет и год рождения в группу:
И так мы получили 2 результата и как вы можете видеть справа мы получили две группы Group 1 и Group 2.
Group 1 и Group 2 совпадают с нашими ожиданиями, но могут быть неудобными для чтения. Давайте воспользуемся еще одной возможностью и дадим им ярлыки. Для этого, внутри круглых скобок, нужно в самом начале добавить "?<label>", где "label" - это название группы. Например:
Справа снизу видно что наши группы теперь имеют человеческий вид - date, color.
Применение регулярных выражений для промышленной задачи.
Итак, у нас перед нами задача: мы получили записи из ветклиники и хотим отфильтровать только валидные записи, а затем извлечь их для последующей аналитики.
Анализ входных данных
Теперь, когда у нас есть данные, нам нужно решить:
Какие данные считаются корректными?
Какие "отклонения" мы можем допустить?
Обычно ответы на эти вопросы предоставляются аналитиком, но в данном случае мы выполним все шаги самостоятельно. Итак, рассмотрим данные:
не стоит обращать внимание на хомяков весом почти в 1кг)
Из данных можно сделать вывод:
Первые цифры определяют год, просто 4 фиксированные цифры.
Данные разделены ";" (точкой с запятой) с потенциальными смежными пробелами.
Последняя колонка с весом - это число с плавающей точкой.
Напишем выражение для каждой из групп
дата (?<date>\d{4}) - ровно 4 цифры
имя (?<name>[a-zA-Z]+) слово длины от 1 до бесконечности состоящие из букв алфавита
животное (?<animal>(dog|cat|snake)) - лишь 3 вида допустимых животных собака, кошка, змея написанные строчными буквами
вес (?<weight>\d+\.\d+) - два числа длины минимум 1 и до бесконечности, разделенные точкой
между разделителями есть пробелы \s* (от нуля до бесконечности)
Итак, полученное выражение:
Предположим, что по требованиям нам нужно анализировать только собак, кошек и змей. Тогда наше конечное выражение будет выглядеть вот так:
Это регулярное выражение соответствует вашим требованиям для анализа записей о собаках, кошках и змеях. Оно разделяет данные на четыре группы: год, имя, вид животного и вес. Теперь проверим это выражение на наших данных:
можно заметить что группы совпадают с ожидаемыми значениями
Как мы могли бы улучшить запрос?
Наш первый вариант был слишком "жестким", и мы не предполагали, что животное может иметь заглавную букву. Давайте это поправим:
Добавить ?i что даст нам (?i:(?<animal>dog|cat|snake)) чтобы не учитывать регистр животного
Защита от DOS атак.
Чтобы предотвратить возможность перегрузки системы, уберем использование *, + и укажем максимальный допустимый размер, используя {}.
Новое выражение теперь учитывает и DOG и Cat благодаря ?i:. Все предыдущие записи были также включены, хотя все *, + были исключены из выражений.
Воспользуемые полученным выражением в Java.
Цель - отфильтровать все валидные записи и привести к типам Javav. Я не планировал сильно погружаться в детали реализации Regex классов в Java, поэтому ниже просто покажу рабочее решение:
Код далек от идеала но достаточно прост для понимания.
Pattern, Matcher - классы для работы с Regex в Java.
В коде мы создаем объект класса Pattern и затем создаем Matcher на его основе. Класс Matcher позволяет обойти всe валидныe записи которые формирует наш Regex запрос используя метод matcher.find(). И затем вытаскиваем значения групп используя метод group("имя группы"). Результатом работы будет
И последнее. Полученные результаты совпадают с regex101.com, но нужно помнить, что у Java есть свои аспекты поддержки Regex, которые в редких случаях потребуют небольших изменений в регулярном выражении.
На этом рассказ про regex заканчивается, вот материалы. Материалы на которые стоит обратить внимание:
Птичка, цветочек, прямые линии. Почти неотличимо от обычного регекса)
Регулярные выражения, можно сказать, представляют собой своего рода язык запросов, благодаря которому можно выполнять следующие ключевые задачи:
Валидировать строки
Искать нужные подстроки в строках
Извлекать необходимые данные
Regex не ограничивается только языком Java.
Этот язык используется повсеместно в области информационных технологий. Зная его, вы можете применять свои навыки в множестве контекстов. Поддержка регулярных выражений присутствует в большинстве языков программирования, и множество программ полагаются на регулярные запросы. В какой-то мере regex является стандартом, который полезно знать каждому.
Regex часто кажется сложным для понимания, особенно новичкам.
К сожалению, регулярные выражения, особенно если они написаны неоптимально, могут требовать много усилий для разбора конкретного выражения.
Существует множество решений для упрощения написания и тестирования регулярных выражений.
К счастью, существуют готовые онлайн-решения, которые существенно облегчают процесс понимания. Например, regex101.com - сервис, который мы будем использовать далее. Вот пример того, как мы валидируем формат даты:
Можете пока не вдаваться в подробности. Ниже я объясню как им пользоваться.
Самые основы. Ищем котов.
Давайте начнем с самых основ. Допустим, у нас есть задача: мы хотим найти все упоминания слова 'cat' в строке 'catdogbananacat'. Выражение для этой задачи будет очень простым: 'cat'. Именно так, просто слово.
Теперь давайте посмотрим, что мы найдем, используя утилиту regex101.com:
Мы нашли двух котов. (Заметьте первый кот подсвечен голубым, второй синим - тк найдено 2 упоминания или подстроки в строке).
Символ начала строки ^
Теперь найдем только котов которые стоят в самом начале строки а не в середине или конце, для этого воспользуемся симоволом ^ (циркумфлекс символ или символ "домика" или "крышечки" или caret на английском).
Среди 3х вариантов было найдено два кота которые начинают строку.
И так среди вариантов мы нашли 2 котов которые начинают строку.
Символ конца строки $
Также, аналогично предыдущему, давайте найдем только те варианты, где 'cat' будет заканчивать строку. Для этого воспользуемся символом $. Итак, наше выражение будет cat$.
Найден лишь один который который заканчивает строку.
Усложняем задачу, находим двух котов между которыми есть цифра. Символ числа \d
Теперь усложним задачу и найдем двух котов, между которыми есть цифра. Для этого мы используем \d (от слова 'digit' - цифра). Итак, искомое выражение будет 'cat\dcat'.
Как мы видим лишь один случай найден. Именно один варинт ровно 1 числа между двумя котами.
Знакомимся с \w и последовательностью +
Теперь предположим, что мы ищем двух котов, между которыми может быть несколько цифр, букв или подчеркиваний. Для этого воспользуемся \w, а затем добавим символ +, подсказыва регексу, что символов может быть больше одного. Конечное выражение: cat\w+cat
красным подчеркнуто, чтобы для удобства просмотра)
Перечисляем допустимые символы. Символ [ ]
Теперь сузим поиск и предположим, что мы ищем пару двух котов, между которыми есть лишь буквы a, b, c (либо их вариации). Для перечисления используем квадратные скобки: [abc], и добавим +, чтобы указать, что букв может быть несколько.
первые три вариана не подходя потому что: в первом есть цифра, во втором дефис, в третьем подчеркивание.
Указываем минимальную и максимальную длину. Символ { }
Теперь сузим поиск еще сильнее, предположим что в сумме букв a,b,c между котами может быть не менее 1 и не более 5 символов. Для этого воспользуемся фигурными скобками и получим выражение cat[abc]{1,5}cat
Добавляем вариации. Логическое ИЛИ. Символ |
Теперь допустим мы ищем всех котов между которыми может быть:
Уже знакомый вариант с a,b,c которых не более 5 и не менее 1
Либо слово dog
Для этого воспользуемся логическим выражением или используя | символ. Также чтобы указать что между двумя котами может быть лишь 1 вариант нам нужно использовать круглые скобки чтобы объединить их. Круглые скобки играют еще и другие роли (об этом будет позже). Итого наше выражение cat([abc]{1,5}|dog)cat
К старым результатам добавился catdogcat что и было ожидаемо.
Резюмируя первую часть статьи.
И так мы хорошо поработали, теперь мы научились работать с такими иероглифами как:
^ начало строки, $ конец строки
+ несколько последовательных символов (неограниченное количество)
\d любое число 0-9
\w любой алфавитный, цифровой символ и подчеркивание
[ ] - перечисление допустимх символов
{ } - указание минимальной, максимальной длины повторений
| - логическое ИЛИ которое для большинства случаев требует наличие скобок ( )
Что дальше?
Итак, мы познакомились с довольно простыми вещами, которые не слишком иллюстрируют всю мощь регулярных выражений. В следующих частях мы узнаем еще больше магических символов и применим их для первых промышленных задач.
Gauge возможно один из самых популярных инструментов.
График позволяет изобразить одно или несколько чисел с подсветкой которая подскажет насколько та или иная метрика входит в допустимые границы. В нашем случае давайте изобразим среднюю зарплату сотрудников. Идея визуализации следующая:
Если средняя зарплата меньше 8000 то мы хотим видеть её зеленым светом
Если средняя зарплата равна или больше 10000 то мы хотим увидеть красный цвет
Также иметь возможность выйти за границы 10000 (до 12000) на тот случай если значение оказалось больше максимального.
Пишем запрос для получения всех зарплат
SELECT salary FROM employees
Преобразуем данные используя Transform Data
(чисто для практики, среднюю зарплату мы могли получить и запросом):
Выбираем Transform Data => Reduce
Mode: Reduce fields
Calculations = Mean (среднее значение).
Выбираем график Gauge
Получаем следующий график (и это не то, что мы хотим):
В графике не хватает характеристик предельных значений и палитры.
Чтобы добавить верхнюю границу нужно зайти в настройки графика и выбрать следующие настройки :
Thresholds
Указать Thresholds mode - Absoulte
Нажать Add threshould указать значение 10000 и отметить красным
Нажать Add threshould указать значение 8000 и отметить желтым
Standart Options
Указать Min - 0
Указать Max - 12000
Результатом будет вот такая картина:
Зеленая - до 8000, до 1000 - желтая и после 10000 - красная.
Визуализируем данные на карте - GeoMap
Для данного графика в базе нет достаточно данных, поэтому координаты мы сгенерируем сами прямо внутри запроса. Карта богата возможностями, они описаны тут
Запрос длинный поэтому я просто прикреплю его вот по этой ссылке. Если запустить этот запрос и посмотреть данные то получится следующая картина. В нашем случае нам нужны были колонки latitude/longitude те ширина и долгота.
Три сотрудника живущие неподалеку где то в США (ширина и долгота имеют разброс но небольшой)
Слегка преобразуем карту:
В настройках Map Layers выберем Tax Label Field - Employee Name
Map view - view: North America, zoom - 4.5
Результатом будет карта:
Карта далека от идеала, я думаю имеет смысл еще поиграться с настройками. Но для первого раза неплохо.
Строим сколько человек работает в каждом департаменте (точнее городе где он расположен) Используем график Stat.
Сначала пишем запрос:
SELECT city, COUNT(employee_id) as employee_count
FROM employees e
JOIN departments d ON e.department_id = d.department_id
JOIN locations l ON d.location_id = l.location_id
GROUP BY city;
Теперь выбираем график - Stat и правим настройки
Value options: fields - employee_count
Stat styles: color mode - background gradient
В результате получаем вот такую картину:
Вместо заключения.
Фокус этой статьи был на работе с графиками. Графана во многом заточена под снятие и визуализацию данных в реальном времени с логов и программ. Если тема зайдет я раскрою больше возможностей. Всем кому интересна разработка добро пожаловать в мой телеграм канал.