Мы используем S3 для всех наших данных. Большинство из них структурированы и хранятся в виде паркетных файлов в многораздельных папках. До сих пор мы в основном использовали EMR и прямые пути S3 для доступа и обработки данных.
Я хочу внедрить некоторую структуру во всю архитектуру, оставив все без сервера, поэтому я подумал об использовании AWS Glue Data Catalog в качестве центрального хранилища метаданных, чтобы выполнять роль абстрактного слоя над данными на S3 для упрощения запросов. Я также хотел бы, чтобы Афина была очень хорошим и простым инструментом, чтобы использовать это специально для наших аналитиков.
Однако нам также необходимо обработать данные и снова вывести результаты в S3. Это означает, с одной стороны, преобразования ETL, а с другой стороны, агрегации, например, собирать статистику, выполнять некоторые подсчеты на разных уровнях и т. д. и хранить их в таблицах.
Поскольку специальные запросы с Athena выполняют работу очень хорошо, и она автоматически масштабируется, но проблема в том, что мы не можем использовать ее для автоматизированных заданий и вставлять результаты в другую таблицу S3 Glue. Хотя у Athena есть простая опция для сохранения результатов в S3, это сводит на нет всю цель наличия абстрактного слоя SQL поверх данных, когда речь идет о сохранении результатов, как это было бы с SQL в обычной базе данных.
С другой стороны, AWS Glue предоставляет возможности ETL, но в Spark и python требуется код, а не просто SQL.
Итак, мой вопрос: есть ли в AWS продукт или подход, который позволил бы запрашивать и вставлять данные, используя S3 в качестве хранилища и, возможно, только SQL для операций? Имея в виду также сервер, такой как Афина, но также для вывода или вставки в другие таблицы (также существующие таблицы).
В качестве бонуса я также хотел бы создать представления поверх таблиц, чтобы обеспечить еще один уровень безопасности и логики в модели, и в идеале работать с этими представлениями вместо / в дополнение к таблицам. Любая рекомендация для этого тоже очень ценится.
Спасибо.