Сообщения

Сообщения за ноябрь, 2020

Создаем простой ETL на Python часть 2.

Изображение
  Продолжаем поднимать наш ETL. Напишем скрипт для импорта и поставим его на расписание. Для работы скрипта необходима установка дополнительных библиотек. Нам понадобятся pandas, requests, psycopg2 (коннектор к Postgres) , gspread и oauth2client (для подключения к сервисному аккаунту). Установить можно через pip или менеджер пакетов conda. После установки пакетов импортируем библиотеки. Затем обращаемся к таблице-источнику в БД и собираем названия ее столбцов. Вторая функция создает промежуточные csv-файлы с содержимым таблицы-источника и затем импортирует данные из них в Google Sheets. Здесь нам пригодится тот json-файлик, который мы скачивали в процессе создания сервисного аккаунта. Положите его в папку со скриптом или укажите полный путь. В конце настроим расписание. Запускаем такой скрипт, который начнет работать сразу же и будет запускать наш ETL по расписанию. Подробнее про настройку времени можно прочитать в документации к модулю. Поздравляю, теперь вы освоили еще один спо...

Создаем простой ETL на Python часть 1.

Изображение
В этой статье подробно рассмотрим процесс создания простейшего ETL-инструмента на Python, который будет запускаться по расписанию и копировать данные из облачной базы данных на Postgres в Google Sheets. Сфера применения? Например, у вас агентство. И вы храните рабочую информацию о проектах в единой БД. Но заказчикам надо сбрасывать отчеты. Давать доступ к своей БД не вариант, а вот сбросить данные в Google Sheets и причем делать это регулярно - вполне себе решение. Или, допустим, у вас работают парсеры, которые загружают собранную информацию в БД на облаке. Опять же, результаты парсинга надо предоставить заказчику, но доступ к БД давать не хочется. Выход - выгрузить результаты в Google Sheets и дать доступ к ним заказчику. Настраиваем сервисный аккаунт. Первый этап состоит в создании и настройки сервисного аккаунта  Google, который будет иметь доступ к и Sheets, и к вашей БД. Для этого вы должны предварительно обладать аккаунтом в Google Cloud Platform. Процесс регистрации в GCP я ...

Анализ данных в Tableau. Часть 3.

Изображение
  Сегодня мы финализируем наши успехи в работе с Tableau и построим дашборд с визами, которые мы сделали на прошлых уроках. Теория разработки и построения дашборда - это отдельный, объемный предмет, по которому написано много толстых книг. Я не буду углубляться в него, а просто покажу некоторые  практические этапы исполнения. Для начала в панели вкладок создадим новый пустой дашборд. В панели слева у нас расположился список доступных чартов (Sheets), управление размером (Size), и здесь я предлагаю сразу поменять значение Range  на Automatic. Внизу блок с объектами и галочка отображения заголовка. Отметим ее и напишем заголовок нашего дашборда. Через контекстное меню заголовка можно вывести панель Formating и поменять стиль заголовка: центрировать расположение, задать цвет/фон/размер текста. Затем заполним пространство дашборда объектом Horizontal block и путем перетаскивания расположим наши чарты один под другим так, как на скриншоте. Наведем порядок в панели справа. Сейч...

Быстрый импорт в базу данных с помощью DBeaver

Изображение
 Сегодня расскажу про небольшой лайфхак о том, как можно быстро загрузить вашу дату в базу данных используя минимум кодинга. Но сначала опишем суть проблемы, которую данный лайфхак решает. Итак, у нас есть некая дата, которая хранится во внешних файлах (например, в csv). Нам нужно загрузить дату в базу данных (далее БД), причем в самой БД нет таблиц предназначенных для загрузки. Делаем по старинке Классическим решением будет провести анализ содержимого таблиц, выписать названия полей и их формат. Затем создать с помощью SQL запроса сами таблицы. Это будет выглядеть примерно вот так: А затем нужно будет сформировать INSERT запрос для каждой строки файла для вставки его в БД. Если в вашем файле 30 тысяч строк, то придется писать запрос для каждой строки. Здесь без Excel или Google Sheets не обойтись. Так как используется инструментарий таблиц для работы со строками можно ускорить процесс создания тела INSERT запроса. Итоговый запрос может выглядеть вот так: Остается только подключить...