Comments 6
Основная претензия к Snowflake — data lock-in.
Open-source версия, или хотя бы публичная документация формата файлов на S3 нужна индустрии.
Кому-то, возможно, будет интересно почитать короткую дискуссию на эту тему — она в комментариях к статье:
Selling the Data Lakehouse
Несколько странное требование к базе данных. Большинство OLAP решений по факту пропиетарные и не раскрывают свои форматы. А зачем? Если вам надо загрузить или выгрузить данные - куча открытых форматов подерживается. В чем там lock in вы усматриваете?
А как вы запускаете Airflow задачу, которая зовёт Snowflake copy? Раз в секунду? Как эта задача понимает, какие csv файлы новые а какие уже ранее обработанные?
Как вы прописываете зависимости между Airflow задачами? Ну вот например: когда данные появились в Snowflake, то нужно запустить задачи преобразования данных в Data Mart. Опять же преобразования Data Mart это скорее дерево задач, какие-то промежуточные таблицы могут порождать следующие (таблица с чистыми данными, потом с джойнами, а конечные таблицы например какие то матрики за месяц). Или зависимости не нужны, и каждый DAG просто независимо раз в секунду проверяет, готовы ли для него новые данные?
На каждом ли этапе у вас incremental batch update? Batch в данном случае то, что пришло из S3 в Snowflake, ведь даже потоковые данные вы в итоге батчуете (накапливаете в один файл в S3). Я та подозреваю что для каких-то метрик инкрементал апдейты вообще невозможны и надо пересчитывать всё (например total за последний год).
Пример архитектуры аналитического решения с использованием платформы Snowflake