tgoop.com/zasql_python/421
Last Update:
Рефакторинг дашбордов
У каждого аналитика есть дашборд, в который когда-то было вложено много сил. Он мог нравиться, в нём были визуальные приколы, кастомные графички. Но со временем выясняется, что это превращается в заброшенное место: загрузка занимает вечность, данные некорректные, а поддержки нет.
Почему так происходит?
python
from airflow import DAG
from airflow.providers.postgres.sensors.postgres import PostgresSensor
from airflow.utils.dates import days_ago
with DAG(
dag_id="example_postgres_sensor",
start_date=days_ago(1),
schedule_interval="@daily",
catchup=False,
) as dag:
wait_for_data = PostgresSensor(
task_id="wait_for_data",
postgres_conn_id="zasql_python",
sql="""
SELECT 1
FROM my_schema.my_table
WHERE date = '{{ ds }}'
LIMIT 1;
""",
poke_interval=60, # проверка раз в минуту
timeout=60 * 60, # максимум час
soft_fail=False, # если True — скипнет таску, а не упадёт
)
Плюс: в Superset (и других BI-системах) есть логи просмотров. Если графики никто не открывает, их стоит убрать, чтобы не перегружать дашборд. В Superset есть еще можно настроить правило: Если данных за сегодня по условию нет, то высылаем алерт на почту.
Когда я только выходил на одно из своих предыдущих мест, первой задачей было сделать рефакторинг имеющегося дашборда, так как в источнике поменялась логика, а предыдущий сотрудник уволился. В итоге пришлось полностью пересобирать дашборд, так как это в моменте было нужно, но затем выяснилось, что этим дашбордом никто не пользуется (посмотрел по логам просмотрам), вот было мое удивление конечно, хотя задача была в приоритете изначально.
В этом посте я собрал то, с чем сталкивался, надеюсь я не один такой
Рефакторинг дашбордов — это всегда больно. Приходится возвращаться к работе, которая уже сделана. Но если заранее оптимизировать запросы, следить за источниками и активностью, договариваться с бизнесом о целях, то дашборд не превратится в заброшку, а останется рабочим инструментом.
Ну а чтобы закрывать потребности бизнеса в специфичных срезах, обычно создается бот с выгрузкой Excel (в MatterMost, Telegram). Про это думаю написать дальше
Ставьте
@zasql_python