Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current Restore this Version View Version History

« Previous Version 6 Current »

Padrão para armazenamento de arquivos no S3 conforme o caso de uso.

Caso de uso

Nome do bucket

Cenário

Injestão de dados automatizada

dexco-data-in

Envios automático de arquivo pelo Datastage (IBM), SAP Data Intelligence (SDI) ou por ferramentas de ETL de terceiros

Envio de arquivo para terceiros

dexco-data-out

Upload manual

dexco-data-upload

Arquivamento de dados, backup

dexco-data-archive

Transferência de arquivos e arquivos temporários

dexco-data-transfer

Lista de buckets no S3, conta AWS produção:

Caso de uso: Ingestão de dados vindos de ferramentas de automação de integração/extração/ETL.

Nome do bucket: DEXCO-DATA-IN

Características:

  • Processo automático que é executado periodicamente por uma ferramenta externa

  • Armazenamento separado em pastas YYYY/MM/DD

  • Não necessita archiving, pois o arquivos são separados por pasta, para evitar sobrescrita. Em caso de reprocessamento, basta acessar a pasta do dia desejado.

  • Cada ACCESS_KEY da acesso a uma única pasta de origem dentro deste bucket

  • Permissões somente de escrita (arquivos não podem ser excluídos)

Regras:

  • Este bucket não pode ser acessado pelas contas antigas da AWS

  • É necessário termos 2 ACCESS_KEY no IAM da AWS:
    1. Publisher Key (public): Será usada pela ferramenta de ETL para fazer o upload (renovação a cada 6 meses). Essa chave será divulgada para o terceiro que fará o upload dos arquivos (criada um para cada pasta root (origem)
    2. Consumer Key (private): Será usada pelo pipeline de injestão de dados (renovado a cada 3 meses). Essa chave será usada internamente, no secrets do Databricks (criada um única vez, da acesso a todos as origem (pastas root) neste bucket)

  • Nenhuma dessas chaves terá acesso para exclusão de arquivos

Pastas de origem (Root):

Pastas de origem identificam a pasta ROOT onde serão armazenados os arquivos. Cada origem tem a sua própria ACCESS_KEY:

Origem (ROOT)

Descrição

Periodicidade

/sdi

Extrações do SAP ECC e S4 pela ferramenta do SAP Data Intelligence

Diário e Streaming

/datastage

Extrações do SAP ECC pela ferramenta do IBM Datastage

Diário

/marketdata

Arquivos do portal Marketdata

Diário

Criação da Chave Privada (criada uma única vez):

Nome do usuário: svc-dexco-prd-data-in

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowRootAndHomeListingOfDexcoBucket",
            "Action": [
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::dexco-data-in"
            ]
        }
        {
            "Sid": "AllowAllS3ActionsInUserFolder",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObjectAcl",
                "s3:ListBucket",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::dexco-data-in/*"
            ]
        }
    ]
}

Criação da Chave Publica:

Nome do usuário: bucket-access-dexco-prd-data-in

Parametros: <origem>

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowRootAndHomeListingOfDexcoBucket",
            "Action": [
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::dexco-data-in"
            ],
            "Condition": {
                "StringEquals": {
                    "s3:prefix": [
                        "",
                        "/",
                        "<origem>/"
                    ],
                    "s3:delimiter": [
                        "/"
                    ]
                }
            }
        },
        {
            "Sid": "AllowListingOfUserFolder",
            "Action": [
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::dexco-data-in"
            ],
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "<origem>/*"
                    ]
                }
            }
        },
        {
            "Sid": "AllowAllS3ActionsInUserFolder",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObjectAcl",
                "s3:ListBucket",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::dexco-data-in/<origem>/*"
            ]
        }
    ]
}

Importante: Ferramentas de upload de arquivos como CyberDuck e WinSCP precisa configurar a pasta inicial para /<origem> pois essa key não tem acesso para listagem as pastas do bucket a partir da pasta raiz:

Configurando diretório inicial no WinSCP:

Exemplos:

Para efeito de exemplificação vamos considerar o cenário da empresa parceira chamada “marketdata” que nos envia diariamente um arquivo atualizado com cadastro de usuários da sua plataforma:

Nome do bucket padrão: /dexco-data-in

Pasta inicial: /marketdata (***importante***) 

Os arquivos devem ser separados por pasta no formato YYYY/MM/DD, por exemplo:

/marketdata/2022/03/10/<nome do arquivo>_HHMMSS.csv

Exemplo de caminho completo do arquivo incluindo o nome do bucket:

/dexco-data-in/marketdata/2022/03/10/<nome do arquivo>_HHMMSS.csv

Sendo HH = hora, MM = minuto, SS = segundos, todos com zeros a esquerda.

Os formatos permitidos para o arquivo são CSV ou PARQUET.

 

Importante: Para acesso via aplicativo de transferência de arquivo, como cyberduck e WinSCP por exemplo, é necessário configurar a pasta inicial, tendo em vista que a raiz do bucket não está acessível.

 

Observações: Permissões somente leitura/escrita, ou seja, sem permissão de exclusão de arquivo para manter o histórico.

Casos de uso: Upload manual de arquivos.

Casos de uso: Arquivamento de dados, backup, unload de tabelas do Redshift.

Casos de uso: Envio de arquivo para terceiros.

Casos de uso: Transferência de dados entre ambientes (DEV, STG, PRD) ou entre serviços, por exemplo do Databricks para o Redshift. Arquivos temporários