Загрузка данных в соответствии с приведенной ниже логикой - PullRequest
0 голосов
/ 29 мая 2018

Банковское приложение, которое запускается каждый день и генерирует один CSV-файл (который содержит данные учетной записи), и мы загрузим данные в базу данных.

На следующий день будет создан еще один ежедневный файл.В этом файле для некоторых номеров счетов были обновлены / изменены / удалены детали.Вставляя это в базу данных, как мы можем загрузить только данные, которые были изменены.

поток - это файл CSV-> HDFS-> преобразование в куст / искру, если применимо-> красное смещение

1 Ответ

0 голосов
/ 30 мая 2018

Создание расположения HDFS /banking

Загрузка первого CSV-файла непосредственно в Hadoop в папку /banking/dt=20180529.Пропустите базу данных, если вы на самом деле не запрашиваете ее.

Создайте над ней таблицу Hive, разделенную на dt STRING.

На следующий день загрузите второй CSV в /banking/dt=20180530.

После загрузки файла используйте Hive, чтобы найти все строки, которые существовали для текущего дня, который также существовал вчера, при необходимости создавая новую таблицу из него

-- CREATE TABLE changed_accts AS
SELECT acct --, other columns 
FROM table 
WHERE dt = '20180530' 
AND acct IN (SELECT acct FROM table WHERE dt = '20180529') 

Это должно отфильтровать новые учетные записина день.И я предполагаю, что удаленные учетные записи не будут отображаться вообще.Вам понадобятся дополнительные данные, чтобы определить только обновления (например, изменение баланса аккаунта)

...