Я работаю над проектом Kedro, в котором у меня есть набор данных, определенный в файлеcatalog.yml следующим образом:
Код: Выделить всё
daily_stats_dataset:
type: ${datasets.orm_table}
orm_model: my_proj.schemas.sqla_schemas.DailyStats
credentials: my_database
monthly_stats_dataset:
type: ${datasets.orm_table}
orm_model: my_proj.schemas.sqla_schemas.MonthlyStats
credentials: my_database
Мне нужно постепенно добавлять новые строки из моего набора данных daily_stats_dataset в мой набор данных Monthly_stats_dataset. Однако ежедневная статистика каждый раз суммируется и добавляется к ежемесячной статистике. Это означает, что, когда ежемесячная статистика уже существует, мне нужно перезаписать эту строку. Я хочу убедиться, что я не вставляю повторяющиеся записи на основе столбца даты. Поэтому я хотел бы реализовать функцию upsert для существующих строк.
Можно ли это сделать с помощью Kedro, поскольку узлы выглядят так
Код: Выделить всё
node(
func=update_monthly_stats,
inputs=daily_stats_dataset,
outputs="monthly_stats_dataset",
),
но будет вставлена ежемесячная статистика, что приведет к нарушению уникальных ограничений.
Подробнее здесь:
https://stackoverflow.com/questions/791 ... tgresql-db