Извлечение файлов Excel из FTP в BigQuery с использованием облачных функций - PullRequest
0 голосов
/ 18 февраля 2019

Я работаю над созданием автоматизированного сценария для загрузки файлов с FTP и сохранения их в BigQuery.

Проблема в том, что BigQuery принимает только .csv файлы.По этой причине я ищу способы обработки файлов .xlsx и .xls, при условии, что я планирую разместить этот пакетный код в облаке.

Я упоминаю последний как один из способовЧтобы преобразовать .xlsx файлы в .csv, нужно использовать что-то вроде:

import pandas as pd
data_xls = pd.read_excel('file_on_ftp.xlsx')
data_xls.to_csv('csvfile.csv', encoding='utf-8', index=False)

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

Существуют ли поэтому более эффективные способы обработки .xlsx загрузки в BigQuery?Или это путь?

1 Ответ

0 голосов
/ 18 февраля 2019

Вас может заинтересовать это руководство, которое было только что опубликовано: "Потоковая передача данных из облачного хранилища в BigQuery с использованием облачных функций" .

Общая архитектура будет выглядеть так:

  1. загрузка файлов с FTP-сервера в облачное хранилище
  2. ваша облачная функция получает событие загрузки из облачного хранилища
  3. ваша облачная функция загружает файл в память (нет хранилища вдиск)
  4. ваша облачная функция передает данные в BigQuery

Я не уверен, что # 1 удовлетворяет вашей потребности, чтобы убедиться, что файл не остался где-то, но я думаю,Вероятно, это лучшее из возможных решений, если вы работаете в предположении, что файл должен быть загружен в GCP куда-либо (альтернативой будет потоковая передача в BigQuery непосредственно с вашего локального компьютера или экземпляр, который находится под вашим контролем).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...