Логика увеличения для разделения вставки, обновления, удаления из полного файла

Мы работаем над проектом, в котором мы ежедневно получаем файл размером около 90 ГБ, который состоит из ~ 60 миллионов строк. Проблема в том, что они отправляют полный файл каждый день (90 ГБ), который включает в себя историю неизменных данных, а также новые данные.

Теперь наша задача разделить только новые вставки, удаления и обновления для разделения файлов и загрузки. Как мы могли сделать это эффективно?

Используемые инструменты: Datastage и AWS (можно использовать), если они рентабельны и дают хорошую производительность. Конечная цель для загрузки данных в Snowflake.


person Suganya    schedule 23.07.2020    source источник
comment
Ваш вопрос требует лучшего объяснения примеров данных, желаемых результатов и тега для базы данных, которую вы используете.   -  person Gordon Linoff    schedule 23.07.2020


Ответы (1)


tbh звучит так, будто вы хотите слить из плоского файла:

https://support.snowflake.net/s/article/how-to-perform-a-mergeupsert-from-a-flat-file-staged-on-s3

и если в вашей таблице есть операции, а не фактические записи, просто выберите последнюю временную метку из таблицы, прежде чем вы это сделаете, и примените все операции с этой временной метки после завершения слияния

person MMV    schedule 23.07.2020