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 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.
0 Comments