Что использовать, чтобы служить промежуточным источником данных в работе ETL? - PullRequest
0 голосов
/ 09 октября 2018

Я создаю конвейер ETL, который использует различные источники и отправляет данные в Big Query.Talend не может обрабатывать как реляционные, так и нереляционные компоненты базы данных в одном задании для моего варианта использования, поэтому вот как я это делаю в настоящее время:

JOB 1 - получение данных из источника (SQL Server, API и т. Д.), Преобразованиеон и сохраняет преобразованные данные в файле с разделителями (текст или CSV). JOB 1 - использовать сохраненные преобразованные данные из файла с разделителями в JOB 1 в качестве источника, а затем преобразовать его в соответствии с большим запросом и отправить его.

IЯ использую текстовый файл с разделителями / CSV в качестве промежуточного хранилища данных для достижения этой цели. Поскольку конфиденциальность данных важна, и решение также должно быть масштабируемым для обработки миллионов строк, что я должен использовать в качестве этого промежуточного источника.Поможет ли реляционная база данных?или файлы с разделителями достаточно хороши?или что-нибудь еще, что я могу использовать?

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

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Я бы сделал ELT вместо ETL: загрузите исходные данные как есть и преобразуйте их в Bigquery, используя функции SQL.

Это позволяет потенциально преобразовывать данные (преобразовывать в массивы), отфильтровывать столбцы / строки и выполнять преобразование в одном SQL.

0 голосов
/ 10 октября 2018

В архитектуре хранилищ данных обычно рекомендуется иметь постоянный промежуточный уровень.Это дает вам, среди прочего, возможность проследить происхождение данных до источника, дать возможность перезагрузить вашу окончательную модель из промежуточной точки при изменении бизнес-правил, а также дать полное представление о шагах преобразования, через которые прошли данные со всехпуть от посадки до создания отчетов.

Я бы также рассмотрел возможность изменения вашего дизайна и сохранения промежуточного слоя под собственным набором данных в BigQuery, а не просто удаления файлов после обработки.

Поскольку этопросто рабочий уровень для ETL / ELT, а не для отчетов конечных пользователей, по большей части вы будете платить только за хранилище.

Теперь, возвращаясь к вашему вопросу и учитывая ваш текущий дизайн, вы можете создатьведите в Google Cloud Storage и храните там свои файлы трансформации.Он предлагает всю необходимую вам защиту и шифрование, и вы имеете полный контроль над разрешениями.Big Query, похоже, работает с облачным хранилищем, и вы даже можете загрузить таблицу из файла хранилища прямо из облачной консоли.

С учетом всех обстоятельств, в каком бы направлении вы ни выбрали, я рекомендую хранить файлы, которые вы используете длязагрузить таблицу, а не удалять их.Рано или поздно в вашем итоговом отчете будут возникать вопросы / сбои, и вам, вероятно, придется искать источник расследования.

В двух словах.Процесс будет.

|---Extract and Transform---|----Load----|
  Source  ---> Cloud Storage --> BigQuery
...