Olá! Vamos entender passo a passo como transformar os dados de CSV do nosso datalake para o Firestore. Vou explicar de um jeito bem simples, como se estivesse conversando com um adolescente. Vamos lá!
Primeiro, a gente precisa importar algumas ferramentas especiais para trabalhar com o Firebase. É como se estivéssemos pegando nossas "chaves" para entrar na casa do Firebase:
import firebase_admin
from firebase_admin import credentials, firestore, storage
import datetime
Agora, vamos pegar nossa chave secreta (que é um arquivo chamado 'datapipe.json') para poder entrar no Firebase:
file_path = 'datapipe.json'
cred = credentials.Certificate(file_path)
Com nossa chave em mãos, vamos "abrir a porta" do Firebase:
firebase_admin.initialize_app(cred, {
'storageBucket': 'datapipe-97e03.appspot.com'
})
Agora que estamos dentro, vamos pegar nossas ferramentas para mexer no Firestore (que é como um armário gigante de dados) e no Storage (que é como um depósito de arquivos):
db = firestore.client()
bucket = storage.bucket()
Esta função vai olhar todos os arquivos no nosso depósito (Storage) e ler cada um deles:
def read_files_from_storage():
blobs = bucket.list_blobs() *# Lista todos os arquivos*
for blob in blobs:
file_content = blob.download_as_text()
process_file(file_content, blob.name)
Aqui, vamos pegar cada linha do arquivo e transformar em um formato que o Firestore entenda:
def process_file(contents, file_name):
linhas = contents.split('\\n')
for linha in linhas:
data_transformada = {
'projeto': 'Datapipe',
'data_linha': {'linha': linha},
'tag': 'tag1',
'data_ingestao': datetime.datetime.utcnow().isoformat()
}
salvar_no_firestore(data_transformada)