Envio de objetos para o bucket

Os exemplos contido neste documento estão utilizando a linguagem python. Se for da sua preferência, pode consultar a documentação oficial do GCP para envio de objetos no bucket, a qual contém suporte para mais linguagens de programação como: C++, C#, Go, Java, Node.js, PHP e Ruby.

1. Configuração Inicial

Certifique-se de que você tenha a biblioteca google-cloud-storage instalada. Caso contrário, você pode instalá-la usando o pip:

pip install google-cloud-storage

2. Autenticação

Antes de começar, certifique-se de ter as credenciais do Google Cloud configuradas para o bucket do Looqbox. Você precisará solicitar as credenciais de serviço ao nosso time. Feito isso, você receberá um arquivo JSON com as credenciais de acesso que deverão ser utilizadas para definir a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS apontando para esse arquivo. Isso é importante para autenticar sua aplicação.

import os
from google.cloud import storage

os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "seu-arquivo-de-credenciais.json"

3. Upload dos Dados

Estrutura de Pastas no Bucket

  • test-robot: pasta que você deverá fazer testes de integração e verificar se sua aplicação de envio de arquivos está correta.

  • encaminhados: uma vez que a integração foi testada na pasta test-robot, você pode mudar o apontamento para a pasta encaminhados. Com o arquivo submetido nesta pasta, os conectores irão processá-lo, armazenar os dados em nossa base e mover o arquivo para a pasta de processados.

  • processados: armazena em uma estrutura de pastas (failed, not_mapped, success) os arquivos que já foram processados pelos conectores.

Integração via Biblioteca Google Cloud Storage

Agora você pode usar a biblioteca google-cloud-storage para fazer o upload dos arquivos para o bucket do Looqbox.

  • Teste de integração: substitua 'nome-do-seu-bucket/test-robot' pelo nome do seu bucket e 'caminho/do/arquivo/local/arquivo.txt' pelo caminho do arquivo local que você deseja fazer o upload.

  • Upload em produção: substitua 'nome-do-seu-bucket/encaminhados' pelo nome do seu bucket e 'caminho/do/arquivo/local/arquivo.txt' pelo caminho do arquivo local que você deseja fazer o upload.

from google.cloud import storage

def upload_blob(bucket_name, source_file_name, destination_blob_name):
    storage_client = storage.Client()
    bucket = storage_client.bucket(bucket_name)
    blob = bucket.blob(destination_blob_name)

    blob.upload_from_filename(source_file_name)

    print(f"Arquivo {source_file_name} foi enviado para {destination_blob_name}.")

upload_blob('nome-do-seu-bucket', 'caminho/do/arquivo/local/arquivo.txt', 'caminho/no-seu-bucket/arquivo.txt')

Isso fará o upload do arquivo local especificado para o caminho especificado no seu bucket do Google Cloud Storage. Lembre-se de adaptar o código de acordo com suas necessidades específicas, como gerenciar exceções, verificar se o arquivo existe, e lidar com diferentes tipos de arquivos e caminhos no armazenamento em nuvem.

4. Padrão de Nomenclatura

Para garantir consistência e facilitar a organização dos arquivos enviados para o bucket, é necessário seguir um padrão de nomenclatura definido. Este padrão deve ser utilizado para todos os arquivos enviados para a pasta encaminhados no bucket.

Estrutura do Nome do Arquivo

{estrutura-de-dados}_{yyyymmdd}_{hhmmss}.{extensão}

  • {estrutura-de-dados}: Representa o tipo de dado ou entidade que o arquivo contém. Por exemplo, "fatovenda" para dados de vendas ou "dimloja" para dados de lojas.

  • {yyyymmdd}_{hhmmss}: Representa a data e o horário de criação do arquivo no formato ano-mês-dia-hora-minuto-segundo. Essa estrutura garante que os arquivos sejam únicos e organizados cronologicamente.

  • .{extensão}: Indica que o arquivo deve estar no formato .parquet / .csv / .xlsx / .xls / .xlsb / .xlsm / .json.

Exemplos de Nomes de Arquivos

  • Para dados de vendas: cliente1/encaminhados/fatovenda_20230321_235901.parquet

  • Para dados de lojas: cliente1/encaminhados/dimloja_20230321_235901.parquet

Importância do Padrão

  1. Organização: O padrão facilita a identificação do conteúdo do arquivo e a data/hora de sua criação.

  2. Processamento Automatizado: O sistema de conectores pode processar os arquivos de forma eficiente e sem ambiguidades, movendo-os para a estrutura apropriada dentro da pasta processados após o tratamento.

  3. Prevenção de Conflitos: Evita que arquivos com nomes duplicados sobrescrevam dados anteriores.

Sempre certifique-se de seguir esse padrão de nomenclatura ao enviar seus arquivos para o bucket. Isso garantirá que o processamento ocorra de forma correta e ordenada.

Last updated

Was this helpful?